Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[connectionagent] use mce via dbus for display state signaling,
to be able to do things such as start a scan when needed.
- Loading branch information
Lorn Potter
committed
Oct 29, 2013
1 parent
c23e764
commit 5d9a34c
Showing
6 changed files
with
159 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
/**************************************************************************** | ||
** | ||
** Copyright (C) 2013 Jolla Ltd | ||
** Contact: lorn.potter@gmail.com | ||
** | ||
** | ||
** GNU Lesser General Public License Usage | ||
** This file may be used under the terms of the GNU Lesser | ||
** General Public License version 2.1 as published by the Free Software | ||
** Foundation and appearing in the file LICENSE.LGPL included in the | ||
** packaging of this file. Please review the following information to | ||
** ensure the GNU Lesser General Public License version 2.1 requirements | ||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
** | ||
****************************************************************************/ | ||
|
||
#include <QDBusPendingReply> | ||
#include <QDebug> | ||
|
||
#include "wakeupwatcher.h" | ||
|
||
WakeupWatcher::WakeupWatcher(QObject *parent) : | ||
QObject(parent), | ||
currentPowerSave(false) | ||
{ | ||
mceInterface = new QDBusInterface(MCE_SERVICE, | ||
MCE_SIGNAL_PATH, | ||
MCE_SIGNAL_INTERFACE, | ||
QDBusConnection::systemBus(), | ||
parent); | ||
|
||
mceInterface->connection().connect(MCE_SERVICE, | ||
MCE_SIGNAL_PATH, | ||
MCE_SIGNAL_INTERFACE, | ||
MCE_PSM_STATE_IND, | ||
this, | ||
SLOT(mceSleepStateChanged(bool))); | ||
|
||
mceInterface->connection().connect(MCE_SERVICE, | ||
MCE_SIGNAL_PATH, | ||
MCE_SIGNAL_INTERFACE, | ||
MCE_DISPLAY_IND, | ||
this, | ||
SLOT(mceDisplayStateChanged(const QString))); | ||
|
||
QDBusPendingReply<QString> displayStateReply = QDBusConnection::systemBus().call( | ||
QDBusMessage::createMethodCall(MCE_SERVICE, | ||
MCE_REQUEST_PATH, | ||
MCE_REQUEST_INTERFACE, | ||
MCE_DISPLAY_STATUS_GET)); | ||
displayStateReply.waitForFinished(); | ||
if (displayStateReply.isValid()) { | ||
currentDisplayState = displayStateReply.value(); | ||
} | ||
} | ||
|
||
void WakeupWatcher::mceDisplayStateChanged(const QString &state) | ||
{ | ||
if (state != currentDisplayState) { | ||
currentDisplayState = state; | ||
emit displayStateChanged(currentDisplayState); | ||
} | ||
} | ||
|
||
void WakeupWatcher::mceSleepStateChanged(bool mode) | ||
{ | ||
if (mode != currentPowerSave) { | ||
currentPowerSave = mode; | ||
emit sleepStateChanged(currentPowerSave); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/**************************************************************************** | ||
** | ||
** Copyright (C) 2013 Jolla Ltd | ||
** Contact: lorn.potter@gmail.com | ||
** | ||
** | ||
** GNU Lesser General Public License Usage | ||
** This file may be used under the terms of the GNU Lesser | ||
** General Public License version 2.1 as published by the Free Software | ||
** Foundation and appearing in the file LICENSE.LGPL included in the | ||
** packaging of this file. Please review the following information to | ||
** ensure the GNU Lesser General Public License version 2.1 requirements | ||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
** | ||
****************************************************************************/ | ||
|
||
#ifndef WAKEUPWATCHER_H | ||
#define WAKEUPWATCHER_H | ||
|
||
#include <QObject> | ||
#include <QDBusInterface> | ||
|
||
#define MCE_SERVICE "com.nokia.mce" | ||
#define MCE_SIGNAL_PATH "/com/nokia/mce/signal" | ||
#define MCE_SIGNAL_INTERFACE "com.nokia.mce.signal" | ||
#define MCE_PSM_STATE_IND "psm_state_ind" | ||
#define MCE_DISPLAY_IND "display_status_ind" | ||
|
||
#define MCE_REQUEST_PATH "/com/nokia/mce/request" | ||
#define MCE_REQUEST_INTERFACE "com.nokia.mce.request" | ||
#define MCE_DISPLAY_STATUS_GET "get_display_status" | ||
#define MCE_PSM_STATE_GET "get_psm_state" | ||
|
||
class WakeupWatcher : public QObject | ||
{ | ||
Q_OBJECT | ||
public: | ||
explicit WakeupWatcher(QObject *parent = 0); | ||
|
||
signals: | ||
void displayStateChanged(const QString&); | ||
void sleepStateChanged(bool); | ||
public slots: | ||
|
||
private slots: | ||
void mceDisplayStateChanged(const QString &state); | ||
void mceSleepStateChanged(bool mode); | ||
private: | ||
QDBusInterface *mceInterface; | ||
QString currentDisplayState; | ||
bool currentPowerSave; | ||
}; | ||
|
||
#endif // WAKEUPWATCHER_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters