From dbc6b4e39a8f68708bc20a7b3295662c7871856a Mon Sep 17 00:00:00 2001 From: Mark Arigo Date: Thu, 6 Sep 2007 03:28:58 +0000 Subject: Sansa c200 port. Rockbox works with sound. Several features are disabled including some lcd options, FM radio, recording, and all plugins. Loading the OF from the Rockbox bootloader does not work. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14625 a1c6a512-1295-4272-9138-f99709370657 --- apps/SOURCES | 2 + apps/bitmaps/native/SOURCES | 2 + apps/bitmaps/native/rockboxlogo.132x40x16.bmp | Bin 0 -> 15894 bytes apps/debug_menu.c | 7 +- apps/keymaps/keymap-c200.c | 361 ++++++++++++++++++++++++++ apps/lang/english.lang | 43 +-- 6 files changed, 391 insertions(+), 24 deletions(-) create mode 100644 apps/bitmaps/native/rockboxlogo.132x40x16.bmp create mode 100644 apps/keymaps/keymap-c200.c (limited to 'apps') diff --git a/apps/SOURCES b/apps/SOURCES index a8a4d0c91e..04d9e76c51 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -149,6 +149,8 @@ keymaps/keymap-h10.c keymaps/keymap-ifp7xx.c #elif CONFIG_KEYPAD == SANSA_E200_PAD keymaps/keymap-e200.c +#elif CONFIG_KEYPAD == SANSA_C200_PAD +keymaps/keymap-c200.c #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD keymaps/keymap-av300.c #endif diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES index 094b2d61b1..88b60e0654 100644 --- a/apps/bitmaps/native/SOURCES +++ b/apps/bitmaps/native/SOURCES @@ -5,6 +5,8 @@ rockboxlogo.112x30x1.bmp #elif (LCD_WIDTH == 128) && (LCD_DEPTH == 16) rockboxlogo.128x40x16.bmp +#elif (LCD_WIDTH == 132) && (LCD_DEPTH == 16) +rockboxlogo.132x40x16.bmp #elif (LCD_WIDTH == 138) && (LCD_DEPTH == 2) rockboxlogo.138x46x2.bmp #elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2) diff --git a/apps/bitmaps/native/rockboxlogo.132x40x16.bmp b/apps/bitmaps/native/rockboxlogo.132x40x16.bmp new file mode 100644 index 0000000000..865a8ed59d Binary files /dev/null and b/apps/bitmaps/native/rockboxlogo.132x40x16.bmp differ diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 41507708d4..f8492d34b6 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -1010,7 +1010,8 @@ static bool dbg_spdif(void) #elif CONFIG_KEYPAD == IRIVER_H10_PAD # define DEBUG_CANCEL BUTTON_REW -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ + (CONFIG_KEYPAD == SANSA_C200_PAD) # define DEBUG_CANCEL BUTTON_LEFT #endif /* key definitios */ @@ -2007,7 +2008,7 @@ static bool dbg_save_roms(void) return false; } -#elif defined(CPU_PP) && !defined(SANSA_E200) +#elif defined(CPU_PP) && !(defined(SANSA_E200) || defined(SANSA_C200)) static bool dbg_save_roms(void) { int fd; @@ -2254,7 +2255,7 @@ static const struct the_menu_item menuitems[] = { { "LCD Power Off", dbg_lcd_power_off }, #endif #if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || \ - (defined(CPU_PP) && !defined(SANSA_E200)) + (defined(CPU_PP) && !(defined(SANSA_E200) || defined(SANSA_C200))) { "Dump ROM contents", dbg_save_roms }, #endif #if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || defined(CPU_PP) || CONFIG_CPU == S3C2440 diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c new file mode 100644 index 0000000000..2141c9bf33 --- /dev/null +++ b/apps/keymaps/keymap-c200.c @@ -0,0 +1,361 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id:$ + * + * Copyright (C) 2007 Mark Arigo + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +/* Button Code Definitions for Sandisk c200 target */ + +#include "config.h" +#include "action.h" +#include "button.h" +#include "settings.h" + +/* {Action Code, Button code, Prereq button code } */ + +/* + * The format of the list is as follows + * { Action Code, Button code, Prereq button code } + * if there's no need to check the previous button's value, use BUTTON_NONE + * Insert LAST_ITEM_IN_LIST at the end of each mapping + */ +static const struct button_mapping button_context_standard[] = { + { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE }, + { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, + { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, + { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, + + { ACTION_STD_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, + { 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 }, + + LAST_ITEM_IN_LIST +}; /* button_context_standard */ + + +static const struct button_mapping button_context_wps[] = { + { ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + { ACTION_WPS_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, + + { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, + { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, + + { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, + { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, + + { ACTION_WPS_ABSETB_NEXTDIR,BUTTON_POWER|BUTTON_RIGHT, BUTTON_POWER }, + { ACTION_WPS_ABSETA_PREVDIR,BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER }, + { ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER }, + + { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, + { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, + { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_WPS_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, + { ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, + { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT }, + { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT }, + { ACTION_WPS_CONTEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN }, + { ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN }, + { ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, + + LAST_ITEM_IN_LIST +}; /* button_context_wps */ + +static const struct button_mapping button_context_settings[] = { + { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, + { ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE }, + + { ACTION_SETTINGS_INC, BUTTON_DOWN, BUTTON_NONE }, + { ACTION_SETTINGS_INCREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_SETTINGS_DEC, BUTTON_UP, BUTTON_NONE }, + { ACTION_SETTINGS_DECREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), +}; /* button_context_settings */ + +static const struct button_mapping button_context_list[] = { + { ACTION_LISTTREE_PGUP, BUTTON_REC|BUTTON_UP, BUTTON_REC }, + { ACTION_LISTTREE_PGDOWN, BUTTON_REC|BUTTON_DOWN, BUTTON_REC }, + +#ifdef HAVE_VOLUME_IN_LIST + { ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, + + { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, + { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, +#endif + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) +}; /* button_context_list */ + +static const struct button_mapping button_context_tree[] = { + { ACTION_TREE_WPS, BUTTON_REC|BUTTON_UP, BUTTON_REC }, + { ACTION_TREE_STOP, BUTTON_REC|BUTTON_UP|BUTTON_REPEAT, BUTTON_REC|BUTTON_UP }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), +}; /* button_context_tree */ + +static const struct button_mapping button_context_listtree_scroll_without_combo[] = { + { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, + { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, + { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, + + { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, + { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), +}; /* button_context_listtree_scroll_without_combo */ + +static const struct button_mapping button_context_listtree_scroll_with_combo[] = { + { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_REC }, + { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_REC }, + { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), +}; /* button_context_listtree_scroll_with_combo */ + +static const struct button_mapping button_context_yesno[] = { + { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), +}; /* button_context_settings_yesno */ + +static const struct button_mapping button_context_quickscreen[] = { + { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, + + { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, + { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, + { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, + { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, + { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), +}; /* button_context_quickscreen */ + +static const struct button_mapping button_context_settings_right_is_inc[] = { + { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_NONE, BUTTON_SELECT, BUTTON_NONE }, + { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, + + { ACTION_NONE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, + { ACTION_NONE, BUTTON_POWER, BUTTON_NONE }, + { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), +}; /* button_context_settings_right_is_inc */ + +static const struct button_mapping button_context_settings_time[] = { + { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, + { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) +}; /* button_context_settings_time */ + +static const struct button_mapping button_context_pitchscreen[] = { + { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE }, + { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE }, + { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, + + { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, + + { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE }, + { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), +}; /* button_context_pitchscreen */ + +/** Recording Screen **/ +#ifdef HAVE_RECORDING +static const struct button_mapping button_context_recscreen[] = { + { ACTION_STD_MENU, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_REC_PAUSE, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, + { ACTION_REC_NEWFILE, BUTTON_REC|BUTTON_REL, BUTTON_REC }, + + { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_SETTINGS_INC, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_PREV, BUTTON_SCROLL_UP, BUTTON_NONE }, + { ACTION_STD_PREV, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_STD_NEXT, BUTTON_SCROLL_DOWN, BUTTON_NONE }, + { ACTION_STD_NEXT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT,BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) +}; /* button_context_recscreen */ +#endif + +/** FM Radio Screen **/ +#if CONFIG_TUNER +static const struct button_mapping button_context_radio[] = { + { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE }, + { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE }, + { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, + { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE }, + { ACTION_FM_EXIT, BUTTON_POWER, BUTTON_NONE }, + { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) +}; /* button_context_radio */ +#endif + +static const struct button_mapping button_context_keyboard[] = { + { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, + { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE }, + + { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE }, + + { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, + { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, + { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + + { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_DOWN, BUTTON_NONE }, + { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_DOWN|BUTTON_REPEAT,BUTTON_NONE }, + + { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC }, + + { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, + { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, + { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, + + LAST_ITEM_IN_LIST +}; /* button_context_keyboard */ + +static const struct button_mapping button_context_bmark[] = { + { ACTION_BMS_DELETE, BUTTON_UP, BUTTON_NONE }, + + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), +}; /* button_context_bmark */ + +/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ +const struct button_mapping* get_context_mapping(int context) +{ + switch (context) + { + case CONTEXT_STD: + return button_context_standard; + + case CONTEXT_WPS: + return button_context_wps; + + case CONTEXT_LIST: + return button_context_list; + case CONTEXT_TREE: + case CONTEXT_MAINMENU: + if (global_settings.hold_lr_for_scroll_in_list) + return button_context_listtree_scroll_without_combo; + else + return button_context_listtree_scroll_with_combo; + case CONTEXT_CUSTOM|CONTEXT_TREE: + return button_context_tree; + + case CONTEXT_SETTINGS: + return button_context_settings; + case CONTEXT_CUSTOM|CONTEXT_SETTINGS: + case CONTEXT_SETTINGS_COLOURCHOOSER: + case CONTEXT_SETTINGS_EQ: + return button_context_settings_right_is_inc; + + case CONTEXT_SETTINGS_TIME: + return button_context_settings_time; + + case CONTEXT_YESNOSCREEN: + return button_context_yesno; +#if CONFIG_TUNER + case CONTEXT_FM: + return button_context_radio; +#endif + case CONTEXT_BOOKMARKSCREEN: + return button_context_bmark; + case CONTEXT_QUICKSCREEN: + return button_context_quickscreen; + case CONTEXT_PITCHSCREEN: + return button_context_pitchscreen; +#ifdef HAVE_RECORDING + case CONTEXT_RECSCREEN: + return button_context_recscreen; +#endif + case CONTEXT_KEYBOARD: + return button_context_keyboard; + + default: + return button_context_standard; + } + return button_context_standard; +} diff --git a/apps/lang/english.lang b/apps/lang/english.lang index cf9ce3b268..28451d0890 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -72,6 +72,7 @@ # # Sandisk # Sansa E200 e200 +# Sansa C200 c200 # @@ -319,13 +320,13 @@ *: "PLAY = Yes" h100,h120,h300: "NAVI = Yes" - ipod*,x5,m5,gigabeatf,e200,h10,h10_5gb: "SELECT = Yes" + ipod*,x5,m5,gigabeatf,e200,c200,h10,h10_5gb: "SELECT = Yes" player: "(PLAY/STOP)" *: "PLAY = Yes" h100,h120,h300: "NAVI = Yes" - ipod*,x5,m5,gigabeatf,e200,h10,h10_5gb: "SELECT = Yes" + ipod*,x5,m5,gigabeatf,e200,c200,h10,h10_5gb: "SELECT = Yes" player: "(PLAY/STOP)" @@ -2421,14 +2422,14 @@ h100,h120,h300: "Building database... %d found (STOP to return)" ipod*: "Building database... %d found (PLAY/PAUSE to return)" x5,m5: "Building database... %d found (LEFT to return)" - h10,h10_5gb,e200: "Building database... %d found (PREV to return)" + h10,h10_5gb,e200,c200: "Building database... %d found (PREV to return)" *: "Building database... %d found (OFF to return)" h100,h120,h300: "Building database... %d found (STOP to return)" ipod*: "Building database... %d found (PLAY/PAUSE to return)" x5,m5: "Building database... %d found (LEFT to return)" - h10,h10_5gb,e200: "Building database... %d found (PREV to return)" + h10,h10_5gb,e200,c200: "Building database... %d found (PREV to return)" *: "entries found for database" @@ -4179,17 +4180,17 @@ *: none rtc: "ON = Set" h100,h120,h300: "NAVI = Set" - ipod*,x5,m5,h10,h10_5gb,e200,gigabeatf: "SELECT = Set" + ipod*,x5,m5,h10,h10_5gb,e200,c200,gigabeatf: "SELECT = Set" *: none rtc: "ON = Set" h100,h120,h300: "NAVI = Set" - ipod*,x5,m5,h10,h10_5gb,e200,gigabeatf: "SELECT = Set" + ipod*,x5,m5,h10,h10_5gb,e200,c200,gigabeatf: "SELECT = Set" *: none - rtc,h100,h120,h300,h10,h10_5gb,x5,m5,ipod*,e200,gigabeatf: "" + rtc,h100,h120,h300,h10,h10_5gb,x5,m5,ipod*,e200,c200,gigabeatf: "" @@ -4200,7 +4201,7 @@ *: none rtc: "OFF = Revert" h100,h120,h300: "STOP = Revert" - ipod*,e200: "MENU = Revert" + ipod*,e200,c200: "MENU = Revert" x5,m5: "RECORD = Revert" h10,h10_5gb: "PREV = Revert" gigabeatf: "A = Revert" @@ -4209,14 +4210,14 @@ *: none rtc: "OFF = Revert" h100,h120,h300: "STOP = Revert" - ipod*,e200: "MENU = Revert" + ipod*,e200,c200: "MENU = Revert" x5,m5: "RECORD = Revert" h10,h10_5gb: "PREV = Revert" gigabeatf: "A = Revert" *: none - rtc,h100,h120,h300,ipod*,e200,x5,m5,h10,h10_gb,gigabeatf: "" + rtc,h100,h120,h300,ipod*,e200,c200,x5,m5,h10,h10_gb,gigabeatf: "" @@ -6951,17 +6952,17 @@ user: *: none - e200: "mSD:" + e200,c200: "mSD:" ondio*: "MMC:" *: none - e200: "mSD:" + e200,c200: "mSD:" ondio*: "MMC:" *: none - e200: "micro Secure Digital card:" + e200,c200: "micro Secure Digital card:" ondio*: "Multimedia card" @@ -8325,18 +8326,18 @@ recording: "The disk is full. Press OFF to continue." h100,h120,h300: "The disk is full. Press STOP to continue." m5,x5: "The disk is full. Press POWER to continue." - e200: "The disk is full. Press UP to continue." + e200,c200: "The disk is full. Press UP to continue." *: none recording: "The disk is full. Press OFF to continue." h100,h120,h300: "The disk is full. Press STOP to continue." m5,x5: "The disk is full. Press POWER to continue." - e200: "The disk is full. Press UP to continue." + e200,c200: "The disk is full. Press UP to continue." *: none - recording,h100,h120,h300,m5,x5,e200: "" + recording,h100,h120,h300,m5,x5,e200,c200: "" @@ -8427,14 +8428,14 @@ player,h100,h120,h300: "STOP to abort" ipod*: "PLAY/PAUSE to abort" x5,m5: "Long PLAY to abort" - h10,h10_5gb,e200: "PREV to abort" + h10,h10_5gb,e200,c200: "PREV to abort" *: "OFF to abort" player,h100,h120,h300: "STOP to abort" ipod*: "PLAY/PAUSE to abort" x5,m5: "Long PLAY to abort" - h10,h10_5gb,e200: "PREV to abort" + h10,h10_5gb,e200,c200: "PREV to abort" *: "" @@ -10481,17 +10482,17 @@ *: none recording: "The disk is full. Press OFF to continue." h100,h120,h300: "The disk is full. Press STOP to continue." - m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200: "The disk is full. Press LEFT to continue." + m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200,c200: "The disk is full. Press LEFT to continue." *: none recording: "The disk is full. Press OFF to continue." h100,h120,h300: "The disk is full. Press STOP to continue." - m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200: "The disk is full. Press LEFT to continue." + m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200,c200: "The disk is full. Press LEFT to continue." *: none - recording,h100,h120,h300,m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200: "" + recording,h100,h120,h300,m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200,c200: "" -- cgit v1.2.3