Revision
14636
Author
gmaruzz
Date
2009-08-25 14:56:53 -0500 (Tue, 25 Aug 2009)

Log Message

skypiax: 

Modified Paths

Diff

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);