Skip to content
Snippets Groups Projects
Commit 6da911cb authored by jpbl's avatar jpbl
Browse files

I no longer send an unusefull stoptone

parent 88d186b0
No related branches found
No related tags found
No related merge requests found
......@@ -46,20 +46,16 @@ PhoneLine::setLineStatus(const QString &status)
mAction = "";
mLineStatus = status;
if(mSelected) {
emit lineStatusChanged(mLineStatus);
}
}
void
PhoneLine::setAction(const QString &status)
{
mActionTimer->stop();
mAction = status;
if(mSelected) {
emit actionChanged(mAction);
}
}
void
PhoneLine::setTempAction(const QString &status)
......@@ -67,10 +63,8 @@ PhoneLine::setTempAction(const QString &status)
mActionTimer->stop();
mActionTimer->start(3000);
mAction = status;
if(mSelected) {
emit actionChanged(mAction);
}
}
unsigned int
PhoneLine::line()
......
#include <qmutex.h>
#include <iostream>
#include <stdexcept>
......@@ -150,10 +149,6 @@ PhoneLineManagerImpl::setNbLines(unsigned int nb)
PhoneLine *p = new PhoneLine(*mSession, *mAccount, i + 1);
QObject::connect(p, SIGNAL(lineStatusChanged(QString)),
this, SIGNAL(unselectedLineStatusSet(QString)));
QObject::connect(p, SIGNAL(actionChanged(QString)),
this, SIGNAL(actionSet(QString)));
QObject::connect(p, SIGNAL(bufferStatusChanged(QString)),
this, SIGNAL(bufferStatusSet(QString)));
mPhoneLines.push_back(p);
}
}
......@@ -233,7 +228,7 @@ PhoneLineManagerImpl::select(PhoneLine *line, bool hardselect)
mCurrentLine = line;
mCurrentLine->select(hardselect);
if(mCurrentLine->isAvailable()) {
if(!mCurrentLine->isAvailable()) {
mSession->playTone();
}
emit lineStatusSet(mCurrentLine->getLineStatus());
......@@ -253,7 +248,9 @@ PhoneLineManagerImpl::unselect()
this, SIGNAL(bufferStatusSet(QString)));
QObject::connect(mCurrentLine, SIGNAL(lineStatusChanged(QString)),
this, SIGNAL(unselectedLineStatusSet(QString)));
if(mCurrentLine->isAvailable()) {
mSession->stopTone();
}
mCurrentLine->unselect();
mCurrentLine = NULL;
}
......@@ -411,7 +408,9 @@ PhoneLineManagerImpl::hold()
mCurrentLine = NULL;
if(selectedLine) {
if(selectedLine->isAvailable()) {
mSession->stopTone();
}
selectedLine->hold();
}
}
......@@ -423,7 +422,9 @@ PhoneLineManagerImpl::hangup(bool sendrequest)
mCurrentLine = NULL;
if(selectedLine) {
if(selectedLine->isAvailable()) {
mSession->stopTone();
}
selectedLine->hangup(sendrequest);
lineStatusSet("");
}
......@@ -497,20 +498,22 @@ PhoneLineManagerImpl::incomming(const QString &accountId,
const QString &peer)
{
Call call(mSession->id(), accountId, callId, true);
addCall(call, peer, QObject::tr("Incomming"));
emit globalStatusSet(QObject::tr("Ringing (%1)...").arg(peer));
PhoneLine *line = addCall(call, peer, QObject::tr("Incomming"));
if(line) {
line->setLineStatus(QObject::tr("Ringing (%1)...").arg(peer));
}
}
void
PhoneLine *
PhoneLineManagerImpl::addCall(const QString &accountId,
const QString &callId,
const QString &peer,
const QString &state)
{
addCall(Call(mSession->id(), accountId, callId), peer, state);
return addCall(Call(mSession->id(), accountId, callId), peer, state);
}
void
PhoneLine *
PhoneLineManagerImpl::addCall(Call call,
const QString &peer,
const QString &state)
......@@ -528,6 +531,8 @@ PhoneLineManagerImpl::addCall(Call call,
.arg(call.id());
call.notAvailable();
}
return selectedLine;
}
void
......
......@@ -3,7 +3,6 @@
//#include <qt.h>
#include <qobject.h>
#include <qmutex.h>
#include <utility>
#include <vector>
......@@ -54,6 +53,7 @@ signals:
void globalStatusSet(QString);
void bufferStatusSet(QString);
void actionSet(QString);
void unselectedLineStatusSet(QString);
void lineStatusSet(QString);
void volumeUpdated(int);
......@@ -152,10 +152,10 @@ public slots:
* This function is used to add a call on a
* phone line.
*/
void addCall(Call call,
PhoneLine *addCall(Call call,
const QString &peer,
const QString &state);
void addCall(const QString &accountId,
PhoneLine *addCall(const QString &accountId,
const QString &callId,
const QString &peer,
const QString &state);
......@@ -278,13 +278,8 @@ private:
Account *mAccount;
std::vector< PhoneLine * > mPhoneLines;
QMutex mPhoneLinesMutex;
PhoneLine *mCurrentLine;
QMutex mCurrentLineMutex;
bool mIsInitialized;
QMutex mIsInitializedMutex;
int mVolume;
int mMicVolume;
......
......@@ -19,6 +19,7 @@ SFLLcd::SFLLcd(QWidget *parent)
, mScreen(TransparentWidget::retreive(SCREEN))
, mOverscreen(TransparentWidget::retreive(OVERSCREEN))
, mGlobalStatusPos(-1)
, mUnselectedLineStatusPos(-1)
, mLineStatusPos(-1)
, mBufferStatusPos(-1)
, mActionPos(-1)
......@@ -28,6 +29,9 @@ SFLLcd::SFLLcd(QWidget *parent)
resize(mScreen.size());
move(22,44);
mUnselectedLineTimer = new QTimer(this);
QObject::connect(mUnselectedLineTimer, SIGNAL(timeout()),
this, SLOT(updateGlobalText()));
mTimer = new QTimer(this);
QObject::connect(mTimer, SIGNAL(timeout()),
......@@ -57,6 +61,12 @@ SFLLcd::updateText()
}
}
void
SFLLcd::updateGlobalText()
{
mUnselectedLineStatus = "";
}
void
SFLLcd::startTiming()
{
......@@ -106,6 +116,19 @@ SFLLcd::setLineStatus(QString line)
mLineStatus = line;
}
void
SFLLcd::setUnselectedLineStatus(QString line)
{
if(textIsTooBig(line)) {
mUnselectedLineStatusPos = 0;
}
else {
mUnselectedLineStatusPos = -1;
}
mUnselectedLineStatus = line;
mUnselectedLineTimer->start(3000, true);
}
void
SFLLcd::setAction(QString line)
{
......@@ -153,11 +176,22 @@ SFLLcd::paintEvent(QPaintEvent *event)
// Painter settings
QFontMetrics fm(mFont);
int *globalStatusPos;
QString globalStatus;
if(mUnselectedLineStatus.length() > 0) {
globalStatus = mUnselectedLineStatus;
globalStatusPos = &mUnselectedLineStatusPos;
}
else {
globalStatus = mGlobalStatus;
globalStatusPos = &mGlobalStatusPos;
}
int margin = 2;
p.setFont(mFont);
p.drawPixmap(0,0, mScreen);
p.drawText(QPoint(margin, fm.height()),
extractVisibleText(mGlobalStatus, mGlobalStatusPos));
extractVisibleText(globalStatus, *globalStatusPos));
p.drawText(QPoint(margin, 2*fm.height()),
extractVisibleText(mLineStatus, mLineStatusPos));
p.drawText(QPoint(margin, 3*fm.height()),
......
......@@ -41,6 +41,7 @@ public slots:
QString getTimeStatus();
void setGlobalStatus(QString global);
void setUnselectedLineStatus(QString line);
void setLineStatus(QString line);
void setAction(QString line);
void setBufferStatus(QString line);
......@@ -48,6 +49,7 @@ public slots:
void startTiming();
void stopTiming();
void updateText();
void updateGlobalText();
QString extractVisibleText(const QString &text, int &pos);
private:
......@@ -55,10 +57,12 @@ private:
QPixmap mOverscreen;
QString mGlobalStatus;
QString mUnselectedLineStatus;
QString mLineStatus;
QString mBufferStatus;
QString mAction;
int mGlobalStatusPos;
int mUnselectedLineStatusPos;
int mLineStatusPos;
int mBufferStatusPos;
int mActionPos;
......@@ -66,7 +70,7 @@ private:
bool mIsTimed;
QTime mTime;
QTimer *mTimer;
QTimer *mTextTimer;
QTimer *mUnselectedLineTimer;
QFont mFont;
};
......
......@@ -75,6 +75,8 @@ SFLPhoneApp::initConnections(SFLPhoneWindow *w)
// LCD Connections.
QObject::connect(&PhoneLineManager::instance(), SIGNAL(lineStatusSet(QString)),
w->mLcd, SLOT(setLineStatus(QString)));
QObject::connect(&PhoneLineManager::instance(), SIGNAL(unselectedLineStatusSet(QString)),
w->mLcd, SLOT(setUnselectedLineStatus(QString)));
QObject::connect(&PhoneLineManager::instance(), SIGNAL(actionSet(QString)),
w->mLcd, SLOT(setAction(QString)));
QObject::connect(&PhoneLineManager::instance(), SIGNAL(globalStatusSet(QString)),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment