diff --git a/src/audiortp.cpp b/src/audiortp.cpp index 71cd30fffadc282b3a61fc21fd98d58c79bbf64c..ad14dfc7d5857921be3a07af98f46e64f0af2128 100644 --- a/src/audiortp.cpp +++ b/src/audiortp.cpp @@ -69,12 +69,15 @@ AudioRtp::createNewSession (SipCall *ca) { } #ifdef ALSA - RTXThread = new AudioRtpRTX (ca, manager->audiodriver, + if (manager->useAlsa) { + RTXThread = new AudioRtpRTX (ca, manager->audiodriver, manager->audiodriverReadAlsa, manager, symetric); -#else - RTXThread = new AudioRtpRTX (ca, manager->audiodriver, NULL, manager, - symetric); + } #endif + if (!manager->useAlsa) { + RTXThread = new AudioRtpRTX (ca, manager->audiodriver, NULL, manager, + symetric); + } if (RTXThread->start() != 0) { return -1; @@ -111,7 +114,8 @@ AudioRtpRTX::AudioRtpRTX (SipCall *sipcall, AudioDrivers *driver, this->sym =sym; this->audioDevice = driver; #ifdef ALSA - this->audioDeviceRead = read_driver; + if (manager->useAlsa) + this->audioDeviceRead = read_driver; #endif // TODO: Change bind address according to user settings. @@ -256,18 +260,22 @@ AudioRtpRTX::run (void) { //////////////////////////// if (!manager->mute) { #ifdef ALSA - i = audioDeviceRead->readBuffer (data_from_mic, 320); -#else - i = audioDevice->readBuffer (data_from_mic, 320); + if (manager->useAlsa) { + i = audioDeviceRead->readBuffer (data_from_mic, 320); + } #endif + if (!manager->useAlsa) { + i = audioDevice->readBuffer (data_from_mic, 320); + } } else { // When IP-phone user click on mute button, we read buffer of a // temp buffer to avoid delay in sound. #ifdef ALSA - i = audioDeviceRead->readBuffer (data_mute, 320); -#else - i = audioDevice->readBuffer (data_mute, 320); + if (manager->useAlsa) + i = audioDeviceRead->readBuffer (data_mute, 320); #endif + if (!manager->useAlsa) + i = audioDevice->readBuffer (data_mute, 320); } // TODO : return an error because no sound diff --git a/src/configurationpanelui.cpp b/src/configurationpanelui.cpp index 8102023917fc57f93e4528c50f52af7e8dfd7986..a348bce7e31b7be6cc4fe2b56369a29f13aa3494 100644 --- a/src/configurationpanelui.cpp +++ b/src/configurationpanelui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'configurationpanel.ui' ** -** Created: Fri Feb 4 16:42:29 2005 +** Created: Mon Feb 7 11:33:42 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/configurationpanelui.h b/src/configurationpanelui.h index d7a457b8f5a6ec54fd4c937b4fa8ac3fe0de2acd..4dbbb4b3dc7dbd15f4ca63502a075a365fe9b660 100644 --- a/src/configurationpanelui.h +++ b/src/configurationpanelui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'configurationpanel.ui' ** -** Created: Fri Feb 4 16:42:29 2005 +** Created: Mon Feb 7 11:33:42 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/manager.cpp b/src/manager.cpp index cbf5987a4d559c8fee717a6c27a9771c2022dd38..ee41e5d2f79a77ebdeef43b3a17ed47b7ab21803 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -141,10 +141,12 @@ Manager::createSettingsPath (void) { void Manager::selectAudioDriver (void) { if (Config::getb("Audio", "Drivers.driverOSS")) { + useAlsa = false; this->audiodriver = new AudioDriversOSS (AudioDrivers::ReadWrite); } if (Config::getb("Audio", "Drivers.driverALSA")) { #ifdef ALSA + useAlsa = true; this->audiodriver = new AudioDriversALSA (AudioDrivers::WriteOnly); this->audiodriverReadAlsa = new AudioDriversALSA (AudioDrivers::ReadOnly); #endif diff --git a/src/manager.h b/src/manager.h index 7ade0563691746614d4d5ec30f6248663ca722fc..4297653f71a3adab7282476275ead1c5ac7cd6c4 100644 --- a/src/manager.h +++ b/src/manager.h @@ -46,6 +46,7 @@ public: #ifdef ALSA AudioDrivers *audiodriverReadAlsa; #endif + bool useAlsa; ToneGenerator *tone; QString *DirectCall; // from -p argv bool mute; diff --git a/src/phonebookui.cpp b/src/phonebookui.cpp index 3cb1d49fb5167c41ee5f85db8ca47a899e149656..7a9cfb624d8be55a9a2f7cf25d2e61229e63379a 100644 --- a/src/phonebookui.cpp +++ b/src/phonebookui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'phonebook.ui' ** -** Created: Fri Feb 4 16:42:28 2005 +** Created: Mon Feb 7 11:33:42 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/phonebookui.h b/src/phonebookui.h index 44b49401e70f5b595a481baa8f90de9e33321f30..3b364498b81811e6a65ae5f696e365cfa4168a88 100644 --- a/src/phonebookui.h +++ b/src/phonebookui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'phonebook.ui' ** -** Created: Fri Feb 4 16:42:28 2005 +** Created: Mon Feb 7 11:33:42 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/qtGUImainwindow.cpp b/src/qtGUImainwindow.cpp index 6bc478074bf80624f92b864206658c698872cfba..05e0e6d1f4f00f54e21449d1250ae9c5c79e6f3a 100644 --- a/src/qtGUImainwindow.cpp +++ b/src/qtGUImainwindow.cpp @@ -598,7 +598,10 @@ QtGUIMainWindow::toggleLine (int num_line) { callmanager->phLines[busyNum]->setStateLine(ONHOLD); callmanager->actionHandle (busyNum, ONHOLD_CALL); if (!callmanager->phLines[currentLineNumber]->getbDial()) { - this->dialTone(true); + if (callmanager->sip->call[busyNum] == NULL) { + setInactiveLine(busyNum); + } + this->dialTone(true); } callmanager->phLines[currentLineNumber]->setState(BUSY); qDebug("GUI: state ON-HOLD line busyNum %d", busyNum); @@ -640,6 +643,10 @@ QtGUIMainWindow::toggleLine (int num_line) { qDebug("GUI: state ON-HOLD line %d", currentLineNumber); lcd->setStatus(ONHOLD_STATUS); callmanager->actionHandle (currentLineNumber, ONHOLD_CALL); + if (callmanager->sip->call[currentLineNumber] == NULL) { + setInactiveLine(currentLineNumber); + lcd->setStatus("Enter Phone Number:"); + } } } @@ -727,11 +734,9 @@ QtGUIMainWindow::hangupLine (void) { } else if (callmanager->sip->call[currentLineNumber] == NULL and callmanager->phLines[currentLineNumber]->isOnHold()) { // If there isn't call on the current line and state line onHold - // set free pixmap - setFreeStateLine (currentLineNumber); - this->dialTone(false); + setInactiveLine(currentLineNumber); + // Stop congestion sound callmanager->congestion(false); - callmanager->phLines[currentLineNumber]->setbDial(false); lcd->clear(QString("Hung up")); } @@ -744,6 +749,15 @@ QtGUIMainWindow::hangupLine (void) { #endif } +void +QtGUIMainWindow::setInactiveLine (int num) { + // set free pixmap + setFreeStateLine (num); + // Stop dial tone + this->dialTone(false); + callmanager->phLines[num]->setbDial(false); +} + /** * Stop the blinking message slot and load the message-off button pixmap. */ diff --git a/src/qtGUImainwindow.h b/src/qtGUImainwindow.h index ecb2fa0b7da8e64d6b79bd71e42bd66214d47348..cef45807dfdac9e269bf2016ba21c615eecc5ce6 100644 --- a/src/qtGUImainwindow.h +++ b/src/qtGUImainwindow.h @@ -137,17 +137,18 @@ public: QString ringFile (void); QString getRingFile (void); inline - void ring (bool b) { this->ringVar = b; } + void ring (bool b) { this->ringVar = b; } inline - bool ringing (void) { return this->ringVar; } + bool ringing (void) { return this->ringVar; } void stopCallTimer (int); void startCallTimer (int); void setFreeStateLine (int); void setCurrentLineNumber(int); - void dialTone (bool); + void dialTone (bool); + void setInactiveLine (int); signals: - void keyPressed(int); + void keyPressed (int); public slots: void dial (void); diff --git a/src/url_inputui.cpp b/src/url_inputui.cpp index dde3a9bcb261729eeb04ac6517496261b4445ac1..e992ba18167085fa4a8037f049f3fc7965f4a475 100644 --- a/src/url_inputui.cpp +++ b/src/url_inputui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'url_input.ui' ** -** Created: Fri Feb 4 16:42:29 2005 +** Created: Mon Feb 7 11:33:42 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/url_inputui.h b/src/url_inputui.h index aa242724149e9396a021e6d04f345cff28a349fc..54dd2ea82b566bb51391a8baf5edd0c81580c359 100644 --- a/src/url_inputui.h +++ b/src/url_inputui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'url_input.ui' ** -** Created: Fri Feb 4 16:42:29 2005 +** Created: Mon Feb 7 11:33:42 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost!