diff --git a/sflphone-common/src/audio/alsalayer.cpp b/sflphone-common/src/audio/alsalayer.cpp index 2d2811b363722e41d4a2d774182eec2ef21681e4..351189f95ba3aeefe7db932e6112909ba94a9320 100644 --- a/sflphone-common/src/audio/alsalayer.cpp +++ b/sflphone-common/src/audio/alsalayer.cpp @@ -50,7 +50,7 @@ AlsaLayer::~AlsaLayer (void) closeLayer(); } - void + bool AlsaLayer::closeLayer() { _debugAlsa("Close ALSA streams\n"); @@ -73,6 +73,8 @@ AlsaLayer::closeLayer() _CaptureHandle = 0; _PlaybackHandle = 0; + + return true; } bool diff --git a/sflphone-common/src/audio/alsalayer.h b/sflphone-common/src/audio/alsalayer.h index 1a392f691e0534eeff24ce80b20c2b8bc5c6768a..27259dd0c4f707dbaba833d929dab3c44d496c57 100644 --- a/sflphone-common/src/audio/alsalayer.h +++ b/sflphone-common/src/audio/alsalayer.h @@ -48,7 +48,7 @@ class AlsaLayer : public AudioLayer { */ ~AlsaLayer(void); - void closeLayer( void ); + bool closeLayer( void ); /** * Check if no devices are opened, otherwise close them. diff --git a/sflphone-common/src/audio/audiolayer.h b/sflphone-common/src/audio/audiolayer.h index 679738b68c7fc15242eff85fd5e52c6068687f2f..f7d5404ef44218de97f5e3f4ae2233b29bd82a34 100644 --- a/sflphone-common/src/audio/audiolayer.h +++ b/sflphone-common/src/audio/audiolayer.h @@ -76,7 +76,7 @@ class AudioLayer { */ virtual ~AudioLayer(void) {} - virtual void closeLayer( void ) = 0; + virtual bool closeLayer( void ) = 0; /** * Check if no devices are opened, otherwise close them. diff --git a/sflphone-common/src/audio/pulselayer.cpp b/sflphone-common/src/audio/pulselayer.cpp index 02c107ea976fd5ac17cc30a6363637a894be5ebb..abcd83a45bd79b6791a4b60f18909124a6f6a2fb 100644 --- a/sflphone-common/src/audio/pulselayer.cpp +++ b/sflphone-common/src/audio/pulselayer.cpp @@ -52,7 +52,7 @@ PulseLayer::~PulseLayer (void) pa_context_unref( context ); } - void +bool PulseLayer::closeLayer( void ) { _debug("PulseLayer::closeLayer :: Destroy pulselayer\n"); @@ -66,6 +66,10 @@ PulseLayer::closeLayer( void ) //TODO Remove this ugly hack sleep(2); + + + return true; + } void @@ -123,7 +127,7 @@ void PulseLayer::context_state_callback( pa_context* c, void* user_data ) } } -void PulseLayer::disconnectPulseAudioServer( void ) +bool PulseLayer::disconnectPulseAudioServer( void ) { _debug(" PulseLayer::disconnectPulseAudioServer( void ) \n"); if( playback ) @@ -131,6 +135,11 @@ void PulseLayer::disconnectPulseAudioServer( void ) if( record ) delete record; record=NULL; + + if (!playback && !record) + return true; + else + return false; } diff --git a/sflphone-common/src/audio/pulselayer.h b/sflphone-common/src/audio/pulselayer.h index ce2bc2e6af79d49dd5d049f952896c2b03956c44..5e91425c1135bdeee4c528864c2bc00469703570 100644 --- a/sflphone-common/src/audio/pulselayer.h +++ b/sflphone-common/src/audio/pulselayer.h @@ -37,7 +37,7 @@ class PulseLayer : public AudioLayer { PulseLayer(ManagerImpl* manager); ~PulseLayer(void); - void closeLayer( void ); + bool closeLayer( void ); /** * Check if no devices are opened, otherwise close them. @@ -168,7 +168,7 @@ class PulseLayer : public AudioLayer { /** * Close the connection with the local pulseaudio server */ - void disconnectPulseAudioServer( void ); + bool disconnectPulseAudioServer( void ); /** * Get some information about the pulseaudio server diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index 07135fd051959d32e5272de54c537127080825f1..d5557c53f141a98f788b1a8559e23d34f783024f 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -1843,7 +1843,7 @@ int ManagerImpl::app_is_running( std::string process ) /** * Initialization: Main Thread */ - void +bool ManagerImpl::initAudioDriver(void) { @@ -1871,13 +1871,17 @@ ManagerImpl::initAudioDriver(void) if (_audiodriver == 0) { _debug("Init audio driver error\n"); + return false; } else { error = getAudioDriver()->getErrorMessage(); if (error == -1) { _debug("Init audio driver: %i\n", error); + return false; } } + return true;manager + } /** @@ -1974,7 +1978,7 @@ void ManagerImpl::switchAudioManager (void) // need to stop audio streams if there is currently no call if( (type != PULSEAUDIO) && (!hasCurrentCall())) { - _debug("There is currently a call!!\n"); + // _debug("There is currently a call!!\n"); _audiodriver->stopStream(); } diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h index 86578e3285c0f4090a36823dce39b8429069f19a..758811d5cbfcee361f2dd88c7f144e8287d7bef0 100644 --- a/sflphone-common/src/managerimpl.h +++ b/sflphone-common/src/managerimpl.h @@ -880,6 +880,11 @@ class ManagerImpl { */ AccountMap getSipAccountMap( void ); + /* + * Initialize audiodriver + */ + bool initAudioDriver(void); + private: /** @@ -905,11 +910,7 @@ class ManagerImpl { */ void initAudioCodec(void); - /* - * Initialize audiodriver - */ - void initAudioDriver(void); - + /* * Initialize zeroconf module and scanning */ diff --git a/sflphone-common/test/Makefile.am b/sflphone-common/test/Makefile.am index 8f3003587d6e748791b0407c6465ad85d2d6343d..5b89c3b709cc04d76ae52041c63ce96d1b5a8b66 100644 --- a/sflphone-common/test/Makefile.am +++ b/sflphone-common/test/Makefile.am @@ -1,6 +1,6 @@ include ../globals.mak -bin_PROGRAMS = numbercleanerTester pluginmanagerTester hookmanagerTester +bin_PROGRAMS = numbercleanerTester pluginmanagerTester hookmanagerTester audiolayerTester OBJECT_FILES= \ ../src/sflphoned-managerimpl.o \ @@ -78,3 +78,21 @@ hookmanagerTester_LDADD = \ -luuid \ $(OBJECT_FILES) +audiolayerTester_SOURCES = \ + audiolayerTest.h \ + audiolayerTest.cpp \ + TestMain.cpp + +audiolayerTester_LDADD = \ + ../src/libsflphone.la \ + $(SFLPHONE_LIBS) $(ZEROCONFLIB) $(LIB_DNSSD) \ + @ALSA_LIBS@ \ + @PULSEAUDIO_LIBS@ \ + @CPPUNIT_LIBS@ \ + @CCEXT2_LIBS@ \ + @CCGNU2_LIBS@ \ + @CCRTP_LIBS@ \ + @SAMPLERATE_LIBS@ \ + $(PJSIP_LIBS) \ + -luuid \ + $(OBJECT_FILES) \ No newline at end of file diff --git a/sflphone-common/test/audiorecorderTest.cpp b/sflphone-common/test/audiorecorderTest.cpp index 30650f9d0ee2c5d36fa45d8d40e02552de8a8481..9c0bf863edb284f29fcd5f7361c6ede3da6b68a8 100644 --- a/sflphone-common/test/audiorecorderTest.cpp +++ b/sflphone-common/test/audiorecorderTest.cpp @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software + * along with this program; if not, write to the Free Software- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ diff --git a/sflphone-common/test/audiorecorderTest.h b/sflphone-common/test/audiorecorderTest.h index 1748bda1db973fd4063dda0872a90bf9c09af5e8..216b657079562007a1eb04955f390e3263ef1c87 100644 --- a/sflphone-common/test/audiorecorderTest.h +++ b/sflphone-common/test/audiorecorderTest.h @@ -1,4 +1,4 @@ -x/* +/* * Copyright (C) 2009 Savoir-Faire Linux inc. * Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> *