From 3c70b34ae35cd22d6b7424e4f8523a2c6a1a62e5 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Tue, 5 May 2020 21:57:03 +0900 Subject: KMilo: added keyboard support for screen brightness up/down. This is inspired and partially include code from Roman Savochenko proposed in bug 2783 and tdeutils #8. Signed-off-by: Michele Calgaro --- kmilo/generic/generic_monitor.cpp | 56 ++++++++++++++++++++++++++++++++++----- kmilo/generic/generic_monitor.h | 5 +++- 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/kmilo/generic/generic_monitor.cpp b/kmilo/generic/generic_monitor.cpp index 28138ec..9017f70 100644 --- a/kmilo/generic/generic_monitor.cpp +++ b/kmilo/generic/generic_monitor.cpp @@ -43,7 +43,7 @@ using namespace KMilo; GenericMonitor::GenericMonitor(TQObject *parent, const char *name, const TQStringList& args) -: Monitor(parent, name, args) +: Monitor(parent, name, args), kmixClient(NULL), kmixWindow(NULL), tdepowersave(NULL) { _poll = false; m_displayType = Monitor::None; @@ -69,11 +69,8 @@ GenericMonitor::~GenericMonitor() bool GenericMonitor::init() { - TDEConfig config(CONFIG_FILE); - reconfigure(&config); - - //config = new TDEConfig("kmilodrc"); - config.setGroup("kubuntu"); + config = new TDEConfig(CONFIG_FILE); + reconfigure(config); if(!m_enabled) return false; // exit early if we are not supposed to run @@ -95,7 +92,9 @@ bool GenericMonitor::init() { "FastVolumeDown", TQt::Key_VolumeDown, TQT_SLOT(fastVolumeDown()) }, { "SlowVolumeUp", TQt::CTRL+TQt::Key_VolumeUp, TQT_SLOT(slowVolumeUp()) }, { "SlowVolumeDown", TQt::CTRL+TQt::Key_VolumeDown, TQT_SLOT(slowVolumeDown()) }, - { "Mute", TDEShortcut("XF86AudioMute"), TQT_SLOT(mute()) } + { "Mute", TDEShortcut("XF86AudioMute"), TQT_SLOT(mute()) }, + { "BrightnessUp", TDEShortcut("XF86MonBrightnessUp"), TQT_SLOT(brightnessUp()) }, + { "BrightnessDown", TDEShortcut("XF86MonBrightnessDown"), TQT_SLOT(brightnessDown()) } }; ga = new TDEGlobalAccel(this, "miloGenericAccel"); @@ -116,6 +115,7 @@ bool GenericMonitor::init() kmixClient = new DCOPRef("kmix", "Mixer0"); kmixWindow = new DCOPRef("kmix", "kmix-mainwindow#1"); + tdepowersave = new DCOPRef("tdepowersave", "tdepowersaveIface"); return true; } @@ -325,6 +325,48 @@ void GenericMonitor::mute() _interface->displayText(muteText); } +void GenericMonitor::brightnessUp() +{ + brightnessChange(1, 10); +} + +void GenericMonitor::brightnessDown() +{ + brightnessChange(-1, 10); +} + +void GenericMonitor::brightnessChange(int direction, int step) +{ + if (!tdepowersave) + { + return; + } + + DCOPReply reply = tdepowersave->call("brightnessGet"); + if (reply.isValid()) + { + int brightnessLevel = 100 + (int)reply; // reply value is a negative number between 0 and -100. + brightnessLevel += direction * step; // add requested brightness step + if (brightnessLevel > 100) + { + brightnessLevel = 100; + } + if (brightnessLevel < 0) + { + brightnessLevel = 0; + } + if (direction > 0) + { + tdepowersave->send("do_brightnessUp", step); + } + else if (direction < 0) + { + tdepowersave->send("do_brightnessDown", step); + } + _interface->displayProgress(i18n("Brightness"), brightnessLevel); + } +} + int GenericMonitor::progress() const { return m_progress; diff --git a/kmilo/generic/generic_monitor.h b/kmilo/generic/generic_monitor.h index 44ff970..9305ac3 100644 --- a/kmilo/generic/generic_monitor.h +++ b/kmilo/generic/generic_monitor.h @@ -65,6 +65,8 @@ public slots: void fastVolumeUp(); void fastVolumeDown(); void mute(); + void brightnessUp(); + void brightnessDown(); void launchMail(); void launchBrowser(); void launchSearch(); @@ -83,12 +85,13 @@ private: bool retrieveMute(); bool retrieveVolume(); void displayVolume(); + void brightnessChange(int direction, int step); void launch(TQString configKey, TQString defaultApplication); TDEGlobalAccel *ga; TDEConfig* config; - DCOPRef *kmixClient, *kmixWindow; + DCOPRef *kmixClient, *kmixWindow, *tdepowersave; int m_progress; long m_volume; -- cgit v1.2.1