summaryrefslogtreecommitdiff
path: root/apps/plugins/midi/midiplay.c
diff options
context:
space:
mode:
authorStepan Moskovchenko <stevenm@rockbox.org>2008-01-02 06:35:59 +0000
committerStepan Moskovchenko <stevenm@rockbox.org>2008-01-02 06:35:59 +0000
commit59acdc336b4e7856b32c374f8caec2d5b5b6fa74 (patch)
tree752dd39a8b268bbe4cfcf7bb82752aed56136b9d /apps/plugins/midi/midiplay.c
parenta39039d80b2896e69cb5d12ab7c1e17bdf43700f (diff)
downloadrockbox-59acdc336b4e7856b32c374f8caec2d5b5b6fa74.tar.gz
rockbox-59acdc336b4e7856b32c374f8caec2d5b5b6fa74.zip
MIDI player: Allow pause and seeking during pause. Print out the play/pause/seek position in seconds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15985 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/midi/midiplay.c')
-rw-r--r--apps/plugins/midi/midiplay.c42
1 files changed, 39 insertions, 3 deletions
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 934cea7695..88fbf11803 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -33,6 +33,7 @@ PLUGIN_IRAM_DECLARE
33#define BTN_UP BUTTON_UP 33#define BTN_UP BUTTON_UP
34#define BTN_DOWN BUTTON_DOWN 34#define BTN_DOWN BUTTON_DOWN
35#define BTN_LEFT BUTTON_LEFT 35#define BTN_LEFT BUTTON_LEFT
36#define BTN_PLAY BUTTON_PLAY
36 37
37#elif CONFIG_KEYPAD == ONDIO_PAD 38#elif CONFIG_KEYPAD == ONDIO_PAD
38#define BTN_QUIT BUTTON_OFF 39#define BTN_QUIT BUTTON_OFF
@@ -40,6 +41,8 @@ PLUGIN_IRAM_DECLARE
40#define BTN_UP BUTTON_UP 41#define BTN_UP BUTTON_UP
41#define BTN_DOWN BUTTON_DOWN 42#define BTN_DOWN BUTTON_DOWN
42#define BTN_LEFT BUTTON_LEFT 43#define BTN_LEFT BUTTON_LEFT
44#define BTN_PLAY (BUTTON_MENU | BUTTON_OFF)
45
43 46
44#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 47#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
45#define BTN_QUIT BUTTON_OFF 48#define BTN_QUIT BUTTON_OFF
@@ -47,8 +50,8 @@ PLUGIN_IRAM_DECLARE
47#define BTN_UP BUTTON_UP 50#define BTN_UP BUTTON_UP
48#define BTN_DOWN BUTTON_DOWN 51#define BTN_DOWN BUTTON_DOWN
49#define BTN_LEFT BUTTON_LEFT 52#define BTN_LEFT BUTTON_LEFT
50
51#define BTN_RC_QUIT BUTTON_RC_STOP 53#define BTN_RC_QUIT BUTTON_RC_STOP
54#define BTN_PLAY BUTTON_ON
52 55
53#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 56#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
54 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 57 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
@@ -57,6 +60,8 @@ PLUGIN_IRAM_DECLARE
57#define BTN_LEFT BUTTON_LEFT 60#define BTN_LEFT BUTTON_LEFT
58#define BTN_UP BUTTON_SCROLL_FWD 61#define BTN_UP BUTTON_SCROLL_FWD
59#define BTN_DOWN BUTTON_SCROLL_BACK 62#define BTN_DOWN BUTTON_SCROLL_BACK
63#define BTN_PLAY BUTTON_PLAY
64
60 65
61#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 66#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
62#define BTN_QUIT BUTTON_POWER 67#define BTN_QUIT BUTTON_POWER
@@ -64,6 +69,8 @@ PLUGIN_IRAM_DECLARE
64#define BTN_LEFT BUTTON_LEFT 69#define BTN_LEFT BUTTON_LEFT
65#define BTN_UP BUTTON_UP 70#define BTN_UP BUTTON_UP
66#define BTN_DOWN BUTTON_DOWN 71#define BTN_DOWN BUTTON_DOWN
72#define BTN_PAUSE BUTTON_A
73
67 74
68#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 75#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
69(CONFIG_KEYPAD == SANSA_C200_PAD) 76(CONFIG_KEYPAD == SANSA_C200_PAD)
@@ -72,6 +79,8 @@ PLUGIN_IRAM_DECLARE
72#define BTN_LEFT BUTTON_LEFT 79#define BTN_LEFT BUTTON_LEFT
73#define BTN_UP BUTTON_UP 80#define BTN_UP BUTTON_UP
74#define BTN_DOWN BUTTON_DOWN 81#define BTN_DOWN BUTTON_DOWN
82#define BTN_PLAY BUTTON_REC
83
75 84
76#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 85#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
77#define BTN_QUIT BUTTON_POWER 86#define BTN_QUIT BUTTON_POWER
@@ -79,6 +88,8 @@ PLUGIN_IRAM_DECLARE
79#define BTN_LEFT BUTTON_LEFT 88#define BTN_LEFT BUTTON_LEFT
80#define BTN_UP BUTTON_UP 89#define BTN_UP BUTTON_UP
81#define BTN_DOWN BUTTON_DOWN 90#define BTN_DOWN BUTTON_DOWN
91#define BTN_PLAY BUTTON_PLAY
92
82 93
83#elif CONFIG_KEYPAD == IRIVER_H10_PAD 94#elif CONFIG_KEYPAD == IRIVER_H10_PAD
84#define BTN_QUIT BUTTON_POWER 95#define BTN_QUIT BUTTON_POWER
@@ -86,6 +97,8 @@ PLUGIN_IRAM_DECLARE
86#define BTN_LEFT BUTTON_LEFT 97#define BTN_LEFT BUTTON_LEFT
87#define BTN_UP BUTTON_SCROLL_UP 98#define BTN_UP BUTTON_SCROLL_UP
88#define BTN_DOWN BUTTON_SCROLL_DOWN 99#define BTN_DOWN BUTTON_SCROLL_DOWN
100#define BTN_PLAY BUTTON_PLAY
101
89 102
90#elif CONFIG_KEYPAD == MROBE500_PAD 103#elif CONFIG_KEYPAD == MROBE500_PAD
91#define BTN_QUIT BUTTON_POWER 104#define BTN_QUIT BUTTON_POWER
@@ -93,6 +106,8 @@ PLUGIN_IRAM_DECLARE
93#define BTN_LEFT BUTTON_LEFT 106#define BTN_LEFT BUTTON_LEFT
94#define BTN_UP BUTTON_RC_PLAY 107#define BTN_UP BUTTON_RC_PLAY
95#define BTN_DOWN BUTTON_RC_DOWN 108#define BTN_DOWN BUTTON_RC_DOWN
109#define BTN_PLAY BUTTON_RC_HEART
110
96 111
97#endif 112#endif
98 113
@@ -274,6 +289,7 @@ static int midimain(void * filename)
274 synthbuf(); 289 synthbuf();
275 rb->pcm_play_data(&get_more, NULL, 0); 290 rb->pcm_play_data(&get_more, NULL, 0);
276 291
292 int isPlaying = 1; /* 0 = paused */
277 int vol=0; 293 int vol=0;
278 294
279 while(!quit) 295 while(!quit)
@@ -318,8 +334,10 @@ static int midimain(void * filename)
318 /* but run through the tracks without the synth running */ 334 /* but run through the tracks without the synth running */
319 rb->pcm_play_stop(); 335 rb->pcm_play_stop();
320 seekBackward(5); 336 seekBackward(5);
321 rb->pcm_play_data(&get_more, NULL, 0); 337 printf("Rewind to %d:%02d\n", playingTime/60, playingTime%60);
322 338
339 if(isPlaying)
340 rb->pcm_play_data(&get_more, NULL, 0);
323 break; 341 break;
324 } 342 }
325 343
@@ -327,10 +345,28 @@ static int midimain(void * filename)
327 { 345 {
328 rb->pcm_play_stop(); 346 rb->pcm_play_stop();
329 seekForward(5); 347 seekForward(5);
330 rb->pcm_play_data(&get_more, NULL, 0); 348 printf("Skip to %d:%02d\n", playingTime/60, playingTime%60);
349
350 if(isPlaying)
351 rb->pcm_play_data(&get_more, NULL, 0);
331 break; 352 break;
332 } 353 }
333 354
355 case BTN_PLAY:
356 {
357 if(isPlaying == 1)
358 {
359 printf("Paused at %d:%02d\n", playingTime/60, playingTime%60);
360 isPlaying = 0;
361 rb->pcm_play_stop();
362 } else
363 {
364 printf("Playing from %d:%02d\n", playingTime/60, playingTime%60);
365 isPlaying = 1;
366 rb->pcm_play_data(&get_more, NULL, 0);
367 }
368 break;
369 }
334 370
335#ifdef BTN_RC_QUIT 371#ifdef BTN_RC_QUIT
336 case BTN_RC_QUIT: 372 case BTN_RC_QUIT: