1
0
Fork 0
forked from len0rd/rockbox

Ondio FM: * Bugfix: Cancelling 'Auto Scan Presets' left the radio screen. * Put radio mode switch in radio menu.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8107 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2005-11-29 15:10:07 +00:00
parent d5af4b0f48
commit 2a31407513
3 changed files with 66 additions and 28 deletions

View file

@ -3365,16 +3365,16 @@ voice: ""
new: new:
id: LANG_RADIO_SCAN_MODE id: LANG_RADIO_SCAN_MODE
desc: in radio screen desc: in radio screen / menu
eng: "Scan Mode" eng: "Scan"
voice: "" voice: ""
new: "Abstimmmodus" new: "Abstimmen"
id: LANG_RADIO_PRESET_MODE id: LANG_RADIO_PRESET_MODE
desc: in radio screen desc: in radio screen / menu
eng: "Preset Mode" eng: "Preset"
voice: "" voice: ""
new: "Sendermodus" new: "Sender"
id: LANG_FM_FREEZE id: LANG_FM_FREEZE
desc: splash screen during freeze in radio mode desc: splash screen during freeze in radio mode
@ -3402,7 +3402,7 @@ new: "Automatische Sendersuche"
id: LANG_FM_SCANNING id: LANG_FM_SCANNING
desc: during auto scan desc: during auto scan
eng: "Scanning %d.%dMHz" eng: "Scanning %d.%01dMHz"
voice: "" voice: ""
new: "Suche %d,%01dMHz" new: "Suche %d,%01dMHz"
@ -3453,3 +3453,9 @@ desc: in remote lcd settings menu
eng: "Reduce ticking" eng: "Reduce ticking"
voice: "Ticken verringern" voice: "Ticken verringern"
new: "Ticken verringern" new: "Ticken verringern"
id: LANG_FM_TUNE_MODE
desc: in radio screen / menu
eng: "Mode:"
voice: ""
new: "Modus:"

View file

@ -3372,14 +3372,14 @@ voice: ""
new: new:
id: LANG_RADIO_SCAN_MODE id: LANG_RADIO_SCAN_MODE
desc: in radio screen desc: in radio screen / menu
eng: "Scan Mode" eng: "Scan"
voice: "" voice: ""
new: new:
id: LANG_RADIO_PRESET_MODE id: LANG_RADIO_PRESET_MODE
desc: in radio screen desc: in radio screen / menu
eng: "Preset Mode" eng: "Preset"
voice: "" voice: ""
new: new:
@ -3461,3 +3461,8 @@ eng: "Reduce ticking"
voice: "Reduce ticking" voice: "Reduce ticking"
new: new:
id: LANG_FM_TUNE_MODE
desc: in radio screen / menu
eng: "Mode:"
voice: ""
new:

View file

@ -77,6 +77,7 @@
#define FM_EXIT (BUTTON_ON | BUTTON_REL) #define FM_EXIT (BUTTON_ON | BUTTON_REL)
#define FM_PRESET_ADD BUTTON_F1 #define FM_PRESET_ADD BUTTON_F1
#define FM_PRESET_ACTION BUTTON_F3 #define FM_PRESET_ACTION BUTTON_F3
#elif CONFIG_KEYPAD == IRIVER_H100_PAD #elif CONFIG_KEYPAD == IRIVER_H100_PAD
/* pause/play - short PLAY */ /* pause/play - short PLAY */
#define FM_PLAY_PRE BUTTON_ON #define FM_PLAY_PRE BUTTON_ON
@ -105,10 +106,12 @@
/* stop and exit radio - STOP */ /* stop and exit radio - STOP */
#define FM_STOP BUTTON_OFF #define FM_STOP BUTTON_OFF
#define FM_RC_STOP BUTTON_RC_STOP #define FM_RC_STOP BUTTON_RC_STOP
#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted keypad */ #elif CONFIG_KEYPAD == ONDIO_PAD /* restricted keypad */
#define FM_MENU (BUTTON_MENU | BUTTON_REPEAT) #define FM_MENU (BUTTON_MENU | BUTTON_REPEAT)
#define FM_RECORD_DBLPRE BUTTON_MENU #define FM_RECORD_DBLPRE BUTTON_MENU
#define FM_RECORD (BUTTON_MENU | BUTTON_REL) #define FM_RECORD (BUTTON_MENU | BUTTON_REL)
#define FM_STOP_PRE BUTTON_OFF
#define FM_STOP (BUTTON_OFF | BUTTON_REL) #define FM_STOP (BUTTON_OFF | BUTTON_REL)
#define FM_EXIT (BUTTON_OFF | BUTTON_REPEAT) #define FM_EXIT (BUTTON_OFF | BUTTON_REPEAT)
#endif #endif
@ -377,10 +380,8 @@ bool radio_screen(void)
} }
curr_preset = find_preset(curr_freq); curr_preset = find_preset(curr_freq);
#ifdef FM_MODE
if(curr_preset != -1) if(curr_preset != -1)
radio_mode = RADIO_PRESET_MODE; radio_mode = RADIO_PRESET_MODE;
#endif
#ifdef HAS_BUTTONBAR #ifdef HAS_BUTTONBAR
gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU), str(LANG_FM_BUTTONBAR_PRESETS), gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU), str(LANG_FM_BUTTONBAR_PRESETS),
@ -431,6 +432,10 @@ bool radio_screen(void)
case FM_RC_STOP: case FM_RC_STOP:
#endif #endif
case FM_STOP: case FM_STOP:
#ifdef FM_STOP_PRE
if (lastbutton != FM_STOP_PRE)
break;
#endif
#ifndef SIMULATOR #ifndef SIMULATOR
if(audio_status() == AUDIO_STATUS_RECORD) if(audio_status() == AUDIO_STATUS_RECORD)
{ {
@ -786,12 +791,11 @@ bool radio_screen(void)
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
screens[i].puts_scroll(0, top_of_screen + 2, buf); screens[i].puts_scroll(0, top_of_screen + 2, buf);
#ifdef FM_MODE snprintf(buf, 128, "%s %s", str(LANG_FM_TUNE_MODE),
snprintf(buf, 128, radio_mode?str(LANG_RADIO_PRESET_MODE): radio_mode ? str(LANG_RADIO_PRESET_MODE) :
str(LANG_RADIO_SCAN_MODE)); str(LANG_RADIO_SCAN_MODE));
FOR_NB_SCREENS(i) FOR_NB_SCREENS(i)
screens[i].puts_scroll(0, top_of_screen + 3, buf); screens[i].puts_scroll(0, top_of_screen + 3, buf);
#endif
if(audio_status() == AUDIO_STATUS_RECORD) if(audio_status() == AUDIO_STATUS_RECORD)
{ {
@ -1185,7 +1189,8 @@ char monomode_menu_string[32];
static void create_monomode_menu(void) static void create_monomode_menu(void)
{ {
snprintf(monomode_menu_string, 32, "%s: %s", str(LANG_FM_MONO_MODE), snprintf(monomode_menu_string, sizeof monomode_menu_string,
"%s: %s", str(LANG_FM_MONO_MODE),
global_settings.fm_force_mono? global_settings.fm_force_mono?
str(LANG_SET_BOOL_YES):str(LANG_SET_BOOL_NO)); str(LANG_SET_BOOL_YES):str(LANG_SET_BOOL_NO));
} }
@ -1199,6 +1204,25 @@ static bool toggle_mono_mode(void)
return false; return false;
} }
#ifndef FM_MODE
char radiomode_menu_string[32];
static void create_radiomode_menu(void)
{
snprintf(radiomode_menu_string, 32, "%s %s", str(LANG_FM_TUNE_MODE),
radio_mode ? str(LANG_RADIO_PRESET_MODE) :
str(LANG_RADIO_SCAN_MODE));
}
static bool toggle_radio_mode(void)
{
radio_mode = (radio_mode == RADIO_SCAN_MODE) ?
RADIO_PRESET_MODE : RADIO_SCAN_MODE;
create_radiomode_menu();
return false;
}
#endif
static bool scan_presets(void) static bool scan_presets(void)
{ {
bool tuned = false; bool tuned = false;
@ -1249,9 +1273,7 @@ static bool scan_presets(void)
curr_freq = presets[0].frequency; curr_freq = presets[0].frequency;
radio_set(RADIO_FREQUENCY, curr_freq); radio_set(RADIO_FREQUENCY, curr_freq);
remember_frequency(); remember_frequency();
#ifdef FM_MODE
radio_mode = RADIO_PRESET_MODE; radio_mode = RADIO_PRESET_MODE;
#endif
} }
} }
return true; return true;
@ -1300,15 +1322,20 @@ bool radio_menu(void)
{ ID2P(LANG_FM_ADD_PRESET) , radio_add_preset }, { ID2P(LANG_FM_ADD_PRESET) , radio_add_preset },
#endif #endif
{ monomode_menu_string , toggle_mono_mode }, { monomode_menu_string , toggle_mono_mode },
#ifndef FM_MODE
{ radiomode_menu_string , toggle_radio_mode },
#endif
{ ID2P(LANG_SOUND_SETTINGS) , sound_menu }, { ID2P(LANG_SOUND_SETTINGS) , sound_menu },
#if !defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC) #if !defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)
{ ID2P(LANG_RECORDING_SETTINGS) , fm_recording_settings}, { ID2P(LANG_RECORDING_SETTINGS) , fm_recording_settings},
#endif #endif
{ ID2P(LANG_FM_SCAN_PRESETS) , scan_presets}, { ID2P(LANG_FM_SCAN_PRESETS) , scan_presets },
}; };
create_monomode_menu(); create_monomode_menu();
#ifndef FM_MODE
create_radiomode_menu();
#endif
m = menu_init(items, sizeof(items) / sizeof(*items), m = menu_init(items, sizeof(items) / sizeof(*items),
radio_menu_cb, NULL, NULL, NULL); radio_menu_cb, NULL, NULL, NULL);
result = menu_run(m); result = menu_run(m);