Move fm radio related menus out of radio.c into apps/menus/.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29162 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
aa9a68a690
commit
2bb81f70f5
5 changed files with 159 additions and 153 deletions
|
@ -16,6 +16,9 @@ menus/menu_common.c
|
||||||
menus/display_menu.c
|
menus/display_menu.c
|
||||||
menus/theme_menu.c
|
menus/theme_menu.c
|
||||||
menus/plugin_menu.c
|
menus/plugin_menu.c
|
||||||
|
#if CONFIG_TUNER
|
||||||
|
menus/radio_menu.c
|
||||||
|
#endif
|
||||||
#if CONFIG_CODEC == SWCODEC
|
#if CONFIG_CODEC == SWCODEC
|
||||||
#ifdef HAVE_WM8978
|
#ifdef HAVE_WM8978
|
||||||
menus/audiohw_eq_menu.c
|
menus/audiohw_eq_menu.c
|
||||||
|
|
|
@ -30,17 +30,20 @@ extern const struct menu_item_ex
|
||||||
playback_settings, /* playback_menu.c */
|
playback_settings, /* playback_menu.c */
|
||||||
#ifdef HAVE_RECORDING
|
#ifdef HAVE_RECORDING
|
||||||
recording_settings, /* recording_menu.c */
|
recording_settings, /* recording_menu.c */
|
||||||
|
recording_settings_menu,
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
peak_meter_menu, /* also used from within recording_menu */
|
peak_meter_menu, /* also used from within recording_menu */
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
sound_settings, /* sound_menu.c */
|
sound_settings, /* sound_menu.c */
|
||||||
settings_menu_item, /* settings_menu.c */
|
settings_menu_item, /* settings_menu.c */
|
||||||
|
bookmark_settings_menu,
|
||||||
playlist_settings, /* playlist_menu.c */
|
playlist_settings, /* playlist_menu.c */
|
||||||
equalizer_menu, /* eq_menu.c */
|
equalizer_menu, /* eq_menu.c */
|
||||||
#ifdef AUDIOHW_HAVE_EQ
|
#ifdef AUDIOHW_HAVE_EQ
|
||||||
audiohw_eq_tone_controls, /* audiohw_eq_menu.c */
|
audiohw_eq_tone_controls, /* audiohw_eq_menu.c */
|
||||||
#endif
|
#endif
|
||||||
|
radio_settings_menu, /* radio_menu.c */
|
||||||
theme_menu; /* theme_menu.c */
|
theme_menu; /* theme_menu.c */
|
||||||
|
|
||||||
struct browse_folder_info {
|
struct browse_folder_info {
|
||||||
|
|
145
apps/menus/radio_menu.c
Normal file
145
apps/menus/radio_menu.c
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* __________ __ ___.
|
||||||
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||||
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||||
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||||
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||||
|
* \/ \/ \/ \/ \/
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2003 Linus Nielsen Feltzing
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
* KIND, either express or implied.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "config.h"
|
||||||
|
#include "menu.h"
|
||||||
|
#include "icon.h"
|
||||||
|
#include "radio.h"
|
||||||
|
#include "lang.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "presets.h"
|
||||||
|
#include "exported_menus.h"
|
||||||
|
#include "recording.h" /* recording_screen() */
|
||||||
|
#include "sound_menu.h" /* recording_menu() */
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(HAVE_FMRADIO_REC) && CONFIG_CODEC == SWCODEC
|
||||||
|
#define FM_RECORDING_SCREEN
|
||||||
|
static int fm_recording_screen(void)
|
||||||
|
{
|
||||||
|
bool ret;
|
||||||
|
|
||||||
|
/* switch recording source to FMRADIO for the duration */
|
||||||
|
int rec_source = global_settings.rec_source;
|
||||||
|
global_settings.rec_source = AUDIO_SRC_FMRADIO;
|
||||||
|
ret = recording_screen(true);
|
||||||
|
|
||||||
|
/* safe to reset as changing sources is prohibited here */
|
||||||
|
global_settings.rec_source = rec_source;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
MENUITEM_FUNCTION(recscreen_item, 0, ID2P(LANG_RECORDING),
|
||||||
|
fm_recording_screen, NULL, NULL, Icon_Recording);
|
||||||
|
#endif /* defined(HAVE_FMRADIO_REC) && CONFIG_CODEC == SWCODEC */
|
||||||
|
|
||||||
|
#if defined(HAVE_FMRADIO_REC) || CONFIG_CODEC != SWCODEC
|
||||||
|
#define FM_RECORDING_SETTINGS
|
||||||
|
static int fm_recording_settings(void)
|
||||||
|
{
|
||||||
|
bool ret = recording_menu(true);
|
||||||
|
|
||||||
|
#if CONFIG_CODEC != SWCODEC
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
struct audio_recording_options rec_options;
|
||||||
|
rec_init_recording_options(&rec_options);
|
||||||
|
rec_options.rec_source = AUDIO_SRC_LINEIN;
|
||||||
|
rec_set_recording_options(&rec_options);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
MENUITEM_FUNCTION(recsettings_item, 0, ID2P(LANG_RECORDING_SETTINGS),
|
||||||
|
fm_recording_settings, NULL, NULL, Icon_Recording);
|
||||||
|
#endif /* defined(HAVE_FMRADIO_REC) || CONFIG_CODEC != SWCODEC */
|
||||||
|
|
||||||
|
#ifndef FM_PRESET
|
||||||
|
MENUITEM_FUNCTION(radio_presets_item, 0, ID2P(LANG_PRESET),
|
||||||
|
handle_radio_presets, NULL, NULL, Icon_NOICON);
|
||||||
|
#endif
|
||||||
|
#ifndef FM_PRESET_ADD
|
||||||
|
MENUITEM_FUNCTION(radio_addpreset_item, 0, ID2P(LANG_FM_ADD_PRESET),
|
||||||
|
handle_radio_add_preset, NULL, NULL, Icon_NOICON);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MENUITEM_FUNCTION(presetload_item, 0, ID2P(LANG_FM_PRESET_LOAD),
|
||||||
|
preset_list_load, NULL, NULL, Icon_NOICON);
|
||||||
|
MENUITEM_FUNCTION(presetsave_item, 0, ID2P(LANG_FM_PRESET_SAVE),
|
||||||
|
preset_list_save, NULL, NULL, Icon_NOICON);
|
||||||
|
MENUITEM_FUNCTION(presetclear_item, 0, ID2P(LANG_FM_PRESET_CLEAR),
|
||||||
|
preset_list_clear, NULL, NULL, Icon_NOICON);
|
||||||
|
|
||||||
|
MENUITEM_SETTING(set_region, &global_settings.fm_region, NULL);
|
||||||
|
MENUITEM_SETTING(force_mono, &global_settings.fm_force_mono, NULL);
|
||||||
|
|
||||||
|
#ifndef FM_MODE
|
||||||
|
extern int radio_mode;
|
||||||
|
static char* get_mode_text(int selected_item, void * data, char *buffer)
|
||||||
|
{
|
||||||
|
(void)selected_item;
|
||||||
|
(void)data;
|
||||||
|
snprintf(buffer, MAX_PATH, "%s %s", str(LANG_MODE),
|
||||||
|
radio_mode ? str(LANG_PRESET) :
|
||||||
|
str(LANG_RADIO_SCAN_MODE));
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
static int toggle_radio_mode(void)
|
||||||
|
{
|
||||||
|
radio_mode = (radio_mode == RADIO_SCAN_MODE) ?
|
||||||
|
RADIO_PRESET_MODE : RADIO_SCAN_MODE;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
MENUITEM_FUNCTION_DYNTEXT(radio_mode_item, 0,
|
||||||
|
toggle_radio_mode, NULL,
|
||||||
|
get_mode_text, NULL, NULL, NULL, Icon_NOICON);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MENUITEM_FUNCTION(scan_presets_item, MENU_FUNC_USEPARAM,
|
||||||
|
ID2P(LANG_FM_SCAN_PRESETS),
|
||||||
|
presets_scan, NULL, NULL, Icon_NOICON);
|
||||||
|
|
||||||
|
MAKE_MENU(radio_settings_menu, ID2P(LANG_FM_MENU), NULL,
|
||||||
|
Icon_Radio_screen,
|
||||||
|
#ifndef FM_PRESET
|
||||||
|
&radio_presets_item,
|
||||||
|
#endif
|
||||||
|
#ifndef FM_PRESET_ADD
|
||||||
|
&radio_addpreset_item,
|
||||||
|
#endif
|
||||||
|
&presetload_item, &presetsave_item, &presetclear_item,
|
||||||
|
&force_mono,
|
||||||
|
#ifndef FM_MODE
|
||||||
|
&radio_mode_item,
|
||||||
|
#endif
|
||||||
|
&set_region, &sound_settings,
|
||||||
|
#ifdef FM_RECORDING_SCREEN
|
||||||
|
&recscreen_item,
|
||||||
|
#endif
|
||||||
|
#ifdef FM_RECORDING_SETTINGS
|
||||||
|
&recsettings_item,
|
||||||
|
#endif
|
||||||
|
&scan_presets_item);
|
||||||
|
|
|
@ -19,38 +19,28 @@
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "settings.h"
|
#include "config.h"
|
||||||
#include "button.h"
|
|
||||||
#include "status.h"
|
|
||||||
#include "thread.h"
|
|
||||||
#include "audio.h"
|
|
||||||
#include "mp3_playback.h"
|
|
||||||
#include "ctype.h"
|
|
||||||
#include "file.h"
|
|
||||||
#include "general.h"
|
|
||||||
#include "errno.h"
|
|
||||||
#include "string-extra.h"
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "status.h"
|
||||||
|
#include "audio.h"
|
||||||
|
#include "general.h"
|
||||||
#include "radio.h"
|
#include "radio.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
|
#include "menus/exported_menus.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "keyboard.h"
|
|
||||||
#include "screens.h"
|
#include "screens.h"
|
||||||
#include "peakmeter.h"
|
#include "peakmeter.h"
|
||||||
#include "lang.h"
|
#include "lang.h"
|
||||||
#include "font.h"
|
|
||||||
#include "sound_menu.h"
|
|
||||||
#ifdef HAVE_RECORDING
|
#ifdef HAVE_RECORDING
|
||||||
#include "recording.h"
|
#include "recording.h"
|
||||||
#endif
|
#endif
|
||||||
#ifdef IPOD_ACCESSORY_PROTOCOL
|
#ifdef IPOD_ACCESSORY_PROTOCOL
|
||||||
#include "iap.h"
|
#include "iap.h"
|
||||||
#endif
|
#endif
|
||||||
#include "appevents.h"
|
|
||||||
#include "talk.h"
|
#include "talk.h"
|
||||||
#include "tuner.h"
|
#include "tuner.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
|
@ -58,17 +48,12 @@
|
||||||
#include "screen_access.h"
|
#include "screen_access.h"
|
||||||
#include "splash.h"
|
#include "splash.h"
|
||||||
#include "yesno.h"
|
#include "yesno.h"
|
||||||
#include "buttonbar.h"
|
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "list.h"
|
|
||||||
#include "menus/exported_menus.h"
|
|
||||||
#include "root_menu.h"
|
|
||||||
#include "viewport.h"
|
#include "viewport.h"
|
||||||
#include "skin_engine/skin_engine.h"
|
#include "skin_engine/skin_engine.h"
|
||||||
#include "statusbar-skinned.h"
|
#include "statusbar-skinned.h"
|
||||||
#include "buffering.h"
|
|
||||||
#if CONFIG_CODEC == SWCODEC
|
#if CONFIG_CODEC == SWCODEC
|
||||||
#include "playback.h"
|
#include "playback.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -146,12 +131,9 @@
|
||||||
|
|
||||||
/* presets.c needs these so keep unstatic or redo the whole thing! */
|
/* presets.c needs these so keep unstatic or redo the whole thing! */
|
||||||
int curr_freq; /* current frequency in Hz */
|
int curr_freq; /* current frequency in Hz */
|
||||||
|
|
||||||
static bool radio_menu(void);
|
|
||||||
|
|
||||||
int radio_mode = RADIO_SCAN_MODE;
|
int radio_mode = RADIO_SCAN_MODE;
|
||||||
static int search_dir = 0;
|
|
||||||
|
|
||||||
|
static int search_dir = 0;
|
||||||
static int radio_status = FMRADIO_OFF;
|
static int radio_status = FMRADIO_OFF;
|
||||||
static bool in_screen = false;
|
static bool in_screen = false;
|
||||||
|
|
||||||
|
@ -642,7 +624,7 @@ void radio_screen(void)
|
||||||
|
|
||||||
case ACTION_FM_MENU:
|
case ACTION_FM_MENU:
|
||||||
fms_fix_displays(FMS_EXIT);
|
fms_fix_displays(FMS_EXIT);
|
||||||
radio_menu();
|
do_menu(&radio_settings_menu, NULL, NULL, false);
|
||||||
preset_set_current(preset_find(curr_freq));
|
preset_set_current(preset_find(curr_freq));
|
||||||
fms_fix_displays(FMS_ENTER);
|
fms_fix_displays(FMS_ENTER);
|
||||||
update_type = SKIN_REFRESH_ALL;
|
update_type = SKIN_REFRESH_ALL;
|
||||||
|
@ -902,128 +884,4 @@ void set_radio_region(int region)
|
||||||
(void)region;
|
(void)region;
|
||||||
}
|
}
|
||||||
|
|
||||||
MENUITEM_SETTING(set_region, &global_settings.fm_region, NULL);
|
|
||||||
MENUITEM_SETTING(force_mono, &global_settings.fm_force_mono, NULL);
|
|
||||||
|
|
||||||
#ifndef FM_MODE
|
|
||||||
static char* get_mode_text(int selected_item, void * data, char *buffer)
|
|
||||||
{
|
|
||||||
(void)selected_item;
|
|
||||||
(void)data;
|
|
||||||
snprintf(buffer, MAX_PATH, "%s %s", str(LANG_MODE),
|
|
||||||
radio_mode ? str(LANG_PRESET) :
|
|
||||||
str(LANG_RADIO_SCAN_MODE));
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
static int toggle_radio_mode(void)
|
|
||||||
{
|
|
||||||
radio_mode = (radio_mode == RADIO_SCAN_MODE) ?
|
|
||||||
RADIO_PRESET_MODE : RADIO_SCAN_MODE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
MENUITEM_FUNCTION_DYNTEXT(radio_mode_item, 0,
|
|
||||||
toggle_radio_mode, NULL,
|
|
||||||
get_mode_text, NULL, NULL, NULL, Icon_NOICON);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_RECORDING
|
|
||||||
|
|
||||||
#if defined(HAVE_FMRADIO_REC) && CONFIG_CODEC == SWCODEC
|
|
||||||
#define FM_RECORDING_SCREEN
|
|
||||||
static int fm_recording_screen(void)
|
|
||||||
{
|
|
||||||
bool ret;
|
|
||||||
|
|
||||||
/* switch recording source to FMRADIO for the duration */
|
|
||||||
int rec_source = global_settings.rec_source;
|
|
||||||
global_settings.rec_source = AUDIO_SRC_FMRADIO;
|
|
||||||
ret = recording_screen(true);
|
|
||||||
|
|
||||||
/* safe to reset as changing sources is prohibited here */
|
|
||||||
global_settings.rec_source = rec_source;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* defined(HAVE_FMRADIO_REC) && CONFIG_CODEC == SWCODEC */
|
|
||||||
|
|
||||||
#if defined(HAVE_FMRADIO_REC) || CONFIG_CODEC != SWCODEC
|
|
||||||
#define FM_RECORDING_SETTINGS
|
|
||||||
static int fm_recording_settings(void)
|
|
||||||
{
|
|
||||||
bool ret = recording_menu(true);
|
|
||||||
|
|
||||||
#if CONFIG_CODEC != SWCODEC
|
|
||||||
if (!ret)
|
|
||||||
{
|
|
||||||
struct audio_recording_options rec_options;
|
|
||||||
rec_init_recording_options(&rec_options);
|
|
||||||
rec_options.rec_source = AUDIO_SRC_LINEIN;
|
|
||||||
rec_set_recording_options(&rec_options);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* defined(HAVE_FMRADIO_REC) || CONFIG_CODEC != SWCODEC */
|
|
||||||
#endif /* HAVE_RECORDING */
|
|
||||||
|
|
||||||
#ifdef FM_RECORDING_SCREEN
|
|
||||||
MENUITEM_FUNCTION(recscreen_item, 0, ID2P(LANG_RECORDING),
|
|
||||||
fm_recording_screen, NULL, NULL, Icon_Recording);
|
|
||||||
#endif
|
|
||||||
#ifdef FM_RECORDING_SETTINGS
|
|
||||||
MENUITEM_FUNCTION(recsettings_item, 0, ID2P(LANG_RECORDING_SETTINGS),
|
|
||||||
fm_recording_settings, NULL, NULL, Icon_Recording);
|
|
||||||
#endif
|
|
||||||
#ifndef FM_PRESET
|
|
||||||
MENUITEM_FUNCTION(radio_presets_item, 0, ID2P(LANG_PRESET),
|
|
||||||
handle_radio_presets, NULL, NULL, Icon_NOICON);
|
|
||||||
#endif
|
|
||||||
#ifndef FM_PRESET_ADD
|
|
||||||
MENUITEM_FUNCTION(radio_addpreset_item, 0, ID2P(LANG_FM_ADD_PRESET),
|
|
||||||
handle_radio_add_preset, NULL, NULL, Icon_NOICON);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
MENUITEM_FUNCTION(presetload_item, 0, ID2P(LANG_FM_PRESET_LOAD),
|
|
||||||
preset_list_load, NULL, NULL, Icon_NOICON);
|
|
||||||
MENUITEM_FUNCTION(presetsave_item, 0, ID2P(LANG_FM_PRESET_SAVE),
|
|
||||||
preset_list_save, NULL, NULL, Icon_NOICON);
|
|
||||||
MENUITEM_FUNCTION(presetclear_item, 0, ID2P(LANG_FM_PRESET_CLEAR),
|
|
||||||
preset_list_clear, NULL, NULL, Icon_NOICON);
|
|
||||||
MENUITEM_FUNCTION(scan_presets_item, MENU_FUNC_USEPARAM,
|
|
||||||
ID2P(LANG_FM_SCAN_PRESETS),
|
|
||||||
presets_scan, NULL, NULL, Icon_NOICON);
|
|
||||||
|
|
||||||
MAKE_MENU(radio_settings_menu, ID2P(LANG_FM_MENU), NULL,
|
|
||||||
Icon_Radio_screen,
|
|
||||||
#ifndef FM_PRESET
|
|
||||||
&radio_presets_item,
|
|
||||||
#endif
|
|
||||||
#ifndef FM_PRESET_ADD
|
|
||||||
&radio_addpreset_item,
|
|
||||||
#endif
|
|
||||||
&presetload_item, &presetsave_item, &presetclear_item,
|
|
||||||
&force_mono,
|
|
||||||
#ifndef FM_MODE
|
|
||||||
&radio_mode_item,
|
|
||||||
#endif
|
|
||||||
&set_region, &sound_settings,
|
|
||||||
#ifdef FM_RECORDING_SCREEN
|
|
||||||
&recscreen_item,
|
|
||||||
#endif
|
|
||||||
#ifdef FM_RECORDING_SETTINGS
|
|
||||||
&recsettings_item,
|
|
||||||
#endif
|
|
||||||
&scan_presets_item);
|
|
||||||
/* main menu of the radio screen */
|
|
||||||
static bool radio_menu(void)
|
|
||||||
{
|
|
||||||
return do_menu(&radio_settings_menu, NULL, NULL, false) ==
|
|
||||||
MENU_ATTACHED_USB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -363,9 +363,6 @@ extern struct menu_item_ex
|
||||||
#endif
|
#endif
|
||||||
main_menu_,
|
main_menu_,
|
||||||
manage_settings,
|
manage_settings,
|
||||||
recording_settings_menu,
|
|
||||||
radio_settings_menu,
|
|
||||||
bookmark_settings_menu,
|
|
||||||
plugin_menu,
|
plugin_menu,
|
||||||
playlist_options,
|
playlist_options,
|
||||||
info_menu,
|
info_menu,
|
||||||
|
|
Loading…
Reference in a new issue