From 918100d57fed59c19e3295292fb0dd3bf5db8e53 Mon Sep 17 00:00:00 2001 From: jpbl <jpbl> Date: Wed, 28 Sep 2005 14:33:01 +0000 Subject: [PATCH] fixed the lock problem --- src/gui/official/PhoneLine.cpp | 14 ++++++++------ src/gui/official/PhoneLineManagerImpl.cpp | 15 ++++++++------- src/gui/official/sflphone.pro | 2 +- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/gui/official/PhoneLine.cpp b/src/gui/official/PhoneLine.cpp index 6a5ec07a5c..56d2a7c031 100644 --- a/src/gui/official/PhoneLine.cpp +++ b/src/gui/official/PhoneLine.cpp @@ -106,12 +106,14 @@ PhoneLine::sendKey(Qt::Key c) break; default: - if(!mCall) { - mSession.playDtmf(c); - mBuffer += QString(c).toStdString(); - } - else { - mCall->sendDtmf(c); + if (QChar(c).isDigit()) { + if(!mCall) { + mSession.playDtmf(c); + mBuffer += QString(c).toStdString(); + } + else { + mCall->sendDtmf(c); + } } } } diff --git a/src/gui/official/PhoneLineManagerImpl.cpp b/src/gui/official/PhoneLineManagerImpl.cpp index 9ab7fe04af..b1eb6cffdf 100644 --- a/src/gui/official/PhoneLineManagerImpl.cpp +++ b/src/gui/official/PhoneLineManagerImpl.cpp @@ -41,13 +41,16 @@ PhoneLineManagerImpl::getNextAvailableLine() PhoneLine *selectedLine = NULL; QMutexLocker guard(&mPhoneLinesMutex); - QMutexLocker guard2(&mCurrentLineMutex); + mCurrentLineMutex.lock(); + PhoneLine *current = mCurrentLine; + mCurrentLineMutex.unlock(); + unsigned int i = 0; while(i < mPhoneLines.size() && !selectedLine) { mPhoneLines[i]->lock(); if(mPhoneLines[i]->isAvailable() && - mPhoneLines[i] != mCurrentLine) { + mPhoneLines[i] != current) { selectedLine = mPhoneLines[i]; } else { @@ -75,11 +78,9 @@ PhoneLineManagerImpl::selectNextAvailableLine() mCurrentLine = selectedLine; // select current line. - { - PhoneLineLocker guard(mCurrentLine); - mCurrentLine->select(); - } - + // We don't need to lock it, since it is + // done at the top. + selectedLine->select(); } return selectedLine; diff --git a/src/gui/official/sflphone.pro b/src/gui/official/sflphone.pro index 07ca2614f1..b66df84ce5 100644 --- a/src/gui/official/sflphone.pro +++ b/src/gui/official/sflphone.pro @@ -6,7 +6,7 @@ TEMPLATE = app TARGET += DEPENDPATH += . INCLUDEPATH += . -#CONFIG += debug +CONFIG += debug # Input HEADERS += Account.hpp \ -- GitLab