Index: apps/action.h =================================================================== --- apps/action.h (revision 15001) +++ apps/action.h (working copy) @@ -83,6 +83,8 @@ ACTION_STD_PREV, ACTION_STD_PREVREPEAT, ACTION_STD_NEXT, + ACTION_TALK_INFO, + ACTION_GO_TO_RADIO, ACTION_STD_NEXTREPEAT, ACTION_STD_OK, Index: apps/recorder/radio.c =================================================================== --- apps/recorder/radio.c (revision 15001) +++ apps/recorder/radio.c (working copy) @@ -541,6 +541,10 @@ #endif switch(button) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; case ACTION_FM_STOP: #if CONFIG_CODEC != SWCODEC && !defined(SIMULATOR) if(audio_status() == AUDIO_STATUS_RECORD) Index: apps/tree.c =================================================================== --- apps/tree.c (revision 15001) +++ apps/tree.c (working copy) @@ -22,6 +22,9 @@ #include #include "applimits.h" +#if CONFIG_TUNER +#include "radio.h" +#endif #include "dir.h" #include "file.h" #include "lcd.h" @@ -609,6 +612,15 @@ need_update = gui_synclist_do_button(&tree_lists, &button,LIST_WRAP_UNLESS_HELD); tc.selected_item = gui_synclist_get_sel_pos(&tree_lists); switch ( button ) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + return radio_screen(); +#endif + break; case ACTION_STD_OK: /* nothing to do if no files to display */ if ( numentries == 0 ) @@ -663,12 +675,6 @@ case ACTION_STD_MENU: return GO_TO_ROOT; break; - -#ifdef HAVE_RECORDING - case ACTION_STD_REC: - return GO_TO_RECSCREEN; -#endif - case ACTION_TREE_WPS: return GO_TO_PREVIOUS_MUSIC; break; Index: apps/gui/gwps-common.c =================================================================== --- apps/gui/gwps-common.c (revision 15001) +++ apps/gui/gwps-common.c (working copy) @@ -23,6 +23,10 @@ #include #include "system.h" #include "settings.h" +#include "talk.h" +#if CONFIG_TUNER +#include "radio.h" +#endif #include "rbunicode.h" #include "rtc.h" #include "audio.h" @@ -169,6 +173,15 @@ { switch ( button ) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + radio_screen(); +#endif + break; case ACTION_WPS_SEEKFWD: direction = 1; case ACTION_WPS_SEEKBACK: Index: apps/gui/gwps.c =================================================================== --- apps/gui/gwps.c (revision 15001) +++ apps/gui/gwps.c (working copy) @@ -23,6 +23,10 @@ #include "system.h" #include "file.h" +#include "talk.h" +#if CONFIG_TUNER +#include "radio.h" +#endif #include "lcd.h" #include "font.h" #include "backlight.h" @@ -234,6 +238,15 @@ #endif switch(button) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + radio_screen(); +#endif + break; case ACTION_WPS_CONTEXT: #if LCD_DEPTH > 1 show_main_backdrop(); @@ -620,11 +633,6 @@ update_track = true; ffwd_rew(button); /* hopefully fix the ffw/rwd bug */ break; -#ifdef HAVE_RECORDING - case ACTION_WPS_REC: - exit = true; - break; -#endif case SYS_POWEROFF: #if LCD_DEPTH > 1 show_main_backdrop(); @@ -685,7 +693,10 @@ #endif #ifdef HAVE_RECORDING if (button == ACTION_WPS_REC) - return GO_TO_RECSCREEN; + { + if(talk_menus_enabled ()) + info (); + } #endif if (global_settings.browse_current) return GO_TO_PREVIOUS_BROWSER; Index: apps/alarm_menu.c =================================================================== --- apps/alarm_menu.c (revision 15001) +++ apps/alarm_menu.c (working copy) @@ -27,6 +27,9 @@ #include "kernel.h" #include "sprintf.h" #include +#if CONFIG_TUNER +#include "radio.h" +#endif #include "settings.h" #include "power.h" #include "icons.h" @@ -103,6 +106,15 @@ button = get_action(CONTEXT_SETTINGS,HZ); switch(button) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + radio_screen(); +#endif + break; case ACTION_STD_OK: /* prevent that an alarm occurs in the shutdown procedure */ /* accept alarms only if they are in 2 minutes or more */ Index: apps/playlist_viewer.c =================================================================== --- apps/playlist_viewer.c (revision 15001) +++ apps/playlist_viewer.c (working copy) @@ -28,6 +28,9 @@ #include "screens.h" #include "status.h" #include "settings.h" +#if CONFIG_TUNER +#include "radio.h" +#endif #include "icons.h" #include "menu.h" #include "plugin.h" @@ -663,6 +666,15 @@ break; } + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + radio_screen(); +#endif + break; case ACTION_STD_CONTEXT: { /* ON+PLAY menu */ Index: apps/talk.c =================================================================== --- apps/talk.c (revision 15001) +++ apps/talk.c (working copy) @@ -27,6 +27,7 @@ #include "file.h" #include "buffer.h" #include "system.h" +#include "powermgmt.h" #include "kernel.h" #include "settings.h" #include "mp3_playback.h" @@ -864,3 +865,14 @@ { talk_menu_disable--; } + +void info (void) +{ + if(talk_menus_enabled ()) + { + talk_value(battery_level(), UNIT_PERCENT, true); + if (charge_state == CHARGING) + talk_id(LANG_BATTERY_CHARGE, true); + talk_date_time (false); + } +} Index: apps/talk.h =================================================================== --- apps/talk.h (revision 15001) +++ apps/talk.h (working copy) @@ -74,6 +74,7 @@ int talk_value(long n, int unit, bool enqueue); /* say a numeric value */ int talk_spell(const char* spell, bool enqueue); /* spell a string */ bool talk_menus_enabled(void); /* returns true if menus should be voiced */ +void info (void); /*used for the rec button*/ void talk_disable_menus(void); /* disable voice menus (temporarily, not persisted) */ void talk_enable_menus(void); /* re-enable voice menus */ int do_shutup(void); /* kill voice unconditionally */ Index: apps/root_menu.c =================================================================== --- apps/root_menu.c (revision 15001) +++ apps/root_menu.c (working copy) @@ -414,6 +414,17 @@ { switch (action) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + else + GO_TO_RECSCREEN; + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + radio_screen (); +#endif + break; case ACTION_TREE_STOP: return ACTION_REDRAW; case ACTION_REQUEST_MENUITEM: Index: apps/keymaps/keymap-h1x0_h3x0.c =================================================================== --- apps/keymaps/keymap-h1x0_h3x0.c (revision 15001) +++ apps/keymaps/keymap-h1x0_h3x0.c (working copy) @@ -61,6 +61,8 @@ { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_ON|BUTTON_REL, BUTTON_NONE }, + { ACTION_TALK_INFO, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, + { ACTION_GO_TO_RADIO, BUTTON_REC|BUTTON_REL, BUTTON_REC }, { ACTION_STD_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-x5.c =================================================================== --- apps/keymaps/keymap-x5.c (revision 15001) +++ apps/keymaps/keymap-x5.c (working copy) @@ -53,6 +53,8 @@ { ACTION_STD_OK, BUTTON_PLAY, BUTTON_NONE }, { ACTION_STD_MENU, BUTTON_REC|BUTTON_REL, BUTTON_REC }, { ACTION_STD_QUICKSCREEN,BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, + { ACTION_TALK_INFO, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, + { ACTION_GO_TO_RADIO, BUTTON_REC|BUTTON_REL, BUTTON_REC }, { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-c200.c =================================================================== --- apps/keymaps/keymap-c200.c (revision 15001) +++ apps/keymaps/keymap-c200.c (working copy) @@ -46,6 +46,8 @@ { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, { ACTION_STD_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_SELECT, BUTTON_NONE }, + { ACTION_TALK_INFO, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, + { ACTION_GO_TO_RADIO, BUTTON_REC|BUTTON_REL, BUTTON_REC }, LAST_ITEM_IN_LIST }; /* button_context_standard */ Index: apps/keymaps/keymap-e200.c =================================================================== --- apps/keymaps/keymap-e200.c (revision 15001) +++ apps/keymaps/keymap-e200.c (working copy) @@ -78,7 +78,9 @@ { ACTION_WPS_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, { ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, - + { ACTION_TALK_INFO, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC }, + { ACTION_GO_TO_RADIO, BUTTON_REC|BUTTON_REL, BUTTON_REC }, + { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT }, { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT }, Index: apps/playlist_catalog.c =================================================================== --- apps/playlist_catalog.c (revision 15001) +++ apps/playlist_catalog.c (working copy) @@ -23,6 +23,10 @@ #include #include "action.h" #include "dir.h" +#include "talk.h" +#if CONFIG_TUNER +#include "radio.h" +#endif #include "file.h" #include "filetree.h" #include "kernel.h" @@ -255,6 +259,15 @@ switch (button) { + case ACTION_TALK_INFO: + if(talk_menus_enabled ()) + info (); + break; + case ACTION_GO_TO_RADIO: +#if CONFIG_TUNER + radio_screen(); +#endif + break; case ACTION_STD_CANCEL: exit = true; break;