switch_core_timer_destroy(&tech_pvt->timer_read);
}
+ if (tech_pvt->timer_read_srv.timer_interface && tech_pvt->timer_read_srv.timer_interface->timer_next) {
+ switch_core_timer_destroy(&tech_pvt->timer_read_srv);
+ }
+
if (tech_pvt->timer_write.timer_interface && tech_pvt->timer_write.timer_interface->timer_next) {
switch_core_timer_destroy(&tech_pvt->timer_write);
}
if (tech_pvt->timer_read.timer_interface && tech_pvt->timer_read.timer_interface->timer_next) {
switch_core_timer_sync(&tech_pvt->timer_read);
}
+ if (tech_pvt->timer_read_srv.timer_interface && tech_pvt->timer_read_srv.timer_interface->timer_next) {
+ switch_core_timer_sync(&tech_pvt->timer_read_srv);
+ }
switch_mutex_unlock(tech_pvt->mutex_audio_srv);
}
if (tech_pvt->timer_read.timer_interface && tech_pvt->timer_read.timer_interface->timer_next) {
switch_core_timer_sync(&tech_pvt->timer_read);
}
+ if (tech_pvt->timer_read_srv.timer_interface && tech_pvt->timer_read_srv.timer_interface->timer_next) {
+ switch_core_timer_sync(&tech_pvt->timer_read_srv);
+ }
switch_mutex_unlock(tech_pvt->mutex_audio_srv);
}
if (tech_pvt->timer_read.timer_interface && tech_pvt->timer_read.timer_interface->timer_next) {
switch_core_timer_sync(&tech_pvt->timer_read);
}
+ if (tech_pvt->timer_read_srv.timer_interface && tech_pvt->timer_read_srv.timer_interface->timer_next) {
+ switch_core_timer_sync(&tech_pvt->timer_read_srv);
+ }
switch_mutex_unlock(tech_pvt->mutex_audio_srv);
}
switch_core_timer_sync(&tech_pvt->timer_read);
+ if (switch_core_timer_init(&tech_pvt->timer_read_srv, "soft", MS_SKYPOPEN, SAMPLES_PER_FRAME, skypopen_module_pool) != SWITCH_STATUS_SUCCESS) {
+ ERRORA("setup timer failed\n", SKYPOPEN_P_LOG);
+ return SWITCH_STATUS_FALSE;
+ }
+
+ switch_core_timer_sync(&tech_pvt->timer_read_srv);
+
if (switch_core_timer_init(&tech_pvt->timer_write, "soft", MS_SKYPOPEN, SAMPLES_PER_FRAME, skypopen_module_pool) != SWITCH_STATUS_SUCCESS) {
ERRORA("setup timer failed\n", SKYPOPEN_P_LOG);
return SWITCH_STATUS_FALSE;
#define SAMPLERATE_SKYPOPEN 16000
#define MS_SKYPOPEN 20
-#define SAMPLES_PER_FRAME SAMPLERATE_SKYPOPEN/(1000/MS_SKYPOPEN)
-#define BYTES_PER_FRAME SAMPLES_PER_FRAME * sizeof(short)
+#define SAMPLES_PER_FRAME (SAMPLERATE_SKYPOPEN/(1000/MS_SKYPOPEN))
+#define BYTES_PER_FRAME (SAMPLES_PER_FRAME * sizeof(short))
#ifdef SKYPOPEN_C_VER
#ifdef MODSKYPOPEN_C_VER
chat_t chats[MAX_CHATS];
uint32_t report_incoming_chatmessages;
switch_timer_t timer_read;
+ switch_timer_t timer_read_srv;
switch_timer_t timer_write;
int begin_to_write;
int begin_to_read;
if (tech_pvt->timer_read.timer_interface && tech_pvt->timer_read.timer_interface->timer_next) {
switch_core_timer_sync(&tech_pvt->timer_read);
}
+ if (tech_pvt->timer_read_srv.timer_interface && tech_pvt->timer_read_srv.timer_interface->timer_next) {
+ switch_core_timer_sync(&tech_pvt->timer_read_srv);
+ }
switch_mutex_unlock(tech_pvt->mutex_audio_srv);
}
|| tech_pvt->skype_callflow == CALLFLOW_STATUS_REMOTEHOLD || tech_pvt->skype_callflow == SKYPOPEN_STATE_UP)) {
unsigned int fdselect;
- int rt;
+ int rt=1;
fd_set fs;
struct timeval to;
int nospace;
to.tv_usec = MS_SKYPOPEN * 1000 * 3;
to.tv_sec = 0;
- rt = select(fdselect + 1, &fs, NULL, NULL, &to);
+ if (tech_pvt->timer_read_srv.timer_interface && tech_pvt->timer_read_srv.timer_interface->timer_next) {
+ switch_core_timer_next(&tech_pvt->timer_read_srv);
+ }
+ //rt = select(fdselect + 1, &fs, NULL, NULL, &to);
if (rt > 0) {
if (tech_pvt->skype_callflow != CALLFLOW_STATUS_REMOTEHOLD) {