diff options
Diffstat (limited to 'apps/plugins/stopwatch.c')
-rw-r--r-- | apps/plugins/stopwatch.c | 71 |
1 files changed, 40 insertions, 31 deletions
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index 370a1b51a6..6157dda038 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c | |||
@@ -31,6 +31,30 @@ | |||
31 | #define MAX_LAPS 10 | 31 | #define MAX_LAPS 10 |
32 | #define MAX_SCROLL (MAX_LAPS - LAP_LINES) | 32 | #define MAX_SCROLL (MAX_LAPS - LAP_LINES) |
33 | 33 | ||
34 | /* variable button definitions */ | ||
35 | #if CONFIG_KEYPAD == RECORDER_PAD | ||
36 | #define STOPWATCH_QUIT BUTTON_OFF | ||
37 | #define STOPWATCH_START_STOP BUTTON_PLAY | ||
38 | #define STOPWATCH_RESET_TIMER BUTTON_LEFT | ||
39 | #define STOPWATCH_LAP_TIMER BUTTON_ON | ||
40 | #define STOPWATCH_SCROLL_UP BUTTON_UP | ||
41 | #define STOPWATCH_SCROLL_DOWN BUTTON_DOWN | ||
42 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
43 | #define STOPWATCH_QUIT BUTTON_OFF | ||
44 | #define STOPWATCH_START_STOP BUTTON_RIGHT | ||
45 | #define STOPWATCH_RESET_TIMER BUTTON_LEFT | ||
46 | #define STOPWATCH_LAP_TIMER BUTTON_MENU | ||
47 | #define STOPWATCH_SCROLL_UP BUTTON_UP | ||
48 | #define STOPWATCH_SCROLL_DOWN BUTTON_DOWN | ||
49 | #elif CONFIG_KEYPAD == PLAYER_PAD | ||
50 | #define STOPWATCH_QUIT BUTTON_MENU | ||
51 | #define STOPWATCH_START_STOP BUTTON_PLAY | ||
52 | #define STOPWATCH_RESET_TIMER BUTTON_STOP | ||
53 | #define STOPWATCH_LAP_TIMER BUTTON_ON | ||
54 | #define STOPWATCH_SCROLL_UP BUTTON_RIGHT | ||
55 | #define STOPWATCH_SCROLL_DOWN BUTTON_LEFT | ||
56 | #endif | ||
57 | |||
34 | static struct plugin_api* rb; | 58 | static struct plugin_api* rb; |
35 | 59 | ||
36 | static int stopwatch = 0; | 60 | static int stopwatch = 0; |
@@ -102,17 +126,13 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
102 | switch (button) | 126 | switch (button) |
103 | { | 127 | { |
104 | 128 | ||
105 | /* OFF/MENU key to exit */ | 129 | /* exit */ |
106 | #if CONFIG_KEYPAD == RECORDER_PAD | 130 | case STOPWATCH_QUIT: |
107 | case BUTTON_OFF: | ||
108 | #else | ||
109 | case BUTTON_MENU: | ||
110 | #endif | ||
111 | done = true; | 131 | done = true; |
112 | break; | 132 | break; |
113 | 133 | ||
114 | /* PLAY = Stop/Start toggle */ | 134 | /* Stop/Start toggle */ |
115 | case BUTTON_PLAY: | 135 | case STOPWATCH_START_STOP: |
116 | counting = ! counting; | 136 | counting = ! counting; |
117 | if (counting) | 137 | if (counting) |
118 | { | 138 | { |
@@ -126,12 +146,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
126 | } | 146 | } |
127 | break; | 147 | break; |
128 | 148 | ||
129 | /* LEFT = Reset timer */ | 149 | /* Reset timer */ |
130 | #if CONFIG_KEYPAD == RECORDER_PAD | 150 | case STOPWATCH_RESET_TIMER: |
131 | case BUTTON_LEFT: | ||
132 | #else | ||
133 | case BUTTON_STOP: | ||
134 | #endif | ||
135 | if (!counting) | 151 | if (!counting) |
136 | { | 152 | { |
137 | prev_total = 0; | 153 | prev_total = 0; |
@@ -140,19 +156,15 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
140 | } | 156 | } |
141 | break; | 157 | break; |
142 | 158 | ||
143 | /* ON = Lap timer */ | 159 | /* Lap timer */ |
144 | case BUTTON_ON: | 160 | case STOPWATCH_LAP_TIMER: |
145 | lap_times[curr_lap%MAX_LAPS] = stopwatch; | 161 | lap_times[curr_lap%MAX_LAPS] = stopwatch; |
146 | curr_lap++; | 162 | curr_lap++; |
147 | update_lap = true; | 163 | update_lap = true; |
148 | break; | 164 | break; |
149 | 165 | ||
150 | /* UP (RIGHT/+) = Scroll Lap timer up */ | 166 | /* Scroll Lap timer up */ |
151 | #if CONFIG_KEYPAD == RECORDER_PAD | 167 | case STOPWATCH_SCROLL_UP: |
152 | case BUTTON_UP: | ||
153 | #else | ||
154 | case BUTTON_RIGHT: | ||
155 | #endif | ||
156 | if (lap_scroll > 0) | 168 | if (lap_scroll > 0) |
157 | { | 169 | { |
158 | lap_scroll --; | 170 | lap_scroll --; |
@@ -160,12 +172,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
160 | } | 172 | } |
161 | break; | 173 | break; |
162 | 174 | ||
163 | /* DOWN (LEFT/-) = Scroll Lap timer down */ | 175 | /* Scroll Lap timer down */ |
164 | #if CONFIG_KEYPAD == RECORDER_PAD | 176 | case STOPWATCH_SCROLL_DOWN: |
165 | case BUTTON_DOWN: | ||
166 | #else | ||
167 | case BUTTON_LEFT: | ||
168 | #endif | ||
169 | if ((lap_scroll < curr_lap - LAP_LINES) && | 177 | if ((lap_scroll < curr_lap - LAP_LINES) && |
170 | (lap_scroll < MAX_SCROLL) ) | 178 | (lap_scroll < MAX_SCROLL) ) |
171 | { | 179 | { |
@@ -174,9 +182,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
174 | } | 182 | } |
175 | break; | 183 | break; |
176 | 184 | ||
177 | case SYS_USB_CONNECTED: | 185 | default: |
178 | rb->usb_screen(); | 186 | if (rb->default_event_handler(button) == SYS_USB_CONNECTED) |
179 | return PLUGIN_USB_CONNECTED; | 187 | return PLUGIN_USB_CONNECTED; |
188 | break; | ||
180 | } | 189 | } |
181 | 190 | ||
182 | if (counting) | 191 | if (counting) |