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:
parent
9db31cf886
commit
c9e772645f
2 changed files with 52 additions and 34 deletions
|
@ -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 */
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue