diff options
Diffstat (limited to 'uisimulator/play.c')
-rw-r--r-- | uisimulator/play.c | 94 |
1 files changed, 51 insertions, 43 deletions
diff --git a/uisimulator/play.c b/uisimulator/play.c index f9877134eb..735597962e 100644 --- a/uisimulator/play.c +++ b/uisimulator/play.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <button.h> | 26 | #include <button.h> |
27 | #include "kernel.h" | 27 | #include "kernel.h" |
28 | #include "tree.h" | 28 | #include "tree.h" |
29 | #include "debug.h" | ||
29 | 30 | ||
30 | #include "id3.h" | 31 | #include "id3.h" |
31 | 32 | ||
@@ -33,63 +34,70 @@ | |||
33 | #include "x11/mpegplay.h" | 34 | #include "x11/mpegplay.h" |
34 | #endif | 35 | #endif |
35 | 36 | ||
36 | #define LINE_Y 8 /* initial line */ | 37 | #define LINE_Y 1 /* initial line */ |
37 | #define LINE_HEIGTH 8 /* line height in pixels */ | ||
38 | 38 | ||
39 | void playtune(char *dir, char *file) | 39 | void playtune(char *dir, char *file) |
40 | { | 40 | { |
41 | char buffer[256]; | 41 | char buffer[256]; |
42 | int fd; | 42 | int fd; |
43 | mp3entry mp3; | 43 | mp3entry mp3; |
44 | bool good=1; | 44 | bool good=1; |
45 | 45 | ||
46 | sprintf(buffer, "%s/%s", dir, file); | 46 | sprintf(buffer, "%s/%s", dir, file); |
47 | 47 | ||
48 | if(mp3info(&mp3, buffer)) { | 48 | if(mp3info(&mp3, buffer)) { |
49 | debugf("id3 failure!"); | 49 | DEBUGF("id3 failure!"); |
50 | good=0; | 50 | good=0; |
51 | } | 51 | } |
52 | lcd_clear_display(); | ||
52 | #ifdef HAVE_LCD_BITMAP | 53 | #ifdef HAVE_LCD_BITMAP |
53 | lcd_clear_display(); | 54 | lcd_setmargins(0,0); |
54 | if(!good) { | 55 | lcd_setfont(0); |
55 | lcd_puts(0, 0, "[no id3 info]", 0); | 56 | #endif |
56 | } | 57 | |
57 | else { | 58 | if(!good) { |
58 | lcd_puts(0, 0, "[id3 info]", 0); | 59 | lcd_puts(0, 0, "[no id3 info]"); |
59 | lcd_puts(0, LINE_Y, mp3.title?mp3.title:"", 0); | 60 | } |
60 | lcd_puts(0, LINE_Y+1*LINE_HEIGTH, mp3.album?mp3.album:"", 0); | 61 | else { |
61 | lcd_puts(0, LINE_Y+2*LINE_HEIGTH, mp3.artist?mp3.artist:"", 0); | 62 | #ifdef HAVE_LCD_BITMAP |
63 | lcd_puts(0, 0, "[id3 info]"); | ||
64 | lcd_puts(0, LINE_Y, mp3.title?mp3.title:""); | ||
65 | lcd_puts(0, LINE_Y+1, mp3.album?mp3.album:""); | ||
66 | lcd_puts(0, LINE_Y+2, mp3.artist?mp3.artist:""); | ||
62 | 67 | ||
63 | sprintf(buffer, "%d ms", mp3.length); | 68 | sprintf(buffer, "%d ms", mp3.length); |
64 | lcd_puts(0, LINE_Y+3*LINE_HEIGTH, buffer, 0); | 69 | lcd_puts(0, LINE_Y+3, buffer); |
65 | 70 | ||
66 | sprintf(buffer, "%d kbits", mp3.bitrate); | 71 | sprintf(buffer, "%d kbits", mp3.bitrate); |
67 | lcd_puts(0, LINE_Y+4*LINE_HEIGTH, buffer, 0); | 72 | lcd_puts(0, LINE_Y+4, buffer); |
68 | 73 | ||
69 | sprintf(buffer, "%d Hz", mp3.frequency); | 74 | sprintf(buffer, "%d Hz", mp3.frequency); |
70 | lcd_puts(0, LINE_Y+5*LINE_HEIGTH, buffer, 0); | 75 | lcd_puts(0, LINE_Y+5, buffer); |
71 | } | 76 | #else |
72 | lcd_update(); | 77 | lcd_puts(0, 0, mp3.artist?mp3.artist:"<no artist>"); |
78 | lcd_puts(0, 1, mp3.title?mp3.title:"<no title>"); | ||
73 | #endif | 79 | #endif |
80 | } | ||
81 | lcd_update(); | ||
74 | 82 | ||
75 | #ifdef MPEG_PLAY | 83 | #ifdef MPEG_PLAY |
76 | sprintf(buffer, "%s/%s", dir, file); | 84 | sprintf(buffer, "%s/%s", dir, file); |
77 | mpeg_play(buffer); | 85 | mpeg_play(buffer); |
78 | return; | 86 | return; |
79 | #endif | 87 | #endif |
80 | 88 | ||
81 | while(1) { | 89 | while(1) { |
82 | int key = button_get(); | 90 | int key = button_get(); |
83 | 91 | ||
84 | if(!key) { | 92 | if(!key) { |
85 | sleep(30); | 93 | sleep(30); |
86 | continue; | 94 | continue; |
87 | } | 95 | } |
88 | switch(key) { | 96 | switch(key) { |
89 | case BUTTON_OFF: | 97 | case BUTTON_OFF: |
90 | case BUTTON_LEFT: | 98 | case BUTTON_LEFT: |
91 | return; | 99 | return; |
92 | break; | 100 | break; |
101 | } | ||
93 | } | 102 | } |
94 | } | ||
95 | } | 103 | } |