Index: apps/recorder/keyboard.c =================================================================== --- apps/recorder/keyboard.c (revision 23543) +++ apps/recorder/keyboard.c (working copy) @@ -49,45 +49,46 @@ #define DEFAULT_MARGIN 6 #define KBD_BUF_SIZE 500 -#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ - (CONFIG_KEYPAD == IRIVER_H300_PAD) -#define KBD_CURSOR_KEYS /* certain key combos move the cursor even if not - in line edit mode */ -#define KBD_MODES /* I-Rivers can use picker, line edit and cursor keys */ -#define KBD_MORSE_INPUT /* I-Rivers have a Morse input mode */ +#if (CONFIG_KEYPAD == ONDIO_PAD) \ + || (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) \ + || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \ + || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ + || (CONFIG_KEYPAD == IAUDIO_M3_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H10_PAD) +/* no key combos to move the cursor if not in line edit mode */ +#define KBD_MODES /* uses 2 modes, picker and line edit */ -#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ -#define KBD_MODES /* Ondio uses 2 modes, picker and line edit */ - -#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \ - || (CONFIG_KEYPAD == IPOD_4G_PAD) -#define KBD_MODES /* iPod uses 2 modes, picker and line edit */ -#define KBD_MORSE_INPUT - -#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD -#define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */ - -#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) || (CONFIG_KEYPAD == IAUDIO_M3_PAD) -#define KBD_MODES /* iAudios use 2 modes, picker and line edit */ - -#elif CONFIG_KEYPAD == IRIVER_H10_PAD -#define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */ -#define KBD_MORSE_INPUT - -#elif CONFIG_KEYPAD == GIGABEAT_PAD +#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ + || (CONFIG_KEYPAD == SANSA_E200_PAD) \ + || (CONFIG_KEYPAD == SANSA_FUZE_PAD) \ + || (CONFIG_KEYPAD == SANSA_C200_PAD) \ + || (CONFIG_KEYPAD == SAMSUNG_YH_PAD) +/* certain key combos move the cursor even if not in line edit mode */ #define KBD_CURSOR_KEYS -#define KBD_MODES -#define KBD_MORSE_INPUT +#define KBD_MODES /* uses 2 modes, picker and line edit */ -#elif CONFIG_KEYPAD == SANSA_E200_PAD \ - || CONFIG_KEYPAD == SANSA_FUZE_PAD \ - || CONFIG_KEYPAD == SANSA_C200_PAD \ - || CONFIG_KEYPAD == SAMSUNG_YH_PAD -#define KBD_CURSOR_KEYS -#define KBD_MODES +#else +#define KBD_CURSOR_KEYS /* certain keys move the cursor, no line edit mode */ +#endif -#elif CONFIG_KEYPAD == MROBE100_PAD -#define KBD_MORSE_INPUT +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ + || (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H10_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ + || (CONFIG_KEYPAD == MROBE100_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) +/* certain key combos toggle input mode between keyboard input and Morse input */ +#define KBD_TOGGLE_INPUT #endif struct keyboard_parameters @@ -124,7 +125,7 @@ static struct keyboard_parameters kbd_param[NB_SCREENS]; static bool kbd_loaded = false; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT /* FIXME: We should put this to a configuration file. */ static const char *morse_alphabets = "abcdefghijklmnopqrstuvwxyz1234567890,.?-@ "; @@ -134,7 +135,6 @@ 0x2f,0x27,0x23,0x21,0x20,0x30,0x38,0x3c,0x3e,0x3f, 0x73,0x55,0x4c,0x61,0x5a,0x80 }; -static bool morse_mode = false; #endif /* Loads a custom keyboard into memory @@ -306,7 +306,8 @@ unsigned char *utf8; bool cur_blink = true; /* Cursor on/off flag */ int ret = 0; /* assume success */ -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT + bool morse_mode = global_settings.morse_input; bool morse_reading = false; unsigned char morse_code = 0; int morse_tick = 0; @@ -534,7 +535,7 @@ pm->main_x = 0; pm->keyboard_margin -= pm->keyboard_margin/2; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT pm->old_main_y = pm->main_y; if (morse_mode) pm->main_y = sc_h - pm->font_h; @@ -567,7 +568,7 @@ FOR_NB_SCREENS(l) screens[l].clear_display(); -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_mode) { FOR_NB_SCREENS(l) @@ -615,7 +616,7 @@ } } else -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ { /* draw page */ FOR_NB_SCREENS(l) @@ -752,7 +753,7 @@ sc->getwidth(), pm->font_h + 2); else /* highlight the key that has focus */ #endif -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if(!morse_mode) #endif sc->fillrect(pm->font_w*pm->x, @@ -771,14 +772,14 @@ pm = ¶m[button_screen]; sc = &screens[button_screen]; -#if defined(KBD_MODES) || defined(KBD_MORSE_INPUT) +#if defined(KBD_MODES) || defined(HAVE_MORSE_INPUT) /* Remap some buttons to allow to move * cursor in line edit mode and morse mode. */ -#if defined(KBD_MODES) && defined(KBD_MORSE_INPUT) +#if defined(KBD_MODES) && defined(HAVE_MORSE_INPUT) if (pm->line_edit || morse_mode) #elif defined(KBD_MODES) if (pm->line_edit) -#else /* defined(KBD_MORSE_INPUT) */ +#else /* defined(HAVE_MORSE_INPUT) */ if (morse_mode) #endif { @@ -787,7 +788,7 @@ if (button == ACTION_KBD_RIGHT) button = ACTION_KBD_CURSOR_RIGHT; } -#endif /* defined(KBD_MODES) || defined(KBD_MORSE_INPUT) */ +#endif /* defined(KBD_MODES) || defined(HAVE_MORSE_INPUT) */ switch ( button ) { @@ -798,7 +799,7 @@ case ACTION_KBD_PAGE_FLIP: { -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_mode) break; #endif @@ -810,7 +811,7 @@ break; } -#ifdef KBD_MORSE_INPUT +#if defined(HAVE_MORSE_INPUT) && defined(KBD_TOGGLE_INPUT) case ACTION_KBD_MORSE_INPUT: morse_mode = !morse_mode; @@ -831,7 +832,7 @@ } /* FIXME: We should talk something like Morse mode.. */ break; -#endif /* KBD_MORSE_INPUT */ +#endif /* KBD_TOGGLE_INPUT */ case ACTION_KBD_RIGHT: if (++pm->x >= pm->max_chars) @@ -864,7 +865,7 @@ break; case ACTION_KBD_DOWN: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT #ifdef KBD_MODES if (morse_mode) { @@ -877,7 +878,7 @@ if (morse_mode) break; #endif -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ { #ifdef KBD_MODES if (pm->line_edit) @@ -907,7 +908,7 @@ break; case ACTION_KBD_UP: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT #ifdef KBD_MODES if (morse_mode) { @@ -920,7 +921,7 @@ if (morse_mode) break; #endif -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ { #ifdef KBD_MODES if (pm->line_edit) @@ -955,7 +956,7 @@ done = true; break; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT case ACTION_KBD_MORSE_SELECT: if (morse_mode && morse_reading) { @@ -965,10 +966,10 @@ } break; -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ case ACTION_KBD_SELECT: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT #ifdef KBD_MODES if (morse_mode && !pm->line_edit) #else @@ -984,7 +985,7 @@ } break; } -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ /* inserts the selected char */ #ifdef KBD_MODES @@ -1088,7 +1089,7 @@ /* speak revised text */ break; -#if !defined (KBD_MODES) || defined (KBD_CURSOR_KEYS) +#ifdef KBD_CURSOR_KEYS case ACTION_KBD_BACKSPACE: if (pm->hangul) { @@ -1114,7 +1115,7 @@ if (global_settings.talk_menu) /* voice UI? */ talk_spell(text, false); /* speak revised text */ break; -#endif /* !defined (KBD_MODES) || defined (KBD_CURSOR_KEYS) */ +#endif /* KBD_CURSOR_KEYS */ case ACTION_KBD_CURSOR_RIGHT: pm->hangul = false; @@ -1145,7 +1146,7 @@ break; case BUTTON_NONE: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_reading) { int j; @@ -1172,7 +1173,7 @@ if (global_settings.talk_menu) /* voice UI? */ talk_spell(text, false); /* speak revised text */ } -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ break; default: @@ -1198,6 +1199,14 @@ if (ret < 0) splash(HZ/2, ID2P(LANG_CANCEL)); +#ifdef HAVE_MORSE_INPUT + if(global_settings.morse_input != morse_mode) + { + global_settings.morse_input = morse_mode; + settings_save(); + } +#endif /* HAVE_MORSE_INPUT */ + FOR_NB_SCREENS(l) screens[l].setfont(FONT_UI); viewportmanager_set_statusbar(oldbars); Index: apps/lang/english.lang =================================================================== --- apps/lang/english.lang (revision 23543) +++ apps/lang/english.lang (working copy) @@ -13210,3 +13210,20 @@ *: "Queue Last Shuffled" + + id: LANG_MORSE_INPUT + desc: in Settings -> System + user: core + + *: none + morse_input: "Use Morse Code Input" + + + *: none + morse_input: "Use Morse Code Input" + + + *: none + morse_input: "Use Morse Code Input" + + Index: apps/settings.h =================================================================== --- apps/settings.h (revision 23543) +++ apps/settings.h (working copy) @@ -798,6 +798,10 @@ int compressor_release_time; #endif +#ifdef HAVE_MORSE_INPUT + bool morse_input; /* text input method setting */ +#endif + }; /** global variables **/ Index: apps/menus/settings_menu.c =================================================================== --- apps/menus/settings_menu.c (revision 23543) +++ apps/menus/settings_menu.c (working copy) @@ -257,6 +257,10 @@ MENUITEM_SETTING(usb_keypad_mode, &global_settings.usb_keypad_mode, NULL); #endif +#ifdef HAVE_MORSE_INPUT +MENUITEM_SETTING(morse_input, &global_settings.morse_input, NULL); +#endif + #ifdef HAVE_BUTTON_LIGHT MENUITEM_SETTING(buttonlight_timeout, &global_settings.buttonlight_timeout, NULL); #endif @@ -280,6 +284,9 @@ #endif &poweroff, &limits_menu, +#ifdef HAVE_MORSE_INPUT + &morse_input, +#endif #if CONFIG_CODEC == MAS3507D &line_in, #endif @@ -287,7 +294,7 @@ &car_adapter_mode, #endif #ifdef IPOD_ACCESSORY_PROTOCOL - &serial_bitrate, + &serial_bitrate, #endif #ifdef HAVE_ACCESSORY_SUPPLY &accessory_supply, Index: apps/settings_list.c =================================================================== --- apps/settings_list.c (revision 23543) +++ apps/settings_list.c (working copy) @@ -1635,6 +1635,10 @@ VIEWPORT_SETTING(remote_ui_vp_config, "remote ui viewport"), #endif #endif + +#ifdef HAVE_MORSE_INPUT + OFFON_SETTING(0, morse_input, LANG_MORSE_INPUT, false, "morse input", NULL), +#endif }; const int nb_settings = sizeof(settings)/sizeof(*settings); Index: apps/features.txt =================================================================== --- apps/features.txt (revision 23543) +++ apps/features.txt (working copy) @@ -205,6 +205,10 @@ #endif #endif +#if defined(HAVE_MORSE_INPUT) +morse_input +#endif + #if defined(HAVE_WHEEL_ACCELERATION) wheel_acceleration #endif Index: apps/keymaps/keymap-creativezv.c =================================================================== --- apps/keymaps/keymap-creativezv.c (revision 23543) +++ apps/keymaps/keymap-creativezv.c (working copy) @@ -213,6 +213,7 @@ { 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_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-creativezvm.c =================================================================== --- apps/keymaps/keymap-creativezvm.c (revision 23543) +++ apps/keymaps/keymap-creativezvm.c (working copy) @@ -212,6 +212,7 @@ { 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_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-recorder.c =================================================================== --- apps/keymaps/keymap-recorder.c (revision 23543) +++ apps/keymaps/keymap-recorder.c (working copy) @@ -197,6 +197,7 @@ { 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_MORSE_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-e200.c =================================================================== --- apps/keymaps/keymap-e200.c (revision 23543) +++ apps/keymaps/keymap-e200.c (working copy) @@ -265,6 +265,7 @@ { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, + { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-m200.c =================================================================== --- apps/keymaps/keymap-m200.c (revision 23543) +++ apps/keymaps/keymap-m200.c (working copy) @@ -274,6 +274,7 @@ { ACTION_KBD_DONE, BUTTON_VOL_UP, BUTTON_NONE }, { ACTION_KBD_DONE, BUTTON_VOL_DOWN, BUTTON_NONE }, { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, + { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-x5.c =================================================================== --- apps/keymaps/keymap-x5.c (revision 23543) +++ apps/keymaps/keymap-x5.c (working copy) @@ -132,9 +132,10 @@ { 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_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, + { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, { ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE }, { ACTION_KBD_ABORT, BUTTON_REC, BUTTON_NONE }, + { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-mr500.c =================================================================== --- apps/keymaps/keymap-mr500.c (revision 23543) +++ apps/keymaps/keymap-mr500.c (working copy) @@ -191,6 +191,7 @@ { ACTION_KBD_UP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_RC_DOWN, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_MORSE_SELECT, BUTTON_RC_HEART|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-fuze.c =================================================================== --- apps/keymaps/keymap-fuze.c (revision 23543) +++ apps/keymaps/keymap-fuze.c (working copy) @@ -266,6 +266,7 @@ { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, { ACTION_KBD_ABORT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: firmware/export/config-h10.h =================================================================== --- firmware/export/config-h10.h (revision 23543) +++ firmware/export/config-h10.h (working copy) @@ -76,6 +76,9 @@ #define CONFIG_KEYPAD IRIVER_H10_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-creativezvm.h =================================================================== --- firmware/export/config-creativezvm.h (revision 23543) +++ firmware/export/config-creativezvm.h (working copy) @@ -77,6 +77,9 @@ #define HAVE_HEADPHONE_DETECTION //#define HAVE_TOUCHPAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-fuze.h =================================================================== --- firmware/export/config-fuze.h (revision 23543) +++ firmware/export/config-fuze.h (working copy) @@ -78,6 +78,9 @@ #define CONFIG_KEYPAD SANSA_FUZE_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-e200v2.h =================================================================== --- firmware/export/config-e200v2.h (revision 23543) +++ firmware/export/config-e200v2.h (working copy) @@ -73,6 +73,9 @@ #define CONFIG_KEYPAD SANSA_E200_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-mrobe100.h =================================================================== --- firmware/export/config-mrobe100.h (revision 23543) +++ firmware/export/config-mrobe100.h (working copy) @@ -64,6 +64,9 @@ #define CONFIG_KEYPAD MROBE100_PAD #define CONFIG_REMOTE_KEYPAD MROBE_REMOTE +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-mrobe500.h =================================================================== --- firmware/export/config-mrobe500.h (revision 23543) +++ firmware/export/config-mrobe500.h (working copy) @@ -135,6 +135,9 @@ #define HAVE_TOUCHSCREEN #define HAVE_BUTTON_DATA +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* define this if the target has volume keys which can be used in the lists */ #define HAVE_VOLUME_IN_LIST Index: firmware/export/config-e200.h =================================================================== --- firmware/export/config-e200.h (revision 23543) +++ firmware/export/config-e200.h (working copy) @@ -73,6 +73,9 @@ #define CONFIG_KEYPAD SANSA_E200_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC /* There is no hardware tone control */ Index: firmware/export/config-m200.h =================================================================== --- firmware/export/config-m200.h (revision 23543) +++ firmware/export/config-m200.h (working copy) @@ -58,6 +58,9 @@ /* define this to indicate your device's keypad */ #define CONFIG_KEYPAD SANSA_M200_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* define this if you have a real-time clock */ #define CONFIG_RTC RTC_TCC77X Index: firmware/export/config-ipodvideo.h =================================================================== --- firmware/export/config-ipodvideo.h (revision 23543) +++ firmware/export/config-ipodvideo.h (working copy) @@ -62,6 +62,9 @@ #define CONFIG_KEYPAD IPOD_4G_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-h10_5gb.h =================================================================== --- firmware/export/config-h10_5gb.h (revision 23543) +++ firmware/export/config-h10_5gb.h (working copy) @@ -59,6 +59,9 @@ #define CONFIG_KEYPAD IRIVER_H10_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipod3g.h =================================================================== --- firmware/export/config-ipod3g.h (revision 23543) +++ firmware/export/config-ipod3g.h (working copy) @@ -78,6 +78,9 @@ #define HAVE_SCROLLWHEEL +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipodcolor.h =================================================================== --- firmware/export/config-ipodcolor.h (revision 23543) +++ firmware/export/config-ipodcolor.h (working copy) @@ -60,6 +60,9 @@ #define CONFIG_KEYPAD IPOD_4G_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipodnano2g.h =================================================================== --- firmware/export/config-ipodnano2g.h (revision 23543) +++ firmware/export/config-ipodnano2g.h (working copy) @@ -94,6 +94,9 @@ //#define AB_REPEAT_ENABLE 1 //#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipodmini.h =================================================================== --- firmware/export/config-ipodmini.h (revision 23543) +++ firmware/export/config-ipodmini.h (working copy) @@ -77,6 +77,9 @@ #define HAVE_SCROLLWHEEL +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-h120.h =================================================================== --- firmware/export/config-h120.h (revision 23543) +++ firmware/export/config-h120.h (working copy) @@ -68,6 +68,9 @@ #define CONFIG_REMOTE_KEYPAD H100_REMOTE +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipod1g2g.h =================================================================== --- firmware/export/config-ipod1g2g.h (revision 23543) +++ firmware/export/config-ipod1g2g.h (working copy) @@ -77,6 +77,9 @@ #define HAVE_SCROLLWHEEL +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-recorderv2.h =================================================================== --- firmware/export/config-recorderv2.h (revision 23543) +++ firmware/export/config-recorderv2.h (working copy) @@ -48,6 +48,9 @@ /* define this if you have a Recorder style 10-key keyboard */ #define CONFIG_KEYPAD RECORDER_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* define this if you have a real-time clock */ #define CONFIG_RTC RTC_M41ST84W Index: firmware/export/config-ipodmini2g.h =================================================================== --- firmware/export/config-ipodmini2g.h (revision 23543) +++ firmware/export/config-ipodmini2g.h (working copy) @@ -75,6 +75,9 @@ #define CONFIG_KEYPAD IPOD_4G_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipodnano.h =================================================================== --- firmware/export/config-ipodnano.h (revision 23543) +++ firmware/export/config-ipodnano.h (working copy) @@ -60,6 +60,9 @@ #define CONFIG_KEYPAD IPOD_4G_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-iaudiom5.h =================================================================== --- firmware/export/config-iaudiom5.h (revision 23543) +++ firmware/export/config-iaudiom5.h (working copy) @@ -83,6 +83,9 @@ #define CONFIG_KEYPAD IAUDIO_X5M5_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + #define AB_REPEAT_ENABLE 1 #define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE Index: firmware/export/config-h100.h =================================================================== --- firmware/export/config-h100.h (revision 23543) +++ firmware/export/config-h100.h (working copy) @@ -69,6 +69,9 @@ #define CONFIG_REMOTE_KEYPAD H100_REMOTE +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-h300.h =================================================================== --- firmware/export/config-h300.h (revision 23543) +++ firmware/export/config-h300.h (working copy) @@ -61,6 +61,9 @@ #define CONFIG_REMOTE_KEYPAD H300_REMOTE +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-creativezvm60gb.h =================================================================== --- firmware/export/config-creativezvm60gb.h (revision 23543) +++ firmware/export/config-creativezvm60gb.h (working copy) @@ -76,6 +76,9 @@ #define HAVE_HEADPHONE_DETECTION //#define HAVE_TOUCHPAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-creativezv.h =================================================================== --- firmware/export/config-creativezv.h (revision 23543) +++ firmware/export/config-creativezv.h (working copy) @@ -76,6 +76,9 @@ #define HAVE_HEADPHONE_DETECTION //#define HAVE_TOUCHPAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-ipod4g.h =================================================================== --- firmware/export/config-ipod4g.h (revision 23543) +++ firmware/export/config-ipod4g.h (working copy) @@ -76,6 +76,9 @@ #define CONFIG_KEYPAD IPOD_4G_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-iaudiox5.h =================================================================== --- firmware/export/config-iaudiox5.h (revision 23543) +++ firmware/export/config-iaudiox5.h (working copy) @@ -85,6 +85,9 @@ #define CONFIG_KEYPAD IAUDIO_X5M5_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + #define AB_REPEAT_ENABLE 1 #define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE Index: firmware/export/config-m200v4.h =================================================================== --- firmware/export/config-m200v4.h (revision 23543) +++ firmware/export/config-m200v4.h (working copy) @@ -61,6 +61,9 @@ /* define this to indicate your device's keypad */ #define CONFIG_KEYPAD SANSA_M200_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* define this if you have a real-time clock */ #ifndef BOOTLOADER #define CONFIG_RTC RTC_AS3514 Index: firmware/export/config-gigabeat.h =================================================================== --- firmware/export/config-gigabeat.h (revision 23543) +++ firmware/export/config-gigabeat.h (working copy) @@ -67,6 +67,9 @@ #define CONFIG_KEYPAD GIGABEAT_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-gigabeat-s.h =================================================================== --- firmware/export/config-gigabeat-s.h (revision 23543) +++ firmware/export/config-gigabeat-s.h (working copy) @@ -49,10 +49,8 @@ #define CONFIG_KEYPAD GIGABEAT_S_PAD -/* Define keyboard features */ -#define KBD_CURSOR_KEYS /* allow non-line edit cursor movement */ -#define KBD_MODES /* enable line edit */ -#define KBD_MORSE_INPUT /* enable morse code input */ +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC Index: firmware/export/config-recorder.h =================================================================== --- firmware/export/config-recorder.h (revision 23543) +++ firmware/export/config-recorder.h (working copy) @@ -48,6 +48,9 @@ /* define this if you have the Recorder's 10-key keyboard */ #define CONFIG_KEYPAD RECORDER_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* define this if you have a real-time clock */ #define CONFIG_RTC RTC_M41ST84W Index: firmware/export/config-view.h =================================================================== --- firmware/export/config-view.h (revision 23543) +++ firmware/export/config-view.h (working copy) @@ -74,6 +74,9 @@ /* The only difference is that the power/hold is on the left instead of right on Fuze */ #define CONFIG_KEYPAD SANSA_FUZE_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* Define this if you do software codec */ #define CONFIG_CODEC SWCODEC /* There is no hardware tone control */ Index: firmware/export/config-fmrecorder.h =================================================================== --- firmware/export/config-fmrecorder.h (revision 23543) +++ firmware/export/config-fmrecorder.h (working copy) @@ -48,6 +48,9 @@ /* define this if you have a Recorder style 10-key keyboard */ #define CONFIG_KEYPAD RECORDER_PAD +/* Define this to enable morse code input */ +#define HAVE_MORSE_INPUT + /* define this if you have a real-time clock */ #define CONFIG_RTC RTC_M41ST84W