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
This commit is contained in:
Jens Arnold 2004-10-12 23:45:25 +00:00
parent 9db31cf886
commit c9e772645f
2 changed files with 52 additions and 34 deletions

View file

@ -2,6 +2,7 @@
favorites.c
firmware_flash.c
helloworld.c
metronome.c
rockbox_flash.c
search.c
sort.c
@ -9,7 +10,6 @@ vbrfix.c
#if CONFIG_KEYPAD != ONDIO_PAD
/* gradually bring in the ones not working yet */
battery_test.c
metronome.c
stopwatch.c
viewer.c
#endif /* #if CONFIG_KEYPAD != ONDIO_PAD */

View file

@ -20,6 +20,30 @@
#ifndef SIMULATOR
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
#define METRONOME_QUIT BUTTON_OFF
#define METRONOME_PLAYPAUSE BUTTON_PLAY
#define METRONOME_VOL_UP BUTTON_UP
#define METRONOME_VOL_DOWN BUTTON_DOWN
#define METRONOME_MSG_START "press play"
#define METRONOME_MSG_STOP "press pause"
#elif CONFIG_KEYPAD == ONDIO_PAD
#define METRONOME_QUIT BUTTON_OFF
#define METRONOME_PLAYPAUSE BUTTON_MENU
#define METRONOME_VOL_UP BUTTON_UP
#define METRONOME_VOL_DOWN BUTTON_DOWN
#define METRONOME_MSG_START "start: menu"
#define METRONOME_MSG_STOP "pause: menu"
#elif CONFIG_KEYPAD == PLAYER_PAD
#define METRONOME_QUIT BUTTON_STOP
#define METRONOME_PLAYPAUSE BUTTON_PLAY
#define METRONOME_VOL_UP (BUTTON_ON | BUTTON_RIGHT)
#define METRONOME_VOL_DOWN (BUTTON_ON | BUTTON_LEFT)
#endif
static struct plugin_api* rb;
static int bpm = 120;
@ -140,9 +164,9 @@ void draw_display(void){
#ifdef HAVE_LCD_BITMAP
rb->lcd_drawline(0, 12, 111, 12);
if(sound_paused)
rb->lcd_puts(0,2,"press play");
rb->lcd_puts(0,2,METRONOME_MSG_START);
else
rb->lcd_puts(0,2,"press pause");
rb->lcd_puts(0,2,METRONOME_MSG_STOP);
rb->lcd_update();
#endif
}
@ -179,9 +203,19 @@ void timer_callback(void){
}
}
void cleanup(void *parameter)
{
(void)parameter;
rb->plugin_unregister_timer();
rb->mp3_play_stop(); /* stop audio ISR */
led(0);
}
enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
int button;
TEST_PLUGIN_API(api);
(void)parameter;
rb = api;
@ -198,20 +232,21 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
/* main loop */
while (true){
button = rb->button_get(true);
switch (rb->button_get(true)) {
#if CONFIG_KEYPAD == RECORDER_PAD
case BUTTON_OFF:
#else
case BUTTON_STOP:
#endif
if (rb->default_event_handler_ex(button, cleanup, NULL)
== SYS_USB_CONNECTED)
return PLUGIN_USB_CONNECTED;
switch (button) {
case METRONOME_QUIT:
/* get out of here */
rb->plugin_unregister_timer();
rb->mp3_play_stop(); /* stop audio ISR */
led(0);
cleanup(NULL);
return PLUGIN_OK;
case BUTTON_PLAY:
case METRONOME_PLAYPAUSE:
if(sound_paused)
sound_paused = false;
else
@ -220,24 +255,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
draw_display();
break;
#if CONFIG_KEYPAD == RECORDER_PAD
case BUTTON_UP:
case BUTTON_UP | BUTTON_REPEAT:
#else
case BUTTON_ON | BUTTON_RIGHT:
case BUTTON_ON | BUTTON_RIGHT | BUTTON_REPEAT:
#endif
case METRONOME_VOL_UP:
case METRONOME_VOL_UP | BUTTON_REPEAT:
change_volume(1);
calc_period();
break;
#if CONFIG_KEYPAD == RECORDER_PAD
case BUTTON_DOWN:
case BUTTON_DOWN | BUTTON_REPEAT:
#else
case BUTTON_ON | BUTTON_LEFT:
case BUTTON_ON | BUTTON_LEFT | BUTTON_REPEAT:
#endif
case METRONOME_VOL_DOWN:
case METRONOME_VOL_DOWN | BUTTON_REPEAT:
change_volume(-1);
calc_period();
break;
@ -269,13 +294,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
calc_period();
draw_display();
break;
case SYS_USB_CONNECTED:
rb->plugin_unregister_timer();
rb->mp3_play_stop(); /* stop audio ISR */
led(0);
rb->usb_screen();
return PLUGIN_USB_CONNECTED;
}
}
}