Commit f7926454e6234677ff2f40e4c11acf9d082fa84b
1 parent
8cd8ab969c
Exists in
master
and in
2 other branches
자동 밝기 조절 기능 추가
Showing
7 changed files
with
115 additions
and
3 deletions
Show diff stats
app/gui/oven_control/backlight.cpp
| @@ -0,0 +1,39 @@ | @@ -0,0 +1,39 @@ | ||
| 1 | +#include "backlight.h" | ||
| 2 | + | ||
| 3 | +#include "system.h" | ||
| 4 | + | ||
| 5 | +namespace { | ||
| 6 | +int setting = 7; | ||
| 7 | +bool lowered = false; | ||
| 8 | +} | ||
| 9 | + | ||
| 10 | +void Backlight::lower() | ||
| 11 | +{ | ||
| 12 | + lowered = true; | ||
| 13 | + | ||
| 14 | + int t = setting - 2; | ||
| 15 | + if (t < 0) | ||
| 16 | + System::setBacklight(0); | ||
| 17 | + else | ||
| 18 | + System::setBacklight(t); | ||
| 19 | +} | ||
| 20 | + | ||
| 21 | +void Backlight::restore() | ||
| 22 | +{ | ||
| 23 | + lowered = false; | ||
| 24 | + | ||
| 25 | + System::setBacklight(setting); | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +void Backlight::set(int level) | ||
| 29 | +{ | ||
| 30 | + if (level < 0 || level > 7) | ||
| 31 | + return; | ||
| 32 | + | ||
| 33 | + setting = level; | ||
| 34 | + | ||
| 35 | + if (lowered) | ||
| 36 | + lower(); | ||
| 37 | + else | ||
| 38 | + restore(); | ||
| 39 | +} |
app/gui/oven_control/backlight.h
app/gui/oven_control/inputoverwatcher.cpp
| 1 | #include "inputoverwatcher.h" | 1 | #include "inputoverwatcher.h" |
| 2 | 2 | ||
| 3 | +#include <QtDebug> | ||
| 4 | + | ||
| 5 | +#include "soundplayer.h" | ||
| 6 | +#include "backlight.h" | ||
| 7 | +#include "config.h" | ||
| 8 | + | ||
| 3 | InputOverwatcher::InputOverwatcher(QObject *parent) : QObject(parent) | 9 | InputOverwatcher::InputOverwatcher(QObject *parent) : QObject(parent) |
| 4 | { | 10 | { |
| 11 | + Define::config_item item = Config::getInstance()->getConfigValue(Define::config_backlight); | ||
| 12 | + | ||
| 13 | + timer.setSingleShot(true); | ||
| 14 | + timer.setInterval(item.d32 * 60000); | ||
| 15 | + connect(&timer, SIGNAL(timeout()), SLOT(lowerBacklight())); | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +bool InputOverwatcher::eventFilter(QObject */*watched*/, QEvent *event) | ||
| 19 | +{ | ||
| 20 | + switch (event->type()) | ||
| 21 | + { | ||
| 22 | + case QEvent::KeyPress: | ||
| 23 | + case QEvent::KeyRelease: | ||
| 24 | + case QEvent::MouseButtonPress: | ||
| 25 | + case QEvent::MouseButtonRelease: | ||
| 26 | + case QEvent::MouseMove: | ||
| 27 | + Backlight::restore(); | ||
| 28 | + timer.start(); | ||
| 29 | + break; | ||
| 30 | + default: | ||
| 31 | + break; | ||
| 32 | + } | ||
| 5 | 33 | ||
| 34 | + return false; | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +void InputOverwatcher::setDelay(int mins) | ||
| 38 | +{ | ||
| 39 | + timer.setInterval(mins * 60000); | ||
| 40 | + timer.start(); | ||
| 41 | +} | ||
| 42 | + | ||
| 43 | +void InputOverwatcher::lowerBacklight() | ||
| 44 | +{ | ||
| 45 | + Backlight::lower(); | ||
| 6 | } | 46 | } |
app/gui/oven_control/inputoverwatcher.h
| @@ -2,6 +2,8 @@ | @@ -2,6 +2,8 @@ | ||
| 2 | #define INPUTOVERWATCHER_H | 2 | #define INPUTOVERWATCHER_H |
| 3 | 3 | ||
| 4 | #include <QObject> | 4 | #include <QObject> |
| 5 | +#include <QEvent> | ||
| 6 | +#include <QTimer> | ||
| 5 | 7 | ||
| 6 | class InputOverwatcher : public QObject | 8 | class InputOverwatcher : public QObject |
| 7 | { | 9 | { |
| @@ -9,9 +11,16 @@ class InputOverwatcher : public QObject | @@ -9,9 +11,16 @@ class InputOverwatcher : public QObject | ||
| 9 | public: | 11 | public: |
| 10 | explicit InputOverwatcher(QObject *parent = 0); | 12 | explicit InputOverwatcher(QObject *parent = 0); |
| 11 | 13 | ||
| 14 | + bool eventFilter(QObject *watched, QEvent *event); | ||
| 15 | + | ||
| 12 | signals: | 16 | signals: |
| 13 | 17 | ||
| 14 | public slots: | 18 | public slots: |
| 19 | + void setDelay(int mins); | ||
| 20 | + void lowerBacklight(); | ||
| 21 | + | ||
| 22 | +private: | ||
| 23 | + QTimer timer; | ||
| 15 | }; | 24 | }; |
| 16 | 25 | ||
| 17 | -#endif // INPUTOVERWATCHER_H | ||
| 18 | \ No newline at end of file | 26 | \ No newline at end of file |
| 27 | +#endif // INPUTOVERWATCHER_H |
app/gui/oven_control/main.cpp
| @@ -4,12 +4,16 @@ | @@ -4,12 +4,16 @@ | ||
| 4 | #include "udphandler.h" | 4 | #include "udphandler.h" |
| 5 | #include "ovenstatics.h" | 5 | #include "ovenstatics.h" |
| 6 | #include "config.h" | 6 | #include "config.h" |
| 7 | +#include "inputoverwatcher.h" | ||
| 7 | #include <QApplication> | 8 | #include <QApplication> |
| 8 | 9 | ||
| 9 | int main(int argc, char *argv[]) | 10 | int main(int argc, char *argv[]) |
| 10 | { | 11 | { |
| 11 | QApplication a(argc, argv); | 12 | QApplication a(argc, argv); |
| 12 | 13 | ||
| 14 | + InputOverwatcher watcher; | ||
| 15 | + a.installEventFilter(&watcher); | ||
| 16 | + | ||
| 13 | Oven *oven = Oven::getInstance(); | 17 | Oven *oven = Oven::getInstance(); |
| 14 | 18 | ||
| 15 | OvenController *interface = new OvenController(oven, oven); | 19 | OvenController *interface = new OvenController(oven, oven); |
app/gui/oven_control/oven_control.pro
| @@ -99,7 +99,8 @@ SOURCES += main.cpp\ | @@ -99,7 +99,8 @@ SOURCES += main.cpp\ | ||
| 99 | gasmodelsettingwindow.cpp \ | 99 | gasmodelsettingwindow.cpp \ |
| 100 | electricmodelsettingwindow.cpp \ | 100 | electricmodelsettingwindow.cpp \ |
| 101 | system.cpp \ | 101 | system.cpp \ |
| 102 | - servicepassinputdlg.cpp | 102 | + servicepassinputdlg.cpp \ |
| 103 | + backlight.cpp | ||
| 103 | 104 | ||
| 104 | HEADERS += mainwindow.h \ | 105 | HEADERS += mainwindow.h \ |
| 105 | cook.h \ | 106 | cook.h \ |
| @@ -188,7 +189,8 @@ HEADERS += mainwindow.h \ | @@ -188,7 +189,8 @@ HEADERS += mainwindow.h \ | ||
| 188 | gasmodelsettingwindow.h \ | 189 | gasmodelsettingwindow.h \ |
| 189 | electricmodelsettingwindow.h \ | 190 | electricmodelsettingwindow.h \ |
| 190 | system.h \ | 191 | system.h \ |
| 191 | - servicepassinputdlg.h | 192 | + servicepassinputdlg.h \ |
| 193 | + backlight.h | ||
| 192 | 194 | ||
| 193 | FORMS += mainwindow.ui \ | 195 | FORMS += mainwindow.ui \ |
| 194 | manualcookwindow.ui \ | 196 | manualcookwindow.ui \ |
app/gui/oven_control/system.cpp
| @@ -15,6 +15,13 @@ void System::setIP(System::IPData &data) | @@ -15,6 +15,13 @@ void System::setIP(System::IPData &data) | ||
| 15 | 15 | ||
| 16 | void System::setBacklight(int level) | 16 | void System::setBacklight(int level) |
| 17 | { | 17 | { |
| 18 | + static int last = -1; | ||
| 19 | + | ||
| 20 | + if (level == last) | ||
| 21 | + return; | ||
| 22 | + | ||
| 23 | + last = level; | ||
| 24 | + | ||
| 18 | QString command = QString("echo %1 > /sys/class/backlight/backlight_lvds.19/brightness").arg(level); | 25 | QString command = QString("echo %1 > /sys/class/backlight/backlight_lvds.19/brightness").arg(level); |
| 19 | system(command.toLocal8Bit().constData()); | 26 | system(command.toLocal8Bit().constData()); |
| 20 | } | 27 | } |