diff options
author | Jens Arnold <amiconn@rockbox.org> | 2004-10-12 23:45:25 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2004-10-12 23:45:25 +0000 |
commit | c9e772645f29e7c0eb26bf1d293fc64a54022378 (patch) | |
tree | 476f916aeab9dd012f3f2871994ee7b4b7af1496 /apps/plugins/metronome.c | |
parent | 9db31cf8866ec980edb6e42cc3697afc010e61a6 (diff) | |
download | rockbox-c9e772645f29e7c0eb26bf1d293fc64a54022378.tar.gz rockbox-c9e772645f29e7c0eb26bf1d293fc64a54022378.zip |
metronome.rock now uses default_event_handler_ex(). Adapted and enabled for Ondio.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5265 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/metronome.c')
-rw-r--r-- | apps/plugins/metronome.c | 84 |
1 files changed, 51 insertions, 33 deletions
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c index 74b7663f3f..2dd7c8950c 100644 --- a/apps/plugins/metronome.c +++ b/apps/plugins/metronome.c | |||
@@ -20,6 +20,30 @@ | |||
20 | 20 | ||
21 | #ifndef SIMULATOR | 21 | #ifndef SIMULATOR |
22 | 22 | ||
23 | /* variable button definitions */ | ||
24 | #if CONFIG_KEYPAD == RECORDER_PAD | ||
25 | #define METRONOME_QUIT BUTTON_OFF | ||
26 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | ||
27 | #define METRONOME_VOL_UP BUTTON_UP | ||
28 | #define METRONOME_VOL_DOWN BUTTON_DOWN | ||
29 | #define METRONOME_MSG_START "press play" | ||
30 | #define METRONOME_MSG_STOP "press pause" | ||
31 | |||
32 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
33 | #define METRONOME_QUIT BUTTON_OFF | ||
34 | #define METRONOME_PLAYPAUSE BUTTON_MENU | ||
35 | #define METRONOME_VOL_UP BUTTON_UP | ||
36 | #define METRONOME_VOL_DOWN BUTTON_DOWN | ||
37 | #define METRONOME_MSG_START "start: menu" | ||
38 | #define METRONOME_MSG_STOP "pause: menu" | ||
39 | |||
40 | #elif CONFIG_KEYPAD == PLAYER_PAD | ||
41 | #define METRONOME_QUIT BUTTON_STOP | ||
42 | #define METRONOME_PLAYPAUSE BUTTON_PLAY | ||
43 | #define METRONOME_VOL_UP (BUTTON_ON | BUTTON_RIGHT) | ||
44 | #define METRONOME_VOL_DOWN (BUTTON_ON | BUTTON_LEFT) | ||
45 | |||
46 | #endif | ||
23 | static struct plugin_api* rb; | 47 | static struct plugin_api* rb; |
24 | 48 | ||
25 | static int bpm = 120; | 49 | static int bpm = 120; |
@@ -140,9 +164,9 @@ void draw_display(void){ | |||
140 | #ifdef HAVE_LCD_BITMAP | 164 | #ifdef HAVE_LCD_BITMAP |
141 | rb->lcd_drawline(0, 12, 111, 12); | 165 | rb->lcd_drawline(0, 12, 111, 12); |
142 | if(sound_paused) | 166 | if(sound_paused) |
143 | rb->lcd_puts(0,2,"press play"); | 167 | rb->lcd_puts(0,2,METRONOME_MSG_START); |
144 | else | 168 | else |
145 | rb->lcd_puts(0,2,"press pause"); | 169 | rb->lcd_puts(0,2,METRONOME_MSG_STOP); |
146 | rb->lcd_update(); | 170 | rb->lcd_update(); |
147 | #endif | 171 | #endif |
148 | } | 172 | } |
@@ -179,9 +203,19 @@ void timer_callback(void){ | |||
179 | } | 203 | } |
180 | } | 204 | } |
181 | 205 | ||
206 | void cleanup(void *parameter) | ||
207 | { | ||
208 | (void)parameter; | ||
209 | |||
210 | rb->plugin_unregister_timer(); | ||
211 | rb->mp3_play_stop(); /* stop audio ISR */ | ||
212 | led(0); | ||
213 | } | ||
182 | 214 | ||
183 | enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | 215 | enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ |
184 | 216 | ||
217 | int button; | ||
218 | |||
185 | TEST_PLUGIN_API(api); | 219 | TEST_PLUGIN_API(api); |
186 | (void)parameter; | 220 | (void)parameter; |
187 | rb = api; | 221 | rb = api; |
@@ -198,20 +232,21 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | |||
198 | 232 | ||
199 | /* main loop */ | 233 | /* main loop */ |
200 | while (true){ | 234 | while (true){ |
235 | |||
236 | button = rb->button_get(true); | ||
201 | 237 | ||
202 | switch (rb->button_get(true)) { | 238 | if (rb->default_event_handler_ex(button, cleanup, NULL) |
203 | #if CONFIG_KEYPAD == RECORDER_PAD | 239 | == SYS_USB_CONNECTED) |
204 | case BUTTON_OFF: | 240 | return PLUGIN_USB_CONNECTED; |
205 | #else | 241 | |
206 | case BUTTON_STOP: | 242 | switch (button) { |
207 | #endif | 243 | |
244 | case METRONOME_QUIT: | ||
208 | /* get out of here */ | 245 | /* get out of here */ |
209 | rb->plugin_unregister_timer(); | 246 | cleanup(NULL); |
210 | rb->mp3_play_stop(); /* stop audio ISR */ | ||
211 | led(0); | ||
212 | return PLUGIN_OK; | 247 | return PLUGIN_OK; |
213 | 248 | ||
214 | case BUTTON_PLAY: | 249 | case METRONOME_PLAYPAUSE: |
215 | if(sound_paused) | 250 | if(sound_paused) |
216 | sound_paused = false; | 251 | sound_paused = false; |
217 | else | 252 | else |
@@ -220,24 +255,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | |||
220 | draw_display(); | 255 | draw_display(); |
221 | break; | 256 | break; |
222 | 257 | ||
223 | #if CONFIG_KEYPAD == RECORDER_PAD | 258 | case METRONOME_VOL_UP: |
224 | case BUTTON_UP: | 259 | case METRONOME_VOL_UP | BUTTON_REPEAT: |
225 | case BUTTON_UP | BUTTON_REPEAT: | ||
226 | #else | ||
227 | case BUTTON_ON | BUTTON_RIGHT: | ||
228 | case BUTTON_ON | BUTTON_RIGHT | BUTTON_REPEAT: | ||
229 | #endif | ||
230 | change_volume(1); | 260 | change_volume(1); |
231 | calc_period(); | 261 | calc_period(); |
232 | break; | 262 | break; |
233 | 263 | ||
234 | #if CONFIG_KEYPAD == RECORDER_PAD | 264 | case METRONOME_VOL_DOWN: |
235 | case BUTTON_DOWN: | 265 | case METRONOME_VOL_DOWN | BUTTON_REPEAT: |
236 | case BUTTON_DOWN | BUTTON_REPEAT: | ||
237 | #else | ||
238 | case BUTTON_ON | BUTTON_LEFT: | ||
239 | case BUTTON_ON | BUTTON_LEFT | BUTTON_REPEAT: | ||
240 | #endif | ||
241 | change_volume(-1); | 266 | change_volume(-1); |
242 | calc_period(); | 267 | calc_period(); |
243 | break; | 268 | break; |
@@ -269,13 +294,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ | |||
269 | calc_period(); | 294 | calc_period(); |
270 | draw_display(); | 295 | draw_display(); |
271 | break; | 296 | break; |
272 | |||
273 | case SYS_USB_CONNECTED: | ||
274 | rb->plugin_unregister_timer(); | ||
275 | rb->mp3_play_stop(); /* stop audio ISR */ | ||
276 | led(0); | ||
277 | rb->usb_screen(); | ||
278 | return PLUGIN_USB_CONNECTED; | ||
279 | } | 297 | } |
280 | } | 298 | } |
281 | } | 299 | } |