Skip to content

Commit

Permalink
[nemo-qml-plugin-systemsettings] Add enableALS property and monitor p…
Browse files Browse the repository at this point in the history
…roperty changes
  • Loading branch information
martinjones committed Sep 9, 2013
1 parent f571584 commit 9f67396
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 12 deletions.
71 changes: 64 additions & 7 deletions src/displaysettings.cpp
Expand Up @@ -39,6 +39,7 @@ static const char *MceDisplayBrightness = "/system/osso/dsm/display/display_brig
static const char *MceDisplayDimTimeout = "/system/osso/dsm/display/display_dim_timeout";
static const char *MceDisplayBlankTimeout = "/system/osso/dsm/display/display_blank_timeout";
static const char *MceDisplayUseAdaptiveDimming = "/system/osso/dsm/display/use_adaptive_display_dimming";
static const char *MceDisplayUseAmbientLightSensor = "/system/osso/dsm/display/als_enabled";

DisplaySettings::DisplaySettings(QObject *parent)
: QObject(parent)
Expand All @@ -58,7 +59,14 @@ DisplaySettings::DisplaySettings(QObject *parent)

result = m_mceIface->get_config(QDBusObjectPath(MceDisplayUseAdaptiveDimming));
result.waitForFinished();
m_adaptiveDimming = result.value().variant().toBool();
m_adaptiveDimmingEnabled = result.value().variant().toBool();

result = m_mceIface->get_config(QDBusObjectPath(MceDisplayUseAmbientLightSensor));
result.waitForFinished();
m_ambientLightSensorEnabled = result.value().variant().toBool();

m_mceSignalIface = new ComNokiaMceSignalInterface(MCE_SERVICE, MCE_SIGNAL_PATH, QDBusConnection::systemBus(), this);
connect(m_mceSignalIface, SIGNAL(config_change_ind(QString,QDBusVariant)), this, SLOT(configChange(QString,QDBusVariant)));
}

int DisplaySettings::brightness() const
Expand Down Expand Up @@ -111,16 +119,65 @@ void DisplaySettings::setBlankTimeout(int value)
}
}

bool DisplaySettings::adaptiveDimming() const
bool DisplaySettings::adaptiveDimmingEnabled() const
{
return m_adaptiveDimming;
return m_adaptiveDimmingEnabled;
}

void DisplaySettings::setAdaptiveDimming(bool enabled)
void DisplaySettings::setAdaptiveDimmingEnabled(bool enabled)
{
if (m_adaptiveDimming != enabled) {
m_adaptiveDimming = enabled;
if (m_adaptiveDimmingEnabled != enabled) {
m_adaptiveDimmingEnabled = enabled;
m_mceIface->set_config(QDBusObjectPath(MceDisplayUseAdaptiveDimming), QDBusVariant(enabled));
emit adaptiveDimmingChanged();
emit adaptiveDimmingEnabledChanged();
}
}

bool DisplaySettings::ambientLightSensorEnabled() const
{
return m_ambientLightSensorEnabled;
}

void DisplaySettings::setAmbientLightSensorEnabled(bool enabled)
{
if (m_ambientLightSensorEnabled != enabled) {
m_ambientLightSensorEnabled = enabled;
m_mceIface->set_config(QDBusObjectPath(MceDisplayUseAmbientLightSensor), QDBusVariant(enabled));
emit ambientLightSensorEnabledChanged();
}
}

void DisplaySettings::configChange(const QString &key, const QDBusVariant &value)
{
if (key == MceDisplayBrightness) {
int val = value.variant().toInt();
if (val != m_brightness) {
m_brightness = val;
emit brightnessChanged();
}
} else if (key == MceDisplayDimTimeout) {
int val = value.variant().toInt();
if (val != m_dimTimeout) {
m_dimTimeout = val;
emit dimTimeoutChanged();
}
} else if (key == MceDisplayBlankTimeout) {
int val = value.variant().toInt();
if (val != m_blankTimeout) {
m_blankTimeout = val;
emit blankTimeoutChanged();
}
} else if (key == MceDisplayUseAdaptiveDimming) {
bool val = value.variant().toBool();
if (val != m_adaptiveDimmingEnabled) {
m_adaptiveDimmingEnabled = val;
emit adaptiveDimmingEnabledChanged();
}
} else if (key == MceDisplayUseAmbientLightSensor) {
bool val = value.variant().toBool();
if (val != m_ambientLightSensorEnabled) {
m_ambientLightSensorEnabled = val;
emit ambientLightSensorEnabledChanged();
}
}
}
22 changes: 17 additions & 5 deletions src/displaysettings.h
Expand Up @@ -36,6 +36,8 @@
#include <QtQml>

class ComNokiaMceRequestInterface;
class ComNokiaMceSignalInterface;
class QDBusVariant;

class DisplaySettings: public QObject
{
Expand All @@ -45,7 +47,8 @@ class DisplaySettings: public QObject
Q_PROPERTY(int maximumBrightness READ maximumBrightness CONSTANT)
Q_PROPERTY(int dimTimeout READ dimTimeout WRITE setDimTimeout NOTIFY dimTimeoutChanged)
Q_PROPERTY(int blankTimeout READ blankTimeout WRITE setBlankTimeout NOTIFY blankTimeoutChanged)
Q_PROPERTY(bool adaptiveDimming READ adaptiveDimming WRITE setAdaptiveDimming NOTIFY adaptiveDimmingChanged)
Q_PROPERTY(bool adaptiveDimmingEnabled READ adaptiveDimmingEnabled WRITE setAdaptiveDimmingEnabled NOTIFY adaptiveDimmingEnabledChanged)
Q_PROPERTY(bool ambientLightSensorEnabled READ ambientLightSensorEnabled WRITE setAmbientLightSensorEnabled NOTIFY ambientLightSensorEnabledChanged)

public:
explicit DisplaySettings(QObject *parent = 0);
Expand All @@ -61,21 +64,30 @@ class DisplaySettings: public QObject
int blankTimeout() const;
void setBlankTimeout(int t);

bool adaptiveDimming() const;
void setAdaptiveDimming(bool);
bool adaptiveDimmingEnabled() const;
void setAdaptiveDimmingEnabled(bool);

bool ambientLightSensorEnabled() const;
void setAmbientLightSensorEnabled(bool);

signals:
void brightnessChanged();
void dimTimeoutChanged();
void blankTimeoutChanged();
void adaptiveDimmingChanged();
void adaptiveDimmingEnabledChanged();
void ambientLightSensorEnabledChanged();

private slots:
void configChange(const QString &key, const QDBusVariant &value);

private:
ComNokiaMceRequestInterface *m_mceIface;
ComNokiaMceSignalInterface *m_mceSignalIface;
int m_brightness;
int m_dimTimeout;
int m_blankTimeout;
bool m_adaptiveDimming;
bool m_adaptiveDimmingEnabled;
bool m_ambientLightSensorEnabled;
};

QML_DECLARE_TYPE(DisplaySettings)
Expand Down
9 changes: 9 additions & 0 deletions src/mce.xml
Expand Up @@ -24,5 +24,14 @@
<arg name="states" direction="out" type="u"/>
</signal>
</interface>
<interface name="com.nokia.mce.signal">
<signal name="config_change_ind">
<arg name="key" direction="out" type="s"/>
<arg name="value" direction="out" type="v"/>
</signal>
<signal name="display_status_ind">
<arg name="state" direction="out" type="s"/>
</signal>
</interface>
</node>

0 comments on commit 9f67396

Please sign in to comment.