[commit] r11694 - freeswitch/branches/gmaruzz/mod_skypiax
Author: gmaruzz Date: Sun Feb 8 11:10:44 2009 New Revision: 11694 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 11:10:44 2009 @@ -7,8 +7,8 @@ extern char *skypiax_console_active; #else /* FREESWITCH */ #define skypiax_sleep switch_sleep -//#define skypiax_file_write switch_file_write -#define skypiax_file_read switch_file_read +//#define skypiax_pipe_write switch_file_write +//#define skypiax_pipe_read switch_file_read extern switch_memory_pool_t *skypiax_module_pool; extern switch_endpoint_interface_t *skypiax_endpoint_interface; #endif /* ASTERISK */ @@ -23,8 +23,31 @@ #endif /* WIN32 */ /*************************************/ + +#if defined(WIN32) && !defined(__CYGWIN__) +int skypiax_pipe_read(switch_file_t * pipe, short *buf, int howmany) +{ + switch_size_t quantity; + + quantity = howmany; + + switch_file_read(pipe, buf, &quantity); + + howmany = quantity; + + return howmany; +} +#else /* WIN32 */ +int skypiax_pipe_read(int pipe, short *buf, int howmany) +{ + howmany = read(pipe, buf, howmany); + return howmany; +} +#endif /* WIN32 */ + + #if defined(WIN32) && !defined(__CYGWIN__) -int skypiax_file_write(switch_file_t * pipe, short *buf, int howmany) +int skypiax_pipe_write(switch_file_t * pipe, short *buf, int howmany) { switch_size_t quantity; @@ -37,12 +60,14 @@ return howmany; } #else /* WIN32 */ -int skypiax_file_write(int pipe, short *buf, int howmany) +int skypiax_pipe_write(int pipe, short *buf, int howmany) { howmany = write(pipe, buf, howmany); return howmany; } #endif /* WIN32 */ + + #if defined(WIN32) && !defined(__CYGWIN__) int skypiax_close_socket(unsigned int fd) { @@ -153,7 +178,7 @@ a++; } } else if (SAMPLERATE_SKYPIAX == 16000) { - /* we're NOT downsampling from 16khz to 8khz, srv_out will contain ALL samples from srv_in */ + /* we're NOT downsampling, srv_out will contain ALL samples from srv_in */ for (i = 0; i < len / sizeof(short); i++) { srv_out[i] = srv_in[i]; } @@ -177,7 +202,7 @@ } /* send the complete frame through the pipe to our code waiting for incoming audio */ howmany = - skypiax_file_write(tech_pvt->audiopipe[1], totalbuf, + skypiax_pipe_write(tech_pvt->audiopipe[1], totalbuf, SAMPLES_PER_FRAME * sizeof(short)); if (howmany != SAMPLES_PER_FRAME * sizeof(short)) { ERRORA("howmany is %d, but was expected to be %d\n", SKYPIAX_P_LOG, howmany, @@ -204,17 +229,18 @@ } + /* let's send some frame in the pipes, so both tcp_cli and tcp_srv will have an occasion to die */ kill_cli_size = SAMPLES_PER_FRAME * sizeof(short); - len = skypiax_file_write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size); + len = skypiax_pipe_write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size); kill_cli_size = SAMPLES_PER_FRAME * sizeof(short); - len = skypiax_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size); + len = skypiax_pipe_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 = skypiax_file_write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size); + len = skypiax_pipe_write(tech_pvt->audiopipe[1], kill_cli_buff, kill_cli_size); kill_cli_size = SAMPLES_PER_FRAME * sizeof(short); - len = skypiax_file_write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size); + len = skypiax_pipe_write(tech_pvt->audioskypepipe[1], kill_cli_buff, kill_cli_size); - DEBUGA_SKYPE("Skype client GONE\n", SKYPIAX_P_LOG); + DEBUGA_SKYPE("Skype incoming audio GONE\n", SKYPIAX_P_LOG); skypiax_close_socket(fd); if (exit) break; @@ -227,6 +253,8 @@ } return NULL; } + + void *skypiax_do_tcp_cli_thread_func(void *obj) { private_t *tech_pvt = obj; @@ -317,11 +345,7 @@ if (rt > 0) { if ((SAMPLERATE_SKYPIAX - 8000) == 0) { got = SAMPLES_PER_FRAME * sizeof(short); -#if defined(WIN32) && !defined(__CYGWIN__) - skypiax_file_read(tech_pvt->audioskypepipe[0], cli_in, &got); -#else /* WIN32 */ - got = read(tech_pvt->audioskypepipe[0], cli_in, got); -#endif /* WIN32 */ + got = skypiax_pipe_read(tech_pvt->audioskypepipe[0], cli_in, got); if (got > 0) { a = 0; @@ -347,11 +371,7 @@ } } else if (SAMPLERATE_SKYPIAX == 16000) { got = SAMPLES_PER_FRAME * sizeof(short); -#if defined(WIN32) && !defined(__CYGWIN__) - skypiax_file_read(tech_pvt->audioskypepipe[0], cli_in, &got); -#else /* WIN32 */ - got = read(tech_pvt->audioskypepipe[0], cli_in, got); -#endif /* WIN32 */ + got = skypiax_pipe_read(tech_pvt->audioskypepipe[0], cli_in, got); if (got > 0) { if (got != SAMPLES_PER_FRAME * sizeof(short)) @@ -450,11 +470,7 @@ #endif /* WIN32 */ if (rt > 0) { samples = SAMPLES_PER_FRAME * sizeof(short); -#if defined(WIN32) && !defined(__CYGWIN__) - skypiax_file_read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, &samples); -#else /* WIN32 */ - samples = read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, samples); -#endif /* WIN32 */ + samples = skypiax_pipe_read(tech_pvt->audiopipe[0], tech_pvt->read_frame.data, samples); //ERRORA("tech_pvt->audiopipe[0] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[0]); //ERRORA("tech_pvt->audiopipe[1] = %d\n", SKYPIAX_P_LOG, tech_pvt->audiopipe[1]); @@ -554,7 +570,7 @@ howmany = strlen(msg_from_skype) + 1; //#if defined(WIN32) && !defined(__CYGWIN__) howmany = - skypiax_file_write(tech_pvt->SkypiaxHandles.fdesc[1], (short *) msg_from_skype, + skypiax_pipe_write(tech_pvt->SkypiaxHandles.fdesc[1], (short *) msg_from_skype, howmany); //NOTICA("From Skype API: %s\n", SKYPIAX_P_LOG, msg_from_skype); //#else @@ -1115,12 +1131,7 @@ if (rt > 0) { if (tech_pvt->SkypiaxHandles.fdesc[0]) { howmany = sizeof(read_from_pipe); -#if defined(WIN32) && !defined(__CYGWIN__) - skypiax_file_read(tech_pvt->SkypiaxHandles.fdesc[0], read_from_pipe, &howmany); -#else /* WIN32 */ - howmany = - read(tech_pvt->SkypiaxHandles.fdesc[0], read_from_pipe, sizeof(read_from_pipe)); -#endif /* WIN32 */ + howmany = skypiax_pipe_read(tech_pvt->SkypiaxHandles.fdesc[0], (short *)read_from_pipe, howmany); a = 0; for (i = 0; i < howmany; i++) {
participants (1)
-
FreeSWITCH SVN