diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp index 6fb0cedae8c74d780661778c6719a153541ba0be..ae613f7d5425c693ac904b60316051ec2e922ae9 100644 --- a/src/audio/audiolayer.cpp +++ b/src/audio/audiolayer.cpp @@ -53,8 +53,7 @@ AudioLayer::closeStream (void) ost::MutexLock guard(_mutex); if(_stream) { _stream->close(); - delete _stream; - _stream = 0; + delete _stream; _stream = NULL; } } diff --git a/src/audio/audiortp.cpp b/src/audio/audiortp.cpp index 11d43660030331acb5496eaa1507e7a9f22ed47f..2fb35fd7ae94872d947cf54065488763da9b2c01 100644 --- a/src/audio/audiortp.cpp +++ b/src/audio/audiortp.cpp @@ -48,8 +48,7 @@ AudioRtp::AudioRtp () { } AudioRtp::~AudioRtp (void) { - delete _RTXThread; - _RTXThread = NULL; + delete _RTXThread; _RTXThread = NULL; } int @@ -86,8 +85,7 @@ AudioRtp::closeRtpSession (SipCall *ca) { if (_RTXThread != NULL) { _debug("Thread: stop AudioRTP for sipcall: %d\n", ca->getId()); - delete _RTXThread; - _RTXThread = NULL; + delete _RTXThread; _RTXThread = NULL; } } } @@ -289,12 +287,9 @@ AudioRtpRTX::receiveSessionForSpkr (int16* data_for_speakers, Manager::instance().getAudioDriver()->startStream(); - delete ac; - ac = NULL; - delete cd; - cd = NULL; - delete adu; - adu = NULL; + delete ac; ac = NULL; + delete cd; cd = NULL; + delete adu; adu = NULL; } void diff --git a/src/audio/dtmfgenerator.cpp b/src/audio/dtmfgenerator.cpp index 84abbf717e57c927a985ca5a62e1d2ae1ecd89af..ffe7b7121bf8393cae46c14266c950751fce71f2 100644 --- a/src/audio/dtmfgenerator.cpp +++ b/src/audio/dtmfgenerator.cpp @@ -85,8 +85,7 @@ DTMFGenerator::DTMFGenerator(): ToneGenerator () DTMFGenerator::~DTMFGenerator() { for(int i = 0; i < NUM_TONES; i++) { - delete[] samples[i]; - samples[i] = NULL; + delete[] samples[i]; samples[i] = NULL; } } diff --git a/src/audio/pacpp/example/sine.cxx b/src/audio/pacpp/example/sine.cxx index 577a24724f76fccf0a420e85df4535b5b446eee2..d13f765f935f0c3c63bfac21d54919c9b7c28bc2 100644 --- a/src/audio/pacpp/example/sine.cxx +++ b/src/audio/pacpp/example/sine.cxx @@ -32,7 +32,7 @@ public: ~SineGenerator() { - delete[] table_; + delete[] table_; table_ = NULL; } int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, diff --git a/src/audio/ringbuffer.cpp b/src/audio/ringbuffer.cpp index 138ae2f24c2e03157e3114507f156827b8ec770a..54168f31dce3783f25e9ced2738a75f4d596a225 100644 --- a/src/audio/ringbuffer.cpp +++ b/src/audio/ringbuffer.cpp @@ -44,8 +44,8 @@ RingBuffer::RingBuffer(int size) { // Free memory on object deletion RingBuffer::~RingBuffer() { - delete[] mBlank; mBlank = 0; - delete[] mBuffer; mBuffer = 0; + delete[] mBlank; mBlank = NULL; + delete[] mBuffer; mBuffer = NULL; } void diff --git a/src/audio/tonegenerator.cpp b/src/audio/tonegenerator.cpp index fc01b16d511230d1da1858b0b814e74adbd9dfe8..aeead88ce7f224c36974f25086e3f2194f5bcdd4 100644 --- a/src/audio/tonegenerator.cpp +++ b/src/audio/tonegenerator.cpp @@ -47,7 +47,7 @@ ToneThread::ToneThread (int16 *buf, int size) : Thread () { } ToneThread::~ToneThread (void) { - delete[] buf_ctrl_vol; + delete[] buf_ctrl_vol; buf_ctrl_vol=NULL; } void @@ -102,14 +102,10 @@ ToneGenerator::ToneGenerator () { } ToneGenerator::~ToneGenerator (void) { - delete tonethread; - tonethread = 0; - delete [] _dst; - _dst = 0; - delete [] _src; - _src = 0; - delete _ulaw; - _ulaw = 0; + delete tonethread; tonethread = 0; + delete [] _dst; _dst = 0; + delete [] _src; _src = 0; + delete _ulaw; _ulaw = 0; } /** @@ -264,7 +260,7 @@ ToneGenerator::buildTone (unsigned int idCountry, unsigned int idTones, int16* t totalbytes = byte; } */ - delete[] buffer; + delete[] buffer; buffer=NULL; } /** @@ -333,8 +329,7 @@ ToneGenerator::stopTone() { // we end the last thread _debug("Thread: stop tonethread\n"); - delete tonethread; - tonethread = NULL; + delete tonethread; tonethread = NULL; // we flush the main buffer (with blank) Manager::instance().getAudioDriver()->mainSndRingBuffer().flush(); @@ -348,8 +343,8 @@ ToneGenerator::playRingtone (const char *fileName) { if (tonethread != NULL) { stopTone(); } - delete [] _dst; - delete [] _src; + delete [] _dst; _dst = NULL; + delete [] _src; _src = NULL; int expandedsize, length; diff --git a/src/config/config.cpp b/src/config/config.cpp index 8a52ab83d544d23506df0efffc08d57bd385b87a..a1e748cfa4ab972b971b37b0bb3aec9fa67cc475 100644 --- a/src/config/config.cpp +++ b/src/config/config.cpp @@ -33,8 +33,7 @@ ConfigTree::~ConfigTree() // erase every new ItemMap (by CreateSection) SectionMap::iterator iter = _sections.begin(); while(iter != _sections.end()) { - delete iter->second; - iter->second = NULL; + delete iter->second; iter->second = NULL; iter++; } } diff --git a/src/global.h b/src/global.h index 6eb5bf10050e1254f3064cf4591e6c39337e28b4..225b14a87da82f02b4c62ea484ebb8784f4d4977 100644 --- a/src/global.h +++ b/src/global.h @@ -36,25 +36,14 @@ typedef short int16; #define _debug(...) #endif -#define VERSION "0.4.1-pre1" -#define VERSIONNUM 0x000400 +#define VERSION "0.5" +#define VERSIONNUM 0x000500 -#define PROGNAME "sflphone" -//#define SKINDIR "skins" -//#define PIXDIR "icons" +#define PROGNAME "sflphoned" #define RINGDIR "ringtones" #define CODECDIR "codecs" -//#define SFLPHONE_LOGO "logo_ico.png" -//#define TRAY_ICON "tray-icon.png" -//#define PIXMAP_SIGNALISATIONS "signalisations.png" -//#define PIXMAP_AUDIO "audio.png" -//#define PIXMAP_VIDEO "video.png" -//#define PIXMAP_NETWORK "network.png" -//#define PIXMAP_PREFERENCES "preferences.png" -//#define PIXMAP_ABOUT "about.png" - #define MONO 1 #define CHANNELS 2 #define SAMPLING_RATE 8000 diff --git a/src/gui/guiframework.cpp b/src/gui/guiframework.cpp index 323e23dbda1ed5c008e6a9340ebaf249c94dbb73..63e5f5cdabe07421e34151104889ff55f4cee8ad 100644 --- a/src/gui/guiframework.cpp +++ b/src/gui/guiframework.cpp @@ -176,10 +176,11 @@ GuiFramework::playTone () return Manager::instance().playTone(); } -int -GuiFramework::quitApplication (void) +bool +GuiFramework::stopTone () { - return (Manager::instance().quitApplication() ? 1 : 0); + Manager::instance().stopTone(); + return true; } int diff --git a/src/gui/guiframework.h b/src/gui/guiframework.h index acd3e8769b826ca577f3ce6a46656148a27f2201..0568de6e784b27d53df397af6508342db4431571 100644 --- a/src/gui/guiframework.h +++ b/src/gui/guiframework.h @@ -74,12 +74,12 @@ public: int saveConfig (void); int registerVoIPLink (void); int unregisterVoIPLink (void); - int quitApplication (void); int sendTextMessage (short id, const std::string& message); int accessToDirectory (void); bool sendDtmf (short id, char code); bool playDtmf (char code); bool playTone (); + bool stopTone (); // config bool getZeroconf(const std::string& sequenceId); diff --git a/src/gui/server/argtokenizer.cpp b/src/gui/server/argtokenizer.cpp index babee3b4a245e3fe6e4ca600bd501f0375f07e90..2d5ca5fb9af12d97aaaf5748173b9419156c2661 100644 --- a/src/gui/server/argtokenizer.cpp +++ b/src/gui/server/argtokenizer.cpp @@ -34,7 +34,7 @@ ArgTokenizer::tokenize(const std::string& str) { strcpy(tmp, output.c_str()); ost::urlDecode(tmp, NULL); args.push_back(tmp); - delete[] tmp; + delete[] tmp; tmp = NULL; } return args; } diff --git a/src/gui/server/factory.cpp b/src/gui/server/factory.cpp index fef3d6c6a9a5deb6762baa00cf1352f46735701d..3915f7d2f67ddef34ec8b609a5d5e33db8e6220f 100644 --- a/src/gui/server/factory.cpp +++ b/src/gui/server/factory.cpp @@ -65,7 +65,7 @@ public: std::map< std::string, RequestCreatorBase * >::iterator pos = mRequests.find(requestname); if(pos != mRequests.end()) { - delete pos->second; + delete pos->second; pos->second = NULL; mRequests.erase(pos); } diff --git a/src/gui/server/guiserver.cpp b/src/gui/server/guiserver.cpp index ea46a2249626fb81900b4802bc7a972c3315e77f..098f009ec8e32e5f0bfd2e2a130956e7188c44a8 100644 --- a/src/gui/server/guiserver.cpp +++ b/src/gui/server/guiserver.cpp @@ -54,11 +54,10 @@ GUIServer::~GUIServer() // Waiting Requests cleanup std::map<std::string, Request*>::iterator iter = _waitingRequests.begin(); while (iter != _waitingRequests.end()) { - _waitingRequests.erase(iter); - delete (iter->second); + delete iter->second; iter->second = NULL; iter++; } - + _waitingRequests.clear(); } int @@ -122,8 +121,8 @@ GUIServer::pushResponseMessage(const ResponseMessage &response) if (response.isFinal()) { std::map<std::string, Request*>::iterator iter = _waitingRequests.find(response.sequenceId()); if (iter != _waitingRequests.end()) { + delete iter->second; iter->second = NULL; _waitingRequests.erase(iter); - delete (iter->second); } } } @@ -136,13 +135,13 @@ void GUIServer::handleExecutedRequest(Request * const request, const ResponseMessage& response) { if (response.isFinal()) { - delete request; + delete request; request = NULL; } else { if (_waitingRequests.find(request->sequenceId()) == _waitingRequests.end()) { _waitingRequests[response.sequenceId()] = request; } else { // we don't deal with requests with a sequenceId already send... - delete request; + delete request; request = NULL; } } if (_sessionIO) { diff --git a/src/gui/server/guiserverimpl.cpp b/src/gui/server/guiserverimpl.cpp index d4a0b36e9bce73455dbd869638b322c1bc89e0f4..aaecadd041df95fd39a7ed76a680b187ab04f25e 100644 --- a/src/gui/server/guiserverimpl.cpp +++ b/src/gui/server/guiserverimpl.cpp @@ -41,7 +41,6 @@ GUIServerImpl::exec() { return _requestManager.exec(); } - /** * SubCall operations * insert @@ -247,11 +246,10 @@ GUIServerImpl::hangupAll() id = iter->first; if (!GuiFramework::hangupCall(id)) { result = false; - } else { - _callMap.erase(id); } iter++; } + _callMap.clear(); return result; } diff --git a/src/gui/server/guiserverimpl.h b/src/gui/server/guiserverimpl.h index 2795a5a47432d4e0e923a138d8e689bf9dbf1ef0..35f1e26b72508802f382c1cf288a60b707b64a3f 100644 --- a/src/gui/server/guiserverimpl.h +++ b/src/gui/server/guiserverimpl.h @@ -82,6 +82,7 @@ arg); std::string version(); void quit() { _requestManager.quit(); } + void stop() { _requestManager.stop(); } // observer methods void update(); diff --git a/src/gui/server/request.cpp b/src/gui/server/request.cpp index 4f43d1686cbfe83e6b96138ff3291e10f11f28d3..b4fe6c7166441818b052d5db5a95c556c6191e09 100644 --- a/src/gui/server/request.cpp +++ b/src/gui/server/request.cpp @@ -172,6 +172,15 @@ RequestPlayTone::execute() return message("500", "Tone Error"); } +ResponseMessage +RequestStopTone::execute() +{ + if ( GUIServer::instance().stopTone() ) { + return message("200", "OK"); + } + return message("500", "Tone Error"); +} + ResponseMessage RequestMute::execute() { @@ -199,3 +208,9 @@ RequestQuit::execute() return message("200", "Quitting"); } +ResponseMessage +RequestStop::execute() +{ + GUIServer::instance().stop(); + return message("200", "Stopping server"); +} diff --git a/src/gui/server/request.h b/src/gui/server/request.h index cf4d0c209cc9fafaac8d8b38f884b8ec235eb9dd..89fc97ad24344dc7ab147fb0e877ce924a7f07ce 100644 --- a/src/gui/server/request.h +++ b/src/gui/server/request.h @@ -184,6 +184,11 @@ public: RequestQuit(const std::string &sequenceId, const TokenList& argList) : RequestGlobal(sequenceId,argList) {} ResponseMessage execute(); }; +class RequestStop : public RequestGlobal { +public: + RequestStop(const std::string &sequenceId, const TokenList& argList) : RequestGlobal(sequenceId,argList) {} + ResponseMessage execute(); +}; class RequestHangupAll : public RequestGlobal { public: RequestHangupAll(const std::string &sequenceId, const TokenList& argList) : RequestGlobal(sequenceId,argList) {} @@ -206,6 +211,13 @@ public: ResponseMessage execute(); }; +class RequestStopTone : public RequestGlobal { +public: + RequestStopTone(const std::string &sequenceId, + const TokenList& argList) : RequestGlobal(sequenceId,argList) {} + ResponseMessage execute(); +}; + diff --git a/src/gui/server/requestfactory.cpp b/src/gui/server/requestfactory.cpp index a03b9a4ddeedd284580dcb7774fe1d7a6bf756c9..8a978c503060d9cfa592e64a9258c34f31927916 100644 --- a/src/gui/server/requestfactory.cpp +++ b/src/gui/server/requestfactory.cpp @@ -75,9 +75,10 @@ RequestFactory::~RequestFactory() std::map< std::string, RequestCreatorBase * >::iterator iter = mRequests.begin(); while ( iter != mRequests.end() ) { // delete RequestCreator< T > - delete iter->second; + delete iter->second; iter->second = NULL; iter++; } + mRequests.clear(); } template< typename T > @@ -87,7 +88,7 @@ RequestFactory::registerRequest(const std::string &requestname) std::map< std::string, RequestCreatorBase * >::iterator pos = mRequests.find(requestname); if(pos != mRequests.end()) { - delete pos->second; + delete pos->second; pos->second = NULL; mRequests.erase(pos); } @@ -107,11 +108,13 @@ RequestFactory::registerAll() { registerRequest<RequestDTMF> ("senddtmf"); registerRequest<RequestPlayDtmf> ("playdtmf"); registerRequest<RequestPlayTone> ("playtone"); + registerRequest<RequestStopTone> ("stoptone"); registerRequest<RequestTransfer> ("transfer"); registerRequest<RequestMute> ("mute"); registerRequest<RequestUnmute> ("unmute"); registerRequest<RequestVersion> ("version"); registerRequest<RequestQuit> ("quit"); + registerRequest<RequestStop> ("stop"); // request config registerRequest<RequestGetEvents> ("getevents"); @@ -124,5 +127,5 @@ RequestFactory::registerAll() { registerRequest<RequestConfigSave> ("configsave"); registerRequest<RequestList> ("list"); registerRequest<RequestVolumeSpkr> ("setspkrvolume"); - registerRequest<RequestVolumeMic> ("setmicvolume"); + registerRequest<RequestVolumeMic> ("setmicvolume"); } diff --git a/src/gui/server/requestmanager.cpp b/src/gui/server/requestmanager.cpp index d3391117bb956aa6738945cde9187035c5111b58..83a9b86dee2901853de34830abf5dc81be788a30 100644 --- a/src/gui/server/requestmanager.cpp +++ b/src/gui/server/requestmanager.cpp @@ -31,7 +31,7 @@ RequestManager::RequestManager() : _sessionIO(0) RequestManager::~RequestManager() { - delete _sessionIO; + delete _sessionIO; _sessionIO = NULL; flushWaitingRequest(); } @@ -39,7 +39,8 @@ int RequestManager::exec() { try { - while(std::cin.good()) { + _stop = false; + while(std::cin.good() && !_stop) { // TCPSessionIO start a thread for the stream socket { @@ -73,8 +74,7 @@ RequestManager::exec() { // session mutex block _sessionMutex.enterMutex(); - delete _sessionIO; - _sessionIO = 0; + delete _sessionIO; _sessionIO = NULL; _sessionMutex.leaveMutex(); } @@ -91,10 +91,10 @@ RequestManager::exec() * or send it into the waitingRequest map */ void -RequestManager::handleExecutedRequest(Request * const request, const ResponseMessage& response) +RequestManager::handleExecutedRequest(Request * request, const ResponseMessage& response) { if (response.isFinal()) { - delete request; + delete request; request = NULL; } else { ost::MutexLock lock(_waitingRequestsMutex); if (_waitingRequests.find(request->sequenceId()) == _waitingRequests.end()) { @@ -102,7 +102,7 @@ RequestManager::handleExecutedRequest(Request * const request, const ResponseMes _waitingRequests[response.sequenceId()] = request; } else { // we don't deal with requests with a sequenceId already send... - delete request; + delete request; request = NULL; } } } @@ -117,10 +117,10 @@ RequestManager::flushWaitingRequest() // Waiting Requests cleanup std::map<std::string, Request*>::iterator iter = _waitingRequests.begin(); while (iter != _waitingRequests.end()) { - _waitingRequests.erase(iter); - delete (iter->second); + delete iter->second; iter->second = NULL; iter++; } + _waitingRequests.clear(); } /** @@ -141,8 +141,8 @@ RequestManager::sendResponse(const ResponseMessage& response) { std::map<std::string, Request*>::iterator iter = _waitingRequests.find(response.sequenceId()); if (iter != _waitingRequests.end()) { + delete iter->second; iter->second = NULL; _waitingRequests.erase(iter); - delete (iter->second); } } } diff --git a/src/gui/server/requestmanager.h b/src/gui/server/requestmanager.h index c20a4db63d856a79c83665dd6cdff67d363d6d5f..055c63ff412fd26446b03c42aacc3924d9522982 100644 --- a/src/gui/server/requestmanager.h +++ b/src/gui/server/requestmanager.h @@ -37,10 +37,11 @@ public: int exec(void); void sendResponse(const ResponseMessage& response); void quit() { _quit = true; } + void stop() { _stop = true; quit(); } private: void flushWaitingRequest(); - void handleExecutedRequest(Request * const request, const ResponseMessage& response); + void handleExecutedRequest(Request * request, const ResponseMessage& response); RequestFactory _factory; SessionIO* _sessionIO; @@ -50,7 +51,8 @@ private: ost::Mutex _waitingRequestsMutex; std::map<std::string, Request*> _waitingRequests; - bool _quit; // tell to quit and end the exec loop + bool _quit; // tell to quit and end the exec loop for one client + bool _stop; // tell to stop the exec loop }; #endif diff --git a/src/gui/server/responsemessage.cpp b/src/gui/server/responsemessage.cpp index 4ae25b7718eb96cf622f169cb301938b1607b513..74a122a4df93850b3ece07879adc16ae314bc9b2 100644 --- a/src/gui/server/responsemessage.cpp +++ b/src/gui/server/responsemessage.cpp @@ -53,7 +53,7 @@ ResponseMessage::ResponseMessage(const std::string& code, ost::urlEncode(iter->c_str(), tmp, len*3+2); // we don't have to put a '\0' right? _message.append(tmp); - delete [] tmp; + delete [] tmp; tmp = NULL; } iter++; } diff --git a/src/gui/server/tcpsessionio.cpp b/src/gui/server/tcpsessionio.cpp index b1faef4bcc8eb7036cdc066b01d79da4fe903c1c..8382587bb1a8c81ecb9664514eb52f50c368dc1f 100644 --- a/src/gui/server/tcpsessionio.cpp +++ b/src/gui/server/tcpsessionio.cpp @@ -37,8 +37,8 @@ TCPSessionIO::TCPSessionIO() : SessionIO() TCPSessionIO::~TCPSessionIO() { - delete _clientStream; - delete _serverSocket; + delete _clientStream; _clientStream = NULL; + delete _serverSocket; _serverSocket = NULL; } bool diff --git a/src/main.cpp b/src/main.cpp index 718c2621caf29452397c12a7160b2e1650708adf..bf1f260fc2a1023434f3a0548b1d679fa9cdf806 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,7 +29,7 @@ int main (int argc, char **argv) { int exit_code = 0; - if (argc == 1 && strcmp(argv[0], "--help") == 0) { + if (argc == 2 && strcmp(argv[1], "--help") == 0) { std::cout << PROGNAME << " Deamon " << VERSION << ", by Savoir-Faire Linux 2004-2005" << std::endl << std::endl; std::cout << "USAGE: sflphoned [--help]" << std::endl; @@ -38,7 +38,6 @@ main (int argc, char **argv) { std::cout << "See http://www.sflphone.org/ for more information" << std::endl; } else { - GuiFramework *GUI; bool initOK = false; try { @@ -56,8 +55,6 @@ main (int argc, char **argv) { GUI = &(GUIServer::instance()); Manager::instance().setGui(GUI); exit_code = GUIServer::instance().exec(); - Manager::instance().terminate(); - delete GUI; } } diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp index b5fca468a944903a9f303678076cc6205d49b7ff..a6e875e11469ab7a56635fab2ee1c36e2bc2f4fc 100644 --- a/src/managerimpl.cpp +++ b/src/managerimpl.cpp @@ -103,7 +103,15 @@ ManagerImpl::ManagerImpl (void) ManagerImpl::~ManagerImpl (void) { terminate(); -} +#ifdef USE_ZEROCONF + delete _DNSService; _DNSService = NULL; +#endif + + delete _tone; _tone = NULL; + delete _error; _error = NULL; + + _debug("%s stop correctly\n", PROGNAME); +} void ManagerImpl::init (void) @@ -158,40 +166,24 @@ ManagerImpl::init (void) void ManagerImpl::terminate() { - for(VoIPLinkVector::iterator pos = _voIPLinkVector.begin(); - pos != _voIPLinkVector.end(); - pos++) { - (*pos)->terminate(); - } - - _voIPLinkVector.clear(); - for(VoIPLinkVector::iterator pos = _voIPLinkVector.begin(); pos != _voIPLinkVector.end(); pos++) { delete *pos; + *pos = NULL; } + _voIPLinkVector.clear(); for(CallVector::iterator pos = _callVector.begin(); pos != _callVector.end(); pos++) { - delete *pos; + delete *pos; *pos = NULL; } + _callVector.clear(); unloadAudioCodec(); - delete _audiodriverPA; - _audiodriverPA = 0; - delete _tone; - _tone = 0; - delete _error; - _error = 0; - -#ifdef USE_ZEROCONF - delete _DNSService; - _DNSService = 0; -#endif - _debug("ManagerImpl::terminate() was called"); + delete _audiodriverPA; _audiodriverPA = NULL; } void @@ -313,7 +305,7 @@ ManagerImpl::deleteCall (short id) while(iter!=_callVector.end()) { if ((*iter)->getId() == id) { - delete (*iter); + delete (*iter); *iter = NULL; _callVector.erase(iter); return; } @@ -602,17 +594,6 @@ ManagerImpl::unregisterVoIPLink (void) } } -/** - * Terminate action (main thread) - */ -int -ManagerImpl::quitApplication (void) -{ - // Quit VoIP-link library - terminate(); - return 0; -} - /** * ??? action */ @@ -710,12 +691,10 @@ ManagerImpl::playDtmf(char code) } _mutex.leaveMutex(); //setZonetone(false); - delete[] buf_ctrl_vol; - buf_ctrl_vol = 0; + delete[] buf_ctrl_vol; buf_ctrl_vol = 0; returnValue = true; } - delete[] _buf; - _buf = 0; + delete[] _buf; _buf = 0; return returnValue; } @@ -789,7 +768,7 @@ ManagerImpl::peerAnsweredCall (short id) // switch current call switchCall(id); - _gui->peerAnsweredCall(id); + if (_gui) _gui->peerAnsweredCall(id); } /** @@ -805,7 +784,7 @@ ManagerImpl::peerRingingCall (short id) // ring ringback(); - _gui->peerRingingCall(id); + if (_gui) _gui->peerRingingCall(id); return 1; } @@ -827,7 +806,7 @@ ManagerImpl::peerHungupCall (short id) call->setStatus(string(HANGUP_STATUS)); call->setState(Call::Hungup); - _gui->peerHungupCall(id); + if (_gui) _gui->peerHungupCall(id); // end up call _mutex.enterMutex(); @@ -848,9 +827,6 @@ ManagerImpl::displayTextMessage (short id, const string& message) if(_gui) { _gui->displayTextMessage(id, message); } - else { - std::cout << message << std::endl; - } } /** @@ -863,9 +839,6 @@ ManagerImpl::displayErrorText (short id, const string& message) if(_gui) { _gui->displayErrorText(id, message); } - else { - std::cerr << message << std::endl; - } } /** @@ -878,9 +851,6 @@ ManagerImpl::displayError (const string& error) if(_gui) { _gui->displayStatus(error); } - else { - std::cerr << error << std::endl; - } } /** @@ -893,9 +863,6 @@ ManagerImpl::displayStatus (const string& status) if(_gui) { _gui->displayStatus(status); } - else { - std::cout<< status << std::endl; - } } /** @@ -906,7 +873,7 @@ void ManagerImpl::startVoiceMessageNotification (const std::string& nb_msg) { //_gui->startVoiceMessageNotification(); - _gui->sendVoiceNbMessage(nb_msg); + if (_gui) _gui->sendVoiceNbMessage(nb_msg); } /** @@ -917,7 +884,7 @@ void ManagerImpl::stopVoiceMessageNotification (void) { //_gui->stopVoiceMessageNotification(); - _gui->sendVoiceNbMessage(std::string("0")); + if (_gui) _gui->sendVoiceNbMessage(std::string("0")); } /** @@ -1036,10 +1003,8 @@ ManagerImpl::notificationIncomingCall (void) { } getAudioDriver()->putUrgent(buf_ctrl_vol, SAMPLES_SIZE(FRAME_PER_BUFFER)); - delete[] buf_ctrl_vol; - buf_ctrl_vol = 0; - delete[] buffer; - buffer = 0; + delete[] buf_ctrl_vol; buf_ctrl_vol = NULL; + delete[] buffer; buffer = NULL; } /** @@ -1254,11 +1219,10 @@ ManagerImpl::unloadAudioCodec() { CodecDescriptorVector::iterator iter = _codecDescVector.begin(); while(iter!=_codecDescVector.end()) { - delete *iter; - *iter = NULL; - _codecDescVector.erase(iter); + delete *iter; *iter = NULL; iter++; } + _codecDescVector.clear(); } @@ -1356,7 +1320,7 @@ ManagerImpl::getZeroconf(const std::string& sequenceId) * Main Thread */ bool -ManagerImpl::attachZeroconfEvents(const std::string& sequenceId, Pattern::Observer& observer) +ManagerImpl::attachZeroconfEvents(const std::string& , Pattern::Observer& observer) { bool returnValue = false; // don't need the _gui like getZeroconf function diff --git a/src/managerimpl.h b/src/managerimpl.h index b9d7159af0927e92ebce389d801bc32850192f1f..ed3254d2fded15784b81318958cbfa8e565d6ce9 100644 --- a/src/managerimpl.h +++ b/src/managerimpl.h @@ -161,7 +161,6 @@ public: int saveConfig (void); int registerVoIPLink (void); int unregisterVoIPLink (void); - int quitApplication (void); int sendTextMessage (short id, const std::string& message); int accessToDirectory (void); @@ -174,7 +173,7 @@ public: bool sendDtmf (short id, char code); bool playDtmf (char code); bool playTone (); - + void stopTone(); int incomingCall (short id); void peerAnsweredCall (short id); @@ -331,7 +330,6 @@ private: * @return false if the driver is uninitialize */ bool playATone(unsigned int tone); - void stopTone(); ///////////////////// // Private variables diff --git a/src/phonegi-bin.h b/src/phonegi-bin.h deleted file mode 100644 index 4081ff3a8d2b775054dcf334d06fe0ffa63d359c..0000000000000000000000000000000000000000 --- a/src/phonegi-bin.h +++ /dev/null @@ -1,18 +0,0 @@ -// Those are the headers for the pgi-bin stuff. -// -// (c) 2004 Savoir-faire Linux inc. -// Author: Jerome Oufella <jerome.oufella@savoirfairelinux.com> -// -#ifndef __PHONEGI_BIN_H__ -#define __PHONEGI_BIN_H__ - -#include "global.h" - -class phonegibin { -public: - int exec (const char *scriptName); -protected: -private: -}; - -#endif // __PHONEGI_BIN_H__ diff --git a/src/sipcall.cpp b/src/sipcall.cpp index 45cc65dcc311cbeb430baa3a5936e3fa4ea82b2f..f3e73d03f4405f5375774a1e6d8134dcc9f2148c 100644 --- a/src/sipcall.cpp +++ b/src/sipcall.cpp @@ -61,8 +61,7 @@ SipCall::SipCall (short id, CodecDescriptorVector* cdv) : _localIp("127.0.0.1") SipCall::~SipCall (void) { dealloc(); - delete _audiocodec; - _audiocodec = NULL; + delete _audiocodec; _audiocodec = NULL; } void @@ -147,8 +146,7 @@ void SipCall::setAudioCodec (AudioCodec* ac) { // it use a new! - delete _audiocodec; - _audiocodec = ac; + delete _audiocodec; _audiocodec = ac; } // newIncomingCall is called when the IP-Phone user receives a new call. @@ -791,10 +789,10 @@ SipCall::alloc(void) { void SipCall::dealloc(void) { - delete [] _reason_phrase; - delete [] _textinfo; - delete [] _remote_uri; - delete [] _remote_sdp_audio_ip; + delete [] _reason_phrase; _reason_phrase = NULL; + delete [] _textinfo; _textinfo = NULL; + delete [] _remote_uri; _remote_uri = NULL; + delete [] _remote_sdp_audio_ip; _remote_sdp_audio_ip = NULL; } void diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp index 386b15980618d3dd8243f91fd35ac7e7f0c589b4..f3ca217d1ec84b2deaf783cad6d27793c0c71d2d 100644 --- a/src/sipvoiplink.cpp +++ b/src/sipvoiplink.cpp @@ -58,7 +58,13 @@ SipVoIPLink::SipVoIPLink (short id) } SipVoIPLink::~SipVoIPLink(void) { - delete _evThread; + eXosip_quit(); + delete _evThread; _evThread = NULL; +} + +void +SipVoIPLink::terminate(void) +{ } bool @@ -171,14 +177,6 @@ SipVoIPLink::isInRtpmap (int index, int payload, CodecDescriptorVector* cdv) { return false; } -void -SipVoIPLink::terminate(void) -{ - _debug("Thread: stop event thread\n"); - delete _evThread; - eXosip_quit(); -} - int SipVoIPLink::setRegister (void) { @@ -411,7 +409,7 @@ SipVoIPLink::hangup (short id) } else { _debug("The call was in error state, so delete it"); } - + deleteSipCall(id); return i; } @@ -999,7 +997,7 @@ SipVoIPLink::carryingDTMFdigits (short id, char code) { } eXosip_unlock(); - delete[] dtmf_body; + delete[] dtmf_body; dtmf_body = NULL; } void @@ -1028,7 +1026,7 @@ SipVoIPLink::deleteSipCall (short callid) while(iter != _sipcallVector.end()) { if ((*iter)->getId() == callid) { - delete *iter; + delete *iter; *iter = NULL; _sipcallVector.erase(iter); return; } @@ -1263,7 +1261,7 @@ SipVoIPLink::getLocalIp (void) char* myIPAddress = new char[65]; ret = eXosip_guess_localip (AF_INET, myIPAddress, 64); setLocalIpAddress(std::string(myIPAddress)); - delete [] myIPAddress; + delete [] myIPAddress; myIPAddress = NULL; return ret; } diff --git a/src/zeroconf/DNSService.cpp b/src/zeroconf/DNSService.cpp index 63df7c517afb4113c1e3a29b095575f387a32035..5b7dd758a22124eb7217045275720cfe6ac9a82b 100644 --- a/src/zeroconf/DNSService.cpp +++ b/src/zeroconf/DNSService.cpp @@ -54,8 +54,7 @@ DNSService::~DNSService() { int cntThread = _queryThread.size(); for (int iThread=0;iThread<cntThread;iThread++) { - delete _queryThread[iThread]; - _queryThread[iThread] = NULL; + delete _queryThread[iThread]; _queryThread[iThread] = NULL; } }