[Freeswitch-svn] [commit] r11688 - freeswitch/branches/gmaruzz/mod_skypiax
FreeSWITCH SVN
gmaruzz at freeswitch.org
Sun Feb 8 05:49:11 PST 2009
Author: gmaruzz
Date: Sun Feb 8 07:49:11 2009
New Revision: 11688
Log:
skypiax: cleaning skypiax_protocol.c
Modified:
freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c
Modified: freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c
==============================================================================
--- freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c (original)
+++ freeswitch/branches/gmaruzz/mod_skypiax/skypiax_protocol.c Sun Feb 8 07:49:11 2009
@@ -116,10 +116,99 @@
to.tv_sec = 0;
rt = select(fdselect + 1, &fs, NULL, NULL, &to);
+#ifndef NOTDEF
if (rt > 0) {
len = recv(fd, (char *) srv_in, 320, 0); //seems that Skype only sends 320 bytes at time
+ if (len == 320) {
+
+ if (SAMPLERATE_SKYPIAX == 8000) {
+
+ a = 0;
+ for (i = 0; i < len / sizeof(short); i++) {
+ srv_out[a] = srv_in[i];
+ i++;
+ a++;
+ }
+
+ if (!tech_pvt->audiobuf_is_loaded) {
+ for (i = 0; i < (len / sizeof(short)) / 2; i++) {
+ tech_pvt->audiobuf[i] = srv_out[i];
+ }
+ tech_pvt->audiobuf_is_loaded = 1;
+ } else {
+ unsigned int howmany;
+
+ howmany = len / 2 / 2;
+ for (i = 0; i < howmany; i++)
+ totalbuf[i] = tech_pvt->audiobuf[i];
+
+ howmany = len / 2 / 2;
+ for (a = 0; a < howmany; a++) {
+ totalbuf[i] = srv_out[a];
+ i++;
+ }
+
+ howmany = len;
+
+ howmany = skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, howmany);
+ tech_pvt->audiobuf_is_loaded = 0;
+ }
+
+ } else if (SAMPLERATE_SKYPIAX == 16000) {
+
+ if (!tech_pvt->audiobuf_is_loaded) {
+ for (i = 0; i < (len / sizeof(short)); i++) {
+ tech_pvt->audiobuf[i] = srv_in[i];
+ }
+ tech_pvt->audiobuf_is_loaded = 1;
+ } else {
+ unsigned int howmany = SAMPLES_PER_FRAME * sizeof(short);
+
+ for (i = 0; i < (len / sizeof(short)); i++)
+ totalbuf[i] = tech_pvt->audiobuf[i];
+ for (a = 0; a < (len / sizeof(short)); a++) {
+ totalbuf[i] = srv_in[a];
+ i++;
+ }
+
+ howmany = skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, howmany);
+ tech_pvt->audiobuf_is_loaded = 0;
+ }
+
+ } else {
+ ERRORA("SAMPLERATE_SKYPIAX can only be 8000 or 16000\n", SKYPIAX_P_LOG);
+ }
+
+ } else if (len == 0) {
+ DEBUGA_SKYPE("Skype client GONE\n", SKYPIAX_P_LOG);
+ skypiax_sleep(1000);
+ } else {
+ ERRORA("len=%d\n", SKYPIAX_P_LOG, len);
+ exit = 1;
+ break;
+ }
+
+
+
+
+
+
+
+ } else {
+ if (rt)
+ ERRORA("SRV rt=%d\n", SKYPIAX_P_LOG, rt);
+ skypiax_sleep(10000);
+ }
+#endif // NOTDEF
+
+#ifdef NOTDEF
+ if (rt > 0) {
+
+ len = recv(fd, (char *) srv_in, 320, 0); //seems that Skype only sends 320 bytes at time
+
+
if (SAMPLERATE_SKYPIAX == 8000) {
if (len == 320) {
@@ -200,30 +289,8 @@
ERRORA("SRV rt=%d\n", SKYPIAX_P_LOG, rt);
skypiax_sleep(10000);
}
+#endif // NOTDEF
}
-#if 0
-#if defined(WIN32) && !defined(__CYGWIN__)
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- skypiax_file_write(tech_pvt->audiopipe[1], kill_cli_buff, &kill_cli_size);
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- skypiax_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, &kill_cli_size);
- tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- skypiax_file_write(tech_pvt->audiopipe[1], kill_cli_buff, &kill_cli_size);
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- skypiax_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, &kill_cli_size);
-#else /* WIN32 */
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size);
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size);
- tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size);
- kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
- len = write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size);
-#endif /* WIN32 */
-#endif
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
len = skypiax_file_write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size);
@@ -235,8 +302,6 @@
kill_cli_size = SAMPLES_PER_FRAME * sizeof(short);
len = skypiax_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size);
-
-
DEBUGA_SKYPE("Skype client GONE\n", SKYPIAX_P_LOG);
#if defined(WIN32) && !defined(__CYGWIN__)
closesocket(fd);
More information about the Freeswitch-svn
mailing list