summaryrefslogtreecommitdiff
path: root/imon.c
diff options
context:
space:
mode:
authoranbr <vdr07@deltab.de>2009-06-04 16:07:16 +0200
committeranbr <vdr07@deltab.de>2009-06-04 16:07:16 +0200
commit5ef2e1726de737db6fb35912901b9c9d73a5014d (patch)
tree83be192e7847dfcb04b7544367aa6e744e591402 /imon.c
parent603be1f41b0703d35dba6ba512a0d0893a69ecb9 (diff)
downloadvdr-plugin-imonlcd-5ef2e1726de737db6fb35912901b9c9d73a5014d.tar.gz
vdr-plugin-imonlcd-5ef2e1726de737db6fb35912901b9c9d73a5014d.tar.bz2
add eexit mode with setup wakeup time and showing clock.
Diffstat (limited to 'imon.c')
-rw-r--r--imon.c36
1 files changed, 25 insertions, 11 deletions
diff --git a/imon.c b/imon.c
index ab850ce..9c78261 100644
--- a/imon.c
+++ b/imon.c
@@ -205,25 +205,39 @@ bool ciMonLCD::SendCmdShutdown() {
* Show the big clock. We need to set it to the current time, then it just
* keeps counting automatically.
*/
-bool ciMonLCD::SendCmdClock() {
+bool ciMonLCD::SendCmdClock(time_t tAlarm) {
time_t tt;
struct tm l;
uint64_t data;
+ uint64_t alarm;
- tt = time(NULL);
+ tt = time(NULL);
localtime_r(&tt, &l);
+
+ data = this->cmd_display;
+ alarm = this->cmd_clear_alarm;
+
+ data += ((uint64_t) l.tm_sec << 48);
+ data += ((uint64_t) l.tm_min << 40);
+ data += ((uint64_t) l.tm_hour << 32);
+ data += ((uint64_t) l.tm_mday << 24);
+ data += ((uint64_t) l.tm_mon << 16);
+ data += ((uint64_t) l.tm_year << 8);
+
+ if(!tAlarm) {
+ data += 0x80;
+ } else {
+ data += 0x24; // Works for me on 0038 (need check for ffdc)
- data = this->cmd_display;
- data += ((uint64_t) l.tm_sec << 48);
- data += ((uint64_t) l.tm_min << 40);
- data += ((uint64_t) l.tm_hour << 32);
- data += ((uint64_t) l.tm_mday << 24);
- data += ((uint64_t) l.tm_mon << 16);
- data += (((uint64_t) l.tm_year) << 8);
- data += 0x80;
+ localtime_r(&tAlarm, &l);
+ alarm += ((uint64_t) l.tm_min << 24);
+ alarm += ((uint64_t) l.tm_hour << 16);
+ alarm += ((uint64_t) l.tm_mday << 8);
+ alarm += ((uint64_t) l.tm_mon << 0);
+ }
return SendCmd(data)
- && SendCmd(this->cmd_clear_alarm);
+ && SendCmd(alarm);
}
/**