summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2003-05-04 13:05:30 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2003-05-04 13:05:30 +0000
commit8d8b8d1a7b0987aa578620e594e9c8a9a3b8c975 (patch)
treef4ece206efd5c3ea6023946a3df0914da8657e8c
parentce9294476e4cdec77244231221b3380d13b2c8a6 (diff)
downloadrockbox-8d8b8d1a7b0987aa578620e594e9c8a9a3b8c975.tar.gz
rockbox-8d8b8d1a7b0987aa578620e594e9c8a9a3b8c975.zip
Fixed problem with non-existing fm_presets.txt, now clears the station name when retuning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3651 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/recorder/radio.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 8dc14f2493..5b8f3d5b07 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -79,13 +79,10 @@ void fm_set_frequency(int freq)
79static int find_preset(int freq) 79static int find_preset(int freq)
80{ 80{
81 int i; 81 int i;
82 if(presets_loaded) 82 for(i = 0;i < MAX_PRESETS;i++)
83 { 83 {
84 for(i = 0;i < MAX_PRESETS;i++) 84 if(freq == presets[i].frequency)
85 { 85 return i;
86 if(freq == presets[i].frequency)
87 return i;
88 }
89 } 86 }
90 87
91 return -1; 88 return -1;
@@ -102,11 +99,13 @@ bool radio_screen(void)
102 bool lock; 99 bool lock;
103 bool stereo; 100 bool stereo;
104 int search_dir = 0; 101 int search_dir = 0;
102 int fw, fh;
105 103
106 lcd_clear_display(); 104 lcd_clear_display();
107 lcd_setmargins(0, 8); 105 lcd_setmargins(0, 8);
108 status_draw(false); 106 status_draw(false);
109 fmradio_set_status(FMRADIO_PLAYING); 107 fmradio_set_status(FMRADIO_PLAYING);
108 lcd_getstringsize("A", &fw, &fh);
110 109
111 fm_load_presets(); 110 fm_load_presets();
112 111
@@ -167,6 +166,10 @@ bool radio_screen(void)
167 { 166 {
168 lcd_puts_scroll(0, 1, presets[curr_preset].name); 167 lcd_puts_scroll(0, 1, presets[curr_preset].name);
169 } 168 }
169 else
170 {
171 lcd_clearrect(0, 8+fh*1, LCD_WIDTH, fh);
172 }
170 173
171 lcd_update(); 174 lcd_update();
172 175
@@ -287,7 +290,7 @@ void fm_save_presets(void)
287 int fd; 290 int fd;
288 int i; 291 int i;
289 292
290 fd = open("/.rockbox/fm_presets.txt", O_WRONLY); 293 fd = creat("/.rockbox/fm_presets.txt", O_WRONLY);
291 if(fd >= 0) 294 if(fd >= 0)
292 { 295 {
293 for(i = 0;i < MAX_PRESETS;i++) 296 for(i = 0;i < MAX_PRESETS;i++)
@@ -332,7 +335,6 @@ void fm_load_presets(void)
332 strncpy(presets[i].name, name, 27); 335 strncpy(presets[i].name, name, 27);
333 presets[i].name[27] = 0; 336 presets[i].name[27] = 0;
334 i++; 337 i++;
335 presets_loaded = true;
336 if(num_presets == MAX_PRESETS) 338 if(num_presets == MAX_PRESETS)
337 done = true; 339 done = true;
338 } 340 }
@@ -343,6 +345,7 @@ void fm_load_presets(void)
343 close(fd); 345 close(fd);
344 } 346 }
345 } 347 }
348 presets_loaded = true;
346} 349}
347 350
348bool fm_preset_select(void) 351bool fm_preset_select(void)