From 64e93d5b93ff478b8a2ee77722521c2bd31f2ffd Mon Sep 17 00:00:00 2001 From: llea <llea> Date: Mon, 7 Feb 2005 16:49:52 +0000 Subject: [PATCH] Fix dial tone. --- src/audiortp.cpp | 30 +++++++++++++++++++----------- src/configurationpanelui.cpp | 2 +- src/configurationpanelui.h | 2 +- src/manager.cpp | 2 ++ src/manager.h | 1 + src/phonebookui.cpp | 2 +- src/phonebookui.h | 2 +- src/qtGUImainwindow.cpp | 24 +++++++++++++++++++----- src/qtGUImainwindow.h | 9 +++++---- src/url_inputui.cpp | 2 +- src/url_inputui.h | 2 +- 11 files changed, 52 insertions(+), 26 deletions(-) diff --git a/src/audiortp.cpp b/src/audiortp.cpp index 71cd30fffa..ad14dfc7d5 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 8102023917..a348bce7e3 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 d7a457b8f5..4dbbb4b3dc 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 cbf5987a4d..ee41e5d2f7 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 7ade056369..4297653f71 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 3cb1d49fb5..7a9cfb624d 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 44b49401e7..3b364498b8 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 6bc478074b..05e0e6d1f4 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 ecb2fa0b7d..cef45807df 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 dde3a9bcb2..e992ba1816 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 aa24272414..54dd2ea82b 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! -- GitLab