Modified: freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp (16260 => 16261)
--- freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp 2010-01-12 16:13:03 UTC (rev 16260)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/gsmopen_protocol.cpp 2010-01-12 16:24:23 UTC (rev 16261)
@@ -124,6 +124,7 @@
PaStreamParameters inputParameters, outputParameters;
int numdevices;
const PaDeviceInfo *deviceInfo;
+ long owner=1;
#ifndef GIOVA48
setenv("PA_ALSA_PLUGHW", "1", 1);
@@ -211,7 +212,8 @@
#ifndef GIOVA48
OpenAudioStream(&tech_pvt->stream, &inputParameters, &outputParameters, 8000,
paDitherOff | paClipOff, SAMPLES_PER_FRAME, tech_pvt->audiopipe[1],
- &tech_pvt->speexecho, &tech_pvt->speexpreprocess, &tech_pvt->owner);
+ &tech_pvt->speexecho, &tech_pvt->speexpreprocess, &owner);
+ //&tech_pvt->speexecho, &tech_pvt->speexpreprocess, &tech_pvt->owner);
#else // GIOVA48
OpenAudioStream(&tech_pvt->stream, &inputParameters, &outputParameters, 48000,
Modified: freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp (16260 => 16261)
--- freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp 2010-01-12 16:13:03 UTC (rev 16260)
+++ freeswitch/branches/gmaruzz/mod_gsmopen/mod_gsmopen.cpp 2010-01-12 16:24:23 UTC (rev 16261)
@@ -846,6 +846,9 @@
tech_pvt->read_frame.datalen = 2;
tech_pvt->read_frame.flags = SFF_CNG;
*frame = &tech_pvt->read_frame;
+#ifdef GSMOPEN_PORTAUDIO
+ speex_echo_state_reset(tech_pvt->stream->echo_state);
+#endif // GSMOPEN_PORTAUDIO
return SWITCH_STATUS_SUCCESS;
}
@@ -1313,6 +1316,10 @@
#else
const char *no_sound = "1";
#endif // defined(GSMOPEN_ALSA) || defined(GSMOPEN_PORTAUDIO)
+ const char *portaudiocindex = "1";
+ const char *portaudiopindex = "1";
+ const char *speexecho = "1";
+ const char *speexpreprocess = "1";
uint32_t interface_id = 0;
#ifdef WIN32
@@ -1459,8 +1466,14 @@
alsacname = val;
} else if (!strcasecmp(var, "alsapname")) {
alsapname = val;
-
-
+ } else if (!strcasecmp(var, "portaudiocindex")) {
+ portaudiocindex = val;
+ } else if (!strcasecmp(var, "portaudiopindex")) {
+ portaudiopindex = val;
+ } else if (!strcasecmp(var, "speexecho")) {
+ speexecho = val;
+ } else if (!strcasecmp(var, "speexpreprocess")) {
+ speexpreprocess = val;
} else if (!strcasecmp(var, "at_early_audio")) {
at_early_audio = val;
} else if (!strcasecmp(var, "at_after_preinit_pause")) {
@@ -1649,6 +1662,12 @@
switch_set_string(globals.GSMOPEN_INTERFACES[interface_id].alsapname, alsapname);
#endif// GSMOPEN_ALSA
+#ifdef GSMOPEN_PORTAUDIO
+ globals.GSMOPEN_INTERFACES[interface_id].portaudiocindex = atoi(portaudiocindex);
+ globals.GSMOPEN_INTERFACES[interface_id].portaudiopindex = atoi(portaudiopindex);
+ globals.GSMOPEN_INTERFACES[interface_id].speexecho = atoi(speexecho);
+ globals.GSMOPEN_INTERFACES[interface_id].speexpreprocess = atoi(speexpreprocess);
+#endif// GSMOPEN_PORTAUDIO
globals.GSMOPEN_INTERFACES[interface_id].at_early_audio = atoi(at_early_audio);
globals.GSMOPEN_INTERFACES[interface_id].at_after_preinit_pause = atoi(at_after_preinit_pause);
globals.GSMOPEN_INTERFACES[interface_id].at_initial_pause = atoi(at_initial_pause);
@@ -1693,10 +1712,10 @@
#ifdef GSMOPEN_PORTAUDIO
//FIXME
- globals.GSMOPEN_INTERFACES[interface_id].portaudiocindex = 1;
- globals.GSMOPEN_INTERFACES[interface_id].portaudiopindex = 1;
- globals.GSMOPEN_INTERFACES[interface_id].speexecho = 1;
- globals.GSMOPEN_INTERFACES[interface_id].speexpreprocess = 1;
+ //globals.GSMOPEN_INTERFACES[interface_id].portaudiocindex = 1;
+ //globals.GSMOPEN_INTERFACES[interface_id].portaudiopindex = 1;
+ //globals.GSMOPEN_INTERFACES[interface_id].speexecho = 1;
+ //globals.GSMOPEN_INTERFACES[interface_id].speexpreprocess = 1;
DEBUGA_GSMOPEN("portaudiocindex=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].portaudiocindex);
DEBUGA_GSMOPEN("portaudiocindex=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].portaudiocindex);
DEBUGA_GSMOPEN("speexecho=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[interface_id].speexecho);
@@ -1793,6 +1812,8 @@
#ifdef GSMOPEN_PORTAUDIO
DEBUGA_GSMOPEN("portaudiocindex=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].portaudiocindex);
DEBUGA_GSMOPEN("portaudiopindex=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].portaudiopindex);
+ DEBUGA_GSMOPEN("speexecho=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].speexecho);
+ DEBUGA_GSMOPEN("speexpreprocess=%d\n", GSMOPEN_P_LOG, globals.GSMOPEN_INTERFACES[i].speexpreprocess);
#endif// GSMOPEN_PORTAUDIO
}