[commit] r11481 - freeswitch/branches/ctrix/mod_airpe
Author: ctrix Date: Sat Jan 24 09:50:34 2009 New Revision: 11481 Log: Fix this test before complete rework Modified: freeswitch/branches/ctrix/mod_airpe/Makefile freeswitch/branches/ctrix/mod_airpe/airpe_if_osx.c Modified: freeswitch/branches/ctrix/mod_airpe/Makefile ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/Makefile (original) +++ freeswitch/branches/ctrix/mod_airpe/Makefile Sat Jan 24 09:50:34 2009 @@ -10,7 +10,8 @@ #LOCAL_LDFLAGS=-lX11 #--------------------------------- OSX -LOCAL_LDFLAGS=-framework Skype -framework CoreFoundation +#LOCAL_LDFLAGS=-framework CoreFoundation +LOCAL_LDFLAGS=-framework Skype -framework CoreFoundation -framework Carbon include ../../../../build/modmake.rules Modified: freeswitch/branches/ctrix/mod_airpe/airpe_if_osx.c ============================================================================== --- freeswitch/branches/ctrix/mod_airpe/airpe_if_osx.c (original) +++ freeswitch/branches/ctrix/mod_airpe/airpe_if_osx.c Sat Jan 24 09:50:34 2009 @@ -4,6 +4,7 @@ #if defined (MACOSX) || defined(DARWIN) #include "Skype/SkypeAPI-Carbon.h" +#include <CoreFoundation/CoreFoundation.h> struct skype_window_handler_s { struct SkypeDelegate delegate; @@ -43,18 +44,22 @@ string = CFStringCreateWithCString(NULL, message_P, kCFStringEncodingUTF8 ); SendSkypeCommand(string); CFRelease(string); + RunCurrentEventLoop(0.01); return SWITCH_STATUS_SUCCESS; } switch_status_t airpe_skype_avalaible(skype_window_handler_t *window) { +/* if ( IsSkypeAvailable() ) { return SWITCH_STATUS_SUCCESS; } else { return SWITCH_STATUS_FALSE; } +*/ + return SWITCH_STATUS_FALSE; } @@ -62,20 +67,16 @@ /***************************************************************************** THREADS *****************************************************************************/ -static void IncomingMessage(CFStringRef aNotificationString) { +static int attached = -1; +static void IncomingMessage(CFStringRef aNotificationString) { ADEBUG("Incoming message"); - -// char *string; -// airpe_manage_skype_msg( airpe, string); - } static void AttachResponse(unsigned int aAttachResponseCode) { ADEBUG("Attach: %d\n", aAttachResponseCode); + attached = aAttachResponseCode; } - - void *SWITCH_THREAD_FUNC airpe_skype_thread(switch_thread_t * thread, void *obj) { airpe_interface_t *airpe = NULL; struct SkypeDelegate *del; @@ -85,13 +86,17 @@ if ( !IsSkypeAvailable() ) { ADEBUG("Sorry, not available\n"); - return NULL; + goto done; } - + RunCurrentEventLoop(0.1); +/* if ( !IsSkypeRunning() ) { ADEBUG("Sorry, not running\n"); - return NULL; + goto done; } + RunCurrentEventLoop(0.1); +*/ + airpe->running = 1; del = &airpe->skype_window->delegate; del->clientApplicationName=CFSTR("airpe"); @@ -99,26 +104,37 @@ del->SkypeAttachResponse=AttachResponse; SetSkypeDelegate(del); + RunCurrentEventLoop(0.1); ConnectToSkype(); + RunCurrentEventLoop(0.1); + + while ( airpe->running && attached !=1 ) { +// ADEBUG("Sorry, not attached\n"); + RunCurrentEventLoop(0.01); + } + + if ( !attached && airpe->running ) { + ADEBUG("Sorry, not attached\n"); + goto done; + } if ( airpe_on_connect_messages( airpe, 6 ) != SWITCH_STATUS_SUCCESS ) { switch_log_printf( SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "airpe client %s. Failed to send handshake messages\n", airpe->name); - return NULL; + goto done; } - airpe->running = 1; while ( airpe->running ) { - switch_sleep(1000000); + RunCurrentEventLoop(0.01); } DisconnectFromSkype(); RemoveSkypeDelegate(); + done: ADEBUG("Exiting\n"); - airpe->airpe_thread_skype = NULL; return NULL;
participants (1)
-
FreeSWITCH SVN