From 350f858f8fecc6ff8ad391bc06fcc42dda9f4e68 Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.net> Date: Wed, 6 May 2009 20:06:46 -0400 Subject: [PATCH] [#1314] Add some return values to audio init functions --- sflphone-common/src/audio/alsalayer.cpp | 4 +++- sflphone-common/src/audio/alsalayer.h | 2 +- sflphone-common/src/audio/audiolayer.h | 2 +- sflphone-common/src/audio/pulselayer.cpp | 13 +++++++++++-- sflphone-common/src/audio/pulselayer.h | 4 ++-- sflphone-common/src/managerimpl.cpp | 8 ++++++-- sflphone-common/src/managerimpl.h | 11 ++++++----- sflphone-common/test/Makefile.am | 20 +++++++++++++++++++- sflphone-common/test/audiorecorderTest.cpp | 2 +- sflphone-common/test/audiorecorderTest.h | 2 +- 10 files changed, 51 insertions(+), 17 deletions(-) diff --git a/sflphone-common/src/audio/alsalayer.cpp b/sflphone-common/src/audio/alsalayer.cpp index 2d2811b363..351189f95b 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 1a392f691e..27259dd0c4 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 679738b68c..f7d5404ef4 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 02c107ea97..abcd83a45b 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 ce2bc2e6af..5e91425c11 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 07135fd051..d5557c53f1 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 86578e3285..758811d5cb 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 8f3003587d..5b89c3b709 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 30650f9d0e..9c0bf863ed 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 1748bda1db..216b657079 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> * -- GitLab