summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy/rtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rockboy/rtc.c')
-rw-r--r--apps/plugins/rockboy/rtc.c49
1 files changed, 28 insertions, 21 deletions
diff --git a/apps/plugins/rockboy/rtc.c b/apps/plugins/rockboy/rtc.c
index 0b011a828c..17b2853fce 100644
--- a/apps/plugins/rockboy/rtc.c
+++ b/apps/plugins/rockboy/rtc.c
@@ -7,6 +7,7 @@
7#include "defs.h" 7#include "defs.h"
8#include "mem.h" 8#include "mem.h"
9#include "rtc-gb.h" 9#include "rtc-gb.h"
10#include "sscanf.h"
10 11
11struct rtc rtc; 12struct rtc rtc;
12 13
@@ -85,31 +86,37 @@ void rtc_tick()
85 86
86void rtc_save_internal(int fd) 87void rtc_save_internal(int fd)
87{ 88{
88 (void)fd; /* stop compiler complaining */ 89 int rt = 0;
89 /* TODO */ 90
90 /* fprintf(f, "%d %d %d %02d %02d %02d %02d\n%d\n", 91#if CONFIG_RTC
91 rtc.carry, rtc.stop, rtc.d, rtc.h, rtc.m, rtc.s, rtc.t, 92 rt = rb->mktime(rb->get_time());
92 time(0)); */ 93#endif
94 fdprintf(fd, "%d %d %d %d %d %d %d %d\n", rtc.carry, rtc.stop, rtc.d, rtc.h,
95 rtc.m, rtc.s, rtc.t, rt);
93} 96}
94 97
95void rtc_load_internal(int fd) 98void rtc_load_internal(int fd)
96{ 99{
97 /* int rt = 0; */ 100 int rt = 0;
98 (void)fd; /* stop compiler complaining */ 101 char buf[32];
99 /* TODO */ 102
100 /* fscanf( 103 rb->read_line(fd, buf, sizeof(buf));
101 f, "%d %d %d %02d %02d %02d %02d\n%d\n", 104 sscanf(buf, "%d %d %d %d %d %d %d %d\n", &rtc.carry, &rtc.stop, &rtc.d,
102 &rtc.carry, &rtc.stop, &rtc.d, 105 &rtc.h, &rtc.m, &rtc.s, &rtc.t, &rt);
103 &rtc.h, &rtc.m, &rtc.s, &rtc.t, &rt); 106
104 while (rtc.t >= 60) rtc.t -= 60; 107 while (rtc.t >= 60) rtc.t -= 60;
105 while (rtc.s >= 60) rtc.s -= 60; 108 while (rtc.s >= 60) rtc.s -= 60;
106 while (rtc.m >= 60) rtc.m -= 60; 109 while (rtc.m >= 60) rtc.m -= 60;
107 while (rtc.h >= 24) rtc.h -= 24; 110 while (rtc.h >= 24) rtc.h -= 24;
108 while (rtc.d >= 365) rtc.d -= 365; 111 while (rtc.d >= 365) rtc.d -= 365;
109 rtc.stop &= 1; 112 rtc.stop &= 1;
110 rtc.carry &= 1; 113 rtc.carry &= 1;
111 if (rt) rt = (time(0) - rt) * 60; 114
112 if (syncrtc) while (rt-- > 0) rtc_tick(); */ 115#if CONFIG_RTC
116 if (rt) rt = (rb->mktime(rb->get_time()) - rt) * 60;
117#endif
118 while (rt-- > 0) rtc_tick();
119
113} 120}
114 121
115 122