git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@104 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
e59b65efa6
commit
b4e75a2743
|
@ -42,8 +42,8 @@ static const char modname[] = "mod_portaudio";
|
||||||
static switch_memory_pool *module_pool;
|
static switch_memory_pool *module_pool;
|
||||||
static int running = 1;
|
static int running = 1;
|
||||||
|
|
||||||
#define SAMPLE_TYPE paInt16
|
#define SAMPLE_TYPE paInt16
|
||||||
typedef short SAMPLE;
|
typedef short SAMPLE;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
TFLAG_IO = (1 << 0),
|
TFLAG_IO = (1 << 0),
|
||||||
|
@ -80,9 +80,9 @@ struct private_object {
|
||||||
unsigned char databuf[1024];
|
unsigned char databuf[1024];
|
||||||
switch_core_session *session;
|
switch_core_session *session;
|
||||||
switch_caller_profile *caller_profile;
|
switch_caller_profile *caller_profile;
|
||||||
char call_id[50];
|
char call_id[50];
|
||||||
PaError err;
|
PaError err;
|
||||||
PABLIO_Stream *audio_in;
|
PABLIO_Stream *audio_in;
|
||||||
PABLIO_Stream *audio_out;
|
PABLIO_Stream *audio_out;
|
||||||
int indev;
|
int indev;
|
||||||
int outdev;
|
int outdev;
|
||||||
|
@ -189,8 +189,8 @@ static switch_status channel_on_hangup(switch_core_session *session)
|
||||||
switch_core_codec_destroy(&tech_pvt->read_codec);
|
switch_core_codec_destroy(&tech_pvt->read_codec);
|
||||||
switch_core_codec_destroy(&tech_pvt->write_codec);
|
switch_core_codec_destroy(&tech_pvt->write_codec);
|
||||||
|
|
||||||
CloseAudioStream(tech_pvt->audio_in);
|
CloseAudioStream(tech_pvt->audio_in);
|
||||||
CloseAudioStream(tech_pvt->audio_out);
|
CloseAudioStream(tech_pvt->audio_out);
|
||||||
|
|
||||||
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s CHANNEL HANGUP\n", switch_channel_get_name(channel));
|
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s CHANNEL HANGUP\n", switch_channel_get_name(channel));
|
||||||
|
|
||||||
|
@ -328,13 +328,13 @@ static switch_status channel_read_frame(switch_core_session *session, switch_fra
|
||||||
|
|
||||||
tech_pvt = switch_core_session_get_private(session);
|
tech_pvt = switch_core_session_get_private(session);
|
||||||
assert(tech_pvt != NULL);
|
assert(tech_pvt != NULL);
|
||||||
|
|
||||||
if ((t = ReadAudioStream(tech_pvt->audio_in, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_frame))) {
|
if ((t = ReadAudioStream(tech_pvt->audio_in, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_frame))) {
|
||||||
tech_pvt->read_frame.datalen = t * 2;
|
tech_pvt->read_frame.datalen = t * 2;
|
||||||
tech_pvt->read_frame.samples = t;
|
tech_pvt->read_frame.samples = t;
|
||||||
*frame = &tech_pvt->read_frame;
|
*frame = &tech_pvt->read_frame;
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return SWITCH_STATUS_FALSE;
|
return SWITCH_STATUS_FALSE;
|
||||||
|
|
|
@ -178,10 +178,13 @@ SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec, char *
|
||||||
}
|
}
|
||||||
|
|
||||||
if (implementation) {
|
if (implementation) {
|
||||||
|
switch_status status;
|
||||||
codec->codec_interface = codec_interface;
|
codec->codec_interface = codec_interface;
|
||||||
codec->implementation = implementation;
|
codec->implementation = implementation;
|
||||||
codec->flags = flags;
|
codec->flags = flags;
|
||||||
switch_core_new_memory_pool(&codec->memory_pool);
|
if ((status = switch_core_new_memory_pool(&codec->memory_pool)) != SWITCH_STATUS_SUCCESS) {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
implementation->init(codec, flags, codec_settings);
|
implementation->init(codec, flags, codec_settings);
|
||||||
|
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
|
@ -258,7 +261,7 @@ SWITCH_DECLARE(switch_status) switch_core_codec_destroy(switch_codec *codec)
|
||||||
SWITCH_DECLARE(switch_status) switch_core_timer_init(switch_timer *timer, char *timer_name, int interval, int samples)
|
SWITCH_DECLARE(switch_status) switch_core_timer_init(switch_timer *timer, char *timer_name, int interval, int samples)
|
||||||
{
|
{
|
||||||
switch_timer_interface *timer_interface;
|
switch_timer_interface *timer_interface;
|
||||||
|
switch_status status;
|
||||||
memset(timer, 0, sizeof(*timer));
|
memset(timer, 0, sizeof(*timer));
|
||||||
if (!(timer_interface = loadable_module_get_timer_interface(timer_name))) {
|
if (!(timer_interface = loadable_module_get_timer_interface(timer_name))) {
|
||||||
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "invalid timer %s!\n", timer_name);
|
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "invalid timer %s!\n", timer_name);
|
||||||
|
@ -269,7 +272,9 @@ SWITCH_DECLARE(switch_status) switch_core_timer_init(switch_timer *timer, char *
|
||||||
timer->samples = samples;
|
timer->samples = samples;
|
||||||
timer->samplecount = 0;
|
timer->samplecount = 0;
|
||||||
timer->timer_interface = timer_interface;
|
timer->timer_interface = timer_interface;
|
||||||
switch_core_new_memory_pool(&timer->memory_pool);
|
if ((status = switch_core_new_memory_pool(&timer->memory_pool)) != SWITCH_STATUS_SUCCESS) {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
timer->timer_interface->timer_init(timer);
|
timer->timer_interface->timer_init(timer);
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
|
|
Loading…
Reference in New Issue