summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder')
-rw-r--r--apps/recorder/radio.c51
1 files changed, 37 insertions, 14 deletions
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 260708cfe9..cf949872bd 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -50,6 +50,20 @@
50 50
51#ifdef CONFIG_TUNER 51#ifdef CONFIG_TUNER
52 52
53#if CONFIG_KEYPAD == RECORDER_PAD
54#define FM_MENU (BUTTON_F1 | BUTTON_REL)
55#define FM_PRESET (BUTTON_F2 | BUTTON_REL)
56#define FM_RECORD BUTTON_F3
57#define FM_FREEZE BUTTON_PLAY
58#define FM_STOP BUTTON_OFF
59#define FM_EXIT (BUTTON_ON | BUTTON_REL)
60#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted keypad */
61#define FM_MENU (BUTTON_MENU | BUTTON_REPEAT)
62#define FM_RECORD (BUTTON_MENU | BUTTON_REL)
63#define FM_STOP (BUTTON_OFF | BUTTON_REL)
64#define FM_EXIT (BUTTON_OFF | BUTTON_REPEAT)
65#endif
66
53#define MAX_FREQ (108000000) 67#define MAX_FREQ (108000000)
54#define MIN_FREQ (87500000) 68#define MIN_FREQ (87500000)
55#define PLL_FREQ_STEP 10000 69#define PLL_FREQ_STEP 10000
@@ -167,10 +181,6 @@ static void remember_frequency(void)
167 181
168bool radio_screen(void) 182bool radio_screen(void)
169{ 183{
170#if CONFIG_KEYPAD != RECORDER_PAD
171 splash(HZ*2, true, "Radio not supported yet");
172 return false;
173#else
174 char buf[MAX_PATH]; 184 char buf[MAX_PATH];
175 bool done = false; 185 bool done = false;
176 int button; 186 int button;
@@ -248,8 +258,10 @@ bool radio_screen(void)
248 258
249 curr_preset = find_preset(curr_freq); 259 curr_preset = find_preset(curr_freq);
250 260
261#if CONFIG_KEYPAD == RECORDER_PAD
251 buttonbar_set(str(LANG_BUTTONBAR_MENU), str(LANG_FM_BUTTONBAR_PRESETS), 262 buttonbar_set(str(LANG_BUTTONBAR_MENU), str(LANG_FM_BUTTONBAR_PRESETS),
252 str(LANG_FM_BUTTONBAR_RECORD)); 263 str(LANG_FM_BUTTONBAR_RECORD));
264#endif
253 265
254 while(!done) 266 while(!done)
255 { 267 {
@@ -290,7 +302,7 @@ bool radio_screen(void)
290 button = button_get_w_tmo(HZ / peak_meter_fps); 302 button = button_get_w_tmo(HZ / peak_meter_fps);
291 switch(button) 303 switch(button)
292 { 304 {
293 case BUTTON_OFF: 305 case FM_STOP:
294#ifndef SIMULATOR 306#ifndef SIMULATOR
295 if(mpeg_status() == MPEG_STATUS_RECORD) 307 if(mpeg_status() == MPEG_STATUS_RECORD)
296 { 308 {
@@ -305,7 +317,8 @@ bool radio_screen(void)
305 update_screen = true; 317 update_screen = true;
306 break; 318 break;
307 319
308 case BUTTON_F3: 320#ifdef FM_RECORD
321 case FM_RECORD:
309#ifndef SIMULATOR 322#ifndef SIMULATOR
310 if(mpeg_status() == MPEG_STATUS_RECORD) 323 if(mpeg_status() == MPEG_STATUS_RECORD)
311 { 324 {
@@ -322,8 +335,9 @@ bool radio_screen(void)
322#endif 335#endif
323 last_seconds = 0; 336 last_seconds = 0;
324 break; 337 break;
338#endif /* #ifdef FM_RECORD */
325 339
326 case BUTTON_ON | BUTTON_REL: 340 case FM_EXIT:
327 done = true; 341 done = true;
328 keep_playing = true; 342 keep_playing = true;
329 break; 343 break;
@@ -380,30 +394,38 @@ bool radio_screen(void)
380 settings_save(); 394 settings_save();
381 break; 395 break;
382 396
383 case BUTTON_F1 | BUTTON_REL: 397#ifdef FM_MENU
398 case FM_MENU:
384 radio_menu(); 399 radio_menu();
385 curr_preset = find_preset(curr_freq); 400 curr_preset = find_preset(curr_freq);
386 lcd_clear_display(); 401 lcd_clear_display();
387 lcd_setmargins(0, 8); 402 lcd_setmargins(0, 8);
403#if CONFIG_KEYPAD == RECORDER_PAD
388 buttonbar_set(str(LANG_BUTTONBAR_MENU), 404 buttonbar_set(str(LANG_BUTTONBAR_MENU),
389 str(LANG_FM_BUTTONBAR_PRESETS), 405 str(LANG_FM_BUTTONBAR_PRESETS),
390 str(LANG_FM_BUTTONBAR_RECORD)); 406 str(LANG_FM_BUTTONBAR_RECORD));
407#endif
391 update_screen = true; 408 update_screen = true;
392 break; 409 break;
410#endif
393 411
394 case BUTTON_F2 | BUTTON_REL: 412#ifdef FM_PRESET
413 case FM_PRESET:
395 handle_radio_presets(); 414 handle_radio_presets();
396 curr_preset = find_preset(curr_freq); 415 curr_preset = find_preset(curr_freq);
397 lcd_clear_display(); 416 lcd_clear_display();
398 lcd_setmargins(0, 8); 417 lcd_setmargins(0, 8);
418#if CONFIG_KEYPAD == RECORDER_PAD
399 buttonbar_set(str(LANG_BUTTONBAR_MENU), 419 buttonbar_set(str(LANG_BUTTONBAR_MENU),
400 str(LANG_FM_BUTTONBAR_PRESETS), 420 str(LANG_FM_BUTTONBAR_PRESETS),
401 str(LANG_FM_BUTTONBAR_RECORD)); 421 str(LANG_FM_BUTTONBAR_RECORD));
422#endif
402 update_screen = true; 423 update_screen = true;
403 break; 424 break;
425#endif
404 426
405#if (BUTTON_UP != BUTTON_PLAY) /* FixMe, this is just to make the Ondio compile */ 427#ifdef FM_FREEZE
406 case BUTTON_PLAY: 428 case FM_FREEZE:
407 if(!screen_freeze) 429 if(!screen_freeze)
408 { 430 {
409 splash(0, true, "Screen frozen"); 431 splash(0, true, "Screen frozen");
@@ -512,9 +534,9 @@ bool radio_screen(void)
512 534
513 /* Only force the redraw if update_screen is true */ 535 /* Only force the redraw if update_screen is true */
514 status_draw(update_screen); 536 status_draw(update_screen);
515 537#if CONFIG_KEYPAD == RECORDER_PAD
516 buttonbar_draw(); 538 buttonbar_draw();
517 539#endif
518 lcd_update(); 540 lcd_update();
519 541
520 update_screen = false; 542 update_screen = false;
@@ -558,7 +580,6 @@ bool radio_screen(void)
558 } 580 }
559#endif 581#endif
560 return have_recorded; 582 return have_recorded;
561#endif /* ONDIO */
562} 583}
563 584
564void radio_save_presets(void) 585void radio_save_presets(void)
@@ -636,6 +657,7 @@ static void rebuild_preset_menu(void)
636 } 657 }
637} 658}
638 659
660#ifdef FM_PRESET /* FIXME: that was just to kill a warning */
639static bool radio_add_preset(void) 661static bool radio_add_preset(void)
640{ 662{
641 char buf[27]; 663 char buf[27];
@@ -664,6 +686,7 @@ static bool radio_add_preset(void)
664 } 686 }
665 return true; 687 return true;
666} 688}
689#endif /* #ifdef FM_PRESET */
667 690
668static int handle_radio_presets_menu_cb(int key, int m) 691static int handle_radio_presets_menu_cb(int key, int m)
669{ 692{