Added copyright headers and COPYING file.
[harmattan/cameraplus] / src / displaystate.cpp
1 /*!
2  * This file is part of CameraPlus.
3  *
4  * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
19  */
20
21 #include "displaystate.h"
22 #include <qmsystem2/qmdisplaystate.h>
23 #include <QTimer>
24 #include <QDebug>
25
26 DisplayState::DisplayState(QObject *parent) :
27   QObject(parent), m_state(new MeeGo::QmDisplayState(this)), m_timer(new QTimer(this)) {
28
29   m_timer->setSingleShot(false);
30   m_timer->setInterval(50 * 1000);
31
32   QObject::connect(m_timer, SIGNAL(timeout()), this, SLOT(timeout()));
33 }
34
35 DisplayState::~DisplayState() {
36   setInhibitDim(false);
37 }
38
39 bool DisplayState::isDimInhibited() const {
40   return m_timer->isActive();
41 }
42
43 void DisplayState::setInhibitDim(bool inhibit) {
44   if (m_timer->isActive() == inhibit) {
45     return;
46   }
47
48   if (!inhibit) {
49     if (!m_state->cancelBlankingPause()) {
50       qWarning() << "Failed to cancel display dimming!";
51     }
52
53     m_timer->stop();
54   }
55   else {
56     if (!m_state->setBlankingPause()) {
57       qWarning() << "Failed to inhibit display dimming!";
58       return;
59     }
60
61     m_timer->start();
62   }
63
64   emit inhibitDimChanged();
65 }
66
67 void DisplayState::timeout() {
68   if (!m_state->setBlankingPause()) {
69     qWarning() << "Failed to inhibit display dimming!";
70   }
71 }