summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2004-08-28 09:07:21 +0000
committerJens Arnold <amiconn@rockbox.org>2004-08-28 09:07:21 +0000
commit0df29b215722513085d51f34756b09b5f4f3d19c (patch)
tree93e081a5e4732a2a14c425577d330f5631721a61 /apps/plugins
parentbf955a8b6bfb52cedf9c896af0aac7732c8c8790 (diff)
Fixes: (1) metronome didn't yield() at all, (2) possible race condition, (3) complete cleanup when detecting USB connection, (4) removed TAB chars
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5022 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/metronome.c160
1 files changed, 81 insertions, 79 deletions
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index 1647854acd..dbccd03697 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -91,15 +91,15 @@ static unsigned char sound[]={
void led(bool on){
if(on)
- or_b(0x40, &PBDRL);
+ or_b(0x40, &PBDRL);
else
- and_b(~0x40, &PBDRL);
+ and_b(~0x40, &PBDRL);
}
void calc_period(void){
period = 61440/bpm-1; // (60*1024)/bpm;
}
-
+
void callback(unsigned char** start, int* size){
(void)start; /* unused parameter, avoid warning */
*size = NULL; /* end of data */
@@ -140,9 +140,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,"press play");
else
- rb->lcd_puts(0,2,"press pause");
+ rb->lcd_puts(0,2,"press pause");
rb->lcd_update();
#endif
}
@@ -157,10 +157,10 @@ void change_volume(int delta){
if (vol != rb->global_settings->volume) {
rb->mpeg_sound_set(SOUND_VOLUME, vol);
rb->global_settings->volume = vol;
- rb->snprintf(buffer, sizeof(buffer), "Vol: %d ", vol);
+ rb->snprintf(buffer, sizeof(buffer), "Vol: %d ", vol);
#ifdef HAVE_LCD_BITMAP
rb->lcd_puts(10,7, buffer);
- rb->lcd_update();
+ rb->lcd_update();
#else
rb->lcd_puts(0,1, buffer);
#endif
@@ -169,13 +169,13 @@ void change_volume(int delta){
void timer_callback(void){
if(minitick>=period){
- minitick = 0;
- if(!sound_active && !sound_paused){
- play_tock();
- }
+ minitick = 0;
+ if(!sound_active && !sound_paused){
+ play_tock();
+ }
}
else {
- minitick++;
+ minitick++;
}
}
@@ -189,7 +189,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
rb->bitswap(sound, sizeof(sound));
if (rb->mp3_is_playing())
- rb->mp3_play_stop(); // stop audio ISR
+ rb->mp3_play_stop(); // stop audio ISR
calc_period();
rb->plugin_register_timer((FREQ/1024), 1, timer_callback);
@@ -198,83 +198,85 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
/* main loop */
while (true){
-
- switch (rb->button_get(false)) {
+
+ switch (rb->button_get(true)) {
#ifdef HAVE_RECORDER_KEYPAD
- case BUTTON_OFF:
+ case BUTTON_OFF:
#else
- case BUTTON_STOP:
+ case BUTTON_STOP:
#endif
- /* get out of here */
- rb->mp3_play_stop(); /* stop audio ISR */
- rb->plugin_unregister_timer();
- led(0);
- return PLUGIN_OK;
-
- case BUTTON_PLAY:
- if(sound_paused)
- sound_paused = false;
- else
- sound_paused = true;
- calc_period();
- draw_display();
- break;
+ /* get out of here */
+ rb->plugin_unregister_timer();
+ rb->mp3_play_stop(); /* stop audio ISR */
+ led(0);
+ return PLUGIN_OK;
+
+ case BUTTON_PLAY:
+ if(sound_paused)
+ sound_paused = false;
+ else
+ sound_paused = true;
+ calc_period();
+ draw_display();
+ break;
#ifdef HAVE_RECORDER_KEYPAD
- case BUTTON_UP:
- case BUTTON_UP | BUTTON_REPEAT:
+ case BUTTON_UP:
+ case BUTTON_UP | BUTTON_REPEAT:
#else
- case BUTTON_ON | BUTTON_RIGHT:
- case BUTTON_ON | BUTTON_RIGHT | BUTTON_REPEAT:
+ case BUTTON_ON | BUTTON_RIGHT:
+ case BUTTON_ON | BUTTON_RIGHT | BUTTON_REPEAT:
#endif
- change_volume(1);
- calc_period();
- break;
+ change_volume(1);
+ calc_period();
+ break;
#ifdef HAVE_RECORDER_KEYPAD
- case BUTTON_DOWN:
- case BUTTON_DOWN | BUTTON_REPEAT:
+ case BUTTON_DOWN:
+ case BUTTON_DOWN | BUTTON_REPEAT:
#else
- case BUTTON_ON | BUTTON_LEFT:
- case BUTTON_ON | BUTTON_LEFT | BUTTON_REPEAT:
+ case BUTTON_ON | BUTTON_LEFT:
+ case BUTTON_ON | BUTTON_LEFT | BUTTON_REPEAT:
#endif
- change_volume(-1);
- calc_period();
- break;
-
- case BUTTON_LEFT:
- if (bpm > 1)
- bpm--;
- calc_period();
- draw_display();
- break;
-
- case BUTTON_LEFT | BUTTON_REPEAT:
- if (bpm > 10)
- bpm=bpm-10;
- calc_period();
- draw_display();
- break;
-
- case BUTTON_RIGHT:
- if(bpm < 400)
- bpm++;
- calc_period();
- draw_display();
- break;
-
- case BUTTON_RIGHT | BUTTON_REPEAT:
- if (bpm < 400)
- bpm=bpm+10;
- calc_period();
- draw_display();
- break;
-
- case SYS_USB_CONNECTED:
- rb->plugin_unregister_timer();
- rb->usb_screen();
- return PLUGIN_USB_CONNECTED;
- }
+ change_volume(-1);
+ calc_period();
+ break;
+
+ case BUTTON_LEFT:
+ if (bpm > 1)
+ bpm--;
+ calc_period();
+ draw_display();
+ break;
+
+ case BUTTON_LEFT | BUTTON_REPEAT:
+ if (bpm > 10)
+ bpm=bpm-10;
+ calc_period();
+ draw_display();
+ break;
+
+ case BUTTON_RIGHT:
+ if(bpm < 400)
+ bpm++;
+ calc_period();
+ draw_display();
+ break;
+
+ case BUTTON_RIGHT | BUTTON_REPEAT:
+ if (bpm < 400)
+ bpm=bpm+10;
+ 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;
+ }
}
}
#endif /* #ifndef SIMULATOR */