diff --git a/sflphone-gtk/src/audioconf.c b/sflphone-gtk/src/audioconf.c index d71b4a2bd8525b1d47e0c532c870ac3551683222..d7b20f282fcfab2da6a407aaaa9fc9a2ff1e570a 100644 --- a/sflphone-gtk/src/audioconf.c +++ b/sflphone-gtk/src/audioconf.c @@ -604,6 +604,7 @@ select_audio_manager( void ) if( !SHOW_ALSA_CONF && !gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(pulse) ) ) { + dbus_set_audio_manager( ALSA ); g_print(" display alsa conf panel\n"); alsabox = alsa_box(); gtk_container_add( GTK_CONTAINER(alsa_conf ) , alsabox); @@ -611,13 +612,14 @@ select_audio_manager( void ) } else if( SHOW_ALSA_CONF && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(pulse) )) { + dbus_set_audio_manager( PULSEAUDIO ); g_print(" remove alsa conf panel\n"); gtk_container_remove( GTK_CONTAINER(alsa_conf) , alsabox ); } else g_print("alsa conf panel...nothing\n"); - gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(pulse) )? dbus_set_audio_manager( PULSEAUDIO ):dbus_set_audio_manager( ALSA ); + //gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(pulse) )? dbus_set_audio_manager( PULSEAUDIO ):dbus_set_audio_manager( ALSA ); } GtkWidget* api_box() diff --git a/src/audio/pulselayer.cpp b/src/audio/pulselayer.cpp index aeedc33a4badc4f508140493a826c27bee8209a3..a2da80d467f095d9cfbd318e81349f05292ab8a2 100644 --- a/src/audio/pulselayer.cpp +++ b/src/audio/pulselayer.cpp @@ -52,6 +52,7 @@ PulseLayer::closeLayer( void ) record->disconnect(); pa_context_disconnect( context ); pa_context_unref( context ); + sleep(2); } void diff --git a/src/useragent.cpp b/src/useragent.cpp index cc9d8c1e5adf351cb2e26c8cecbe7ac1cc02b87b..75cf6418c12154c405f1152219364fa7be4b11db 100644 --- a/src/useragent.cpp +++ b/src/useragent.cpp @@ -368,7 +368,7 @@ bool UserAgent::addAccount(AccountID id, pjsip_regc **regc2, const std::string& pj_str_t aor; pj_str_t contact; - pj_mutex_lock(_mutex); + //pj_mutex_lock(_mutex); std::string tmp; SIPAccount *account; @@ -394,6 +394,7 @@ bool UserAgent::addAccount(AccountID id, pjsip_regc **regc2, const std::string& status = pjsip_regc_init(regc, &svr, &aor, &aor, 1, &contact, 600); //timeout); if (status != PJ_SUCCESS) { _debug("UserAgent: Unable to initialize regc. %d\n", status); //, regc->str_srv_url.ptr); + //pj_mutex_unlock(_mutex); return false; } @@ -418,12 +419,14 @@ bool UserAgent::addAccount(AccountID id, pjsip_regc **regc2, const std::string& status = pjsip_regc_register(regc, PJ_TRUE, &tdata); if (status != PJ_SUCCESS) { _debug("UserAgent: Unable to register regc.\n"); + //pj_mutex_unlock(_mutex); return false; } status = pjsip_regc_send(regc, tdata); if (status != PJ_SUCCESS) { _debug("UserAgent: Unable to send regc request.\n"); + pj_mutex_unlock(_mutex); return false; } @@ -434,7 +437,7 @@ bool UserAgent::addAccount(AccountID id, pjsip_regc **regc2, const std::string& // associate regc with account *regc2 = regc; - pj_mutex_unlock(_mutex); + //pj_mutex_unlock(_mutex); return true; } @@ -444,29 +447,29 @@ bool UserAgent::removeAccount(pjsip_regc *regc) pj_status_t status = 0; pjsip_tx_data *tdata = NULL; - pj_mutex_lock(_mutex); + //pj_mutex_lock(_mutex); if(regc) { status = pjsip_regc_unregister(regc, &tdata); if(status != PJ_SUCCESS) { _debug("UserAgent: Unable to unregister regc.\n"); - pj_mutex_unlock(_mutex); + //pj_mutex_unlock(_mutex); return false; } status = pjsip_regc_send( regc, tdata ); if(status != PJ_SUCCESS) { _debug("UserAgent: Unable to send regc request.\n"); - pj_mutex_unlock(_mutex); + //pj_mutex_unlock(_mutex); return false; } } else { _debug("UserAgent: regc is null!\n"); - pj_mutex_unlock(_mutex); + //pj_mutex_unlock(_mutex); return false; } - pj_mutex_unlock(_mutex); + //pj_mutex_unlock(_mutex); return true; }