1
0
Fork 0
forked from len0rd/rockbox

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

View file

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