Modified: freeswitch/branches/gmaruzz/mod_celliax/mod_celliax.c (14635 => 14636)
--- freeswitch/branches/gmaruzz/mod_celliax/mod_celliax.c 2009-08-25 19:27:54 UTC (rev 14635)
+++ freeswitch/branches/gmaruzz/mod_celliax/mod_celliax.c 2009-08-25 19:56:53 UTC (rev 14636)
@@ -489,6 +489,7 @@
}
}
+ DEBUGA_SKYPE("%s CHANNEL HANGUP\n", SKYPIAX_P_LOG, tech_pvt->name);
switch_clear_flag(tech_pvt, TFLAG_IO);
switch_clear_flag(tech_pvt, TFLAG_VOICE);
switch_set_flag(tech_pvt, TFLAG_HANGUP);
@@ -646,7 +647,30 @@
return SWITCH_STATUS_FALSE;
}
- goto cng; //FIXME FIXME FIXME
+
+
+usleep(1000);
+int samples;
+
+ if ((samples = snd_pcm_readi(tech_pvt->alsac, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_packet)) > 0) {
+ tech_pvt->read_frame.datalen = samples * 2;
+ tech_pvt->read_frame.samples = samples;
+
+ //switch_core_timer_check(&globals.timer, SWITCH_TRUE);
+ //globals.read_frame.timestamp = globals.timer.samplecount;
+ *frame = &tech_pvt->read_frame;
+
+ //status = SWITCH_STATUS_SUCCESS;
+ switch_set_flag(tech_pvt, TFLAG_VOICE);
+ }
+
+
+
+
+
+
+#ifdef NOTDEF
+
if (!celliax_audio_read(tech_pvt)) {
ERRORA("celliax_audio_read ERROR\n", SKYPIAX_P_LOG);
@@ -654,6 +678,7 @@
} else {
switch_set_flag(tech_pvt, TFLAG_VOICE);
}
+#endif //NOTDEF
while (switch_test_flag(tech_pvt, TFLAG_IO)) {
if (switch_test_flag(tech_pvt, TFLAG_BREAK)) {
@@ -679,10 +704,12 @@
switch_swap_linear((*frame)->data, (int) (*frame)->datalen / 2);
}
#endif
+ WARNINGA("HERE\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_SUCCESS;
}
- DEBUGA_SKYPE("CHANNEL READ no TFLAG_IO\n", SKYPIAX_P_LOG);
+ WARNINGA("HERE\n", SKYPIAX_P_LOG);
+ DEBUGA_SKYPE("CHANNEL READ no TFLAG_VOICE\n", SKYPIAX_P_LOG);
return SWITCH_STATUS_FALSE;
}
@@ -725,6 +752,10 @@
#endif
sent = frame->datalen;
+
+ ERRORA("PLAY \n", SKYPIAX_P_LOG);
+ snd_pcm_writei(tech_pvt->alsap, (short *) frame->data, (int) (frame->datalen / 2));
+
#ifdef NOTDEF //FIXME
#ifdef WIN32
switch_file_write(tech_pvt->audioskypepipe[1], frame->data, &sent);