diff --git a/src/audio/alsalayer.cpp b/src/audio/alsalayer.cpp index 9d4c70ca02dca747f5fc7d78ddef501fae1e4d59..084ab5b455effcf5caae08b669dce1c0004d0da4 100644 --- a/src/audio/alsalayer.cpp +++ b/src/audio/alsalayer.cpp @@ -59,6 +59,12 @@ AlsaLayer::closeLayer() AlsaLayer::openDevice (int indexIn, int indexOut, int sampleRate, int frameSize, int stream , std::string plugin) { + // We don't accept that the audio plugin is changed during a conversation + if( _talk ){ + _debug("can't switch audio plugin when talking\n. Please hang up and try again...\n"); + return false; + } + if(deviceClosed == false) { if( stream == SFL_PCM_CAPTURE ) @@ -694,4 +700,4 @@ AlsaLayer::adjustVolume( void* buffer , int len, int stream ) return src ; } -void AlsaLayer::setPlaybackVolume( double volume ){} +void AlsaLayer::setPlaybackVolume( double volume UNUSED){} diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp index 313079e3558aaa680c2751bb3b723baa39ecd20c..341e55f33b24a9872aed6a3386c6a07cd58c2b39 100644 --- a/src/managerimpl.cpp +++ b/src/managerimpl.cpp @@ -1274,10 +1274,12 @@ ManagerImpl::setInputAudioPlugin(const std::string& audioPlugin) void ManagerImpl::setOutputAudioPlugin(const std::string& audioPlugin) { - //int layer = _audiodriver -> getLayerType(); + + int res; + _debug("Set output audio plugin\n"); _audiodriver -> setErrorMessage( -1 ); - _audiodriver -> openDevice( _audiodriver -> getIndexIn(), + res = _audiodriver -> openDevice( _audiodriver -> getIndexIn(), _audiodriver -> getIndexOut(), _audiodriver -> getSampleRate(), _audiodriver -> getFrameSize(), @@ -1286,7 +1288,7 @@ ManagerImpl::setOutputAudioPlugin(const std::string& audioPlugin) if( _audiodriver -> getErrorMessage() != -1) notifyErrClient( _audiodriver -> getErrorMessage() ); // set config - setConfig( AUDIO , ALSA_PLUGIN , audioPlugin ); + if(res) setConfig( AUDIO , ALSA_PLUGIN , audioPlugin ); } /**