diff options
Diffstat (limited to 'apps/plugins/rockboy/rtc.c')
-rw-r--r-- | apps/plugins/rockboy/rtc.c | 49 |
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 | ||
11 | struct rtc rtc; | 12 | struct rtc rtc; |
12 | 13 | ||
@@ -85,31 +86,37 @@ void rtc_tick() | |||
85 | 86 | ||
86 | void rtc_save_internal(int fd) | 87 | void 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 | ||
95 | void rtc_load_internal(int fd) | 98 | void 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 | ||