Index: apps/action.h =================================================================== --- apps/action.h (revision 22462) +++ apps/action.h (working copy) @@ -231,7 +231,7 @@ ACTION_KBD_BACKSPACE, ACTION_KBD_UP, ACTION_KBD_DOWN, - ACTION_KBD_MORSE_INPUT, + ACTION_KBD_TOGGLE_INPUT, ACTION_KBD_MORSE_SELECT, #ifdef HAVE_TOUCHSCREEN Index: apps/recorder/keyboard.c =================================================================== --- apps/recorder/keyboard.c (revision 22462) +++ apps/recorder/keyboard.c (working copy) @@ -49,47 +49,44 @@ #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) +#define KBD_MODES /* target 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 == SANSA_E200_PAD) \ + || (CONFIG_KEYPAD == SANSA_FUZE_PAD) \ + || (CONFIG_KEYPAD == SANSA_C200_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 /* target uses 2 modes, picker and line edit */ -#elif CONFIG_KEYPAD == SANSA_E200_PAD \ - || CONFIG_KEYPAD == SANSA_FUZE_PAD -#define KBD_CURSOR_KEYS -#define KBD_MODES +#else +#define KBD_CURSOR_KEYS /* certain keys move the cursor */ +#endif -#elif CONFIG_KEYPAD == SANSA_C200_PAD -#define KBD_CURSOR_KEYS -#define KBD_MODES - -#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 == MROBE100_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \ + || (CONFIG_KEYPAD == SAMSUNG_YH_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_S_PAD) +/* certain key combos toggle input mode between keyboard input and Morse input */ +#define KBD_TOGGLE_INPUT #endif struct keyboard_parameters @@ -125,7 +122,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,.?-@ "; @@ -135,7 +132,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 @@ -300,7 +296,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; @@ -395,7 +392,7 @@ pm->font_h = pm->font->height; /* check if FONT_UI fits the screen */ - if (2*pm->font_h + 3 + statusbar_size + + if (2*pm->font_h + 3 + statusbar_size + BUTTONBAR_HEIGHT > sc->getheight()) { pm->font = font_get(FONT_SYSFIXED); @@ -527,7 +524,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->getheight() - pm->font_h; @@ -560,7 +557,7 @@ FOR_NB_SCREENS(l) screens[l].clear_display(); -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_mode) { FOR_NB_SCREENS(l) @@ -608,7 +605,7 @@ } } else -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ { /* draw page */ FOR_NB_SCREENS(l) @@ -761,7 +758,7 @@ pm = ¶m[button_screen]; sc = &screens[button_screen]; -#if defined KBD_MORSE_INPUT && !defined KBD_MODES +#if defined HAVE_MORSE_INPUT && !defined KBD_MODES if (morse_mode) { /* Remap some buttons for morse mode. */ @@ -783,7 +780,7 @@ case ACTION_KBD_PAGE_FLIP: { int k; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_mode) break; #endif @@ -795,8 +792,8 @@ break; } -#ifdef KBD_MORSE_INPUT - case ACTION_KBD_MORSE_INPUT: +#if defined(HAVE_MORSE_INPUT) && defined(KBD_TOGGLE_INPUT) + case ACTION_KBD_TOGGLE_INPUT: morse_mode = !morse_mode; FOR_NB_SCREENS(l) @@ -818,11 +815,11 @@ } /* FIXME: We should talk something like Morse mode.. */ break; -#endif /* KBD_MORSE_INPUT */ +#endif /* KBD_TOGGLE_INPUT */ case ACTION_KBD_RIGHT: #ifdef KBD_MODES -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT /* allow cursor change in non line edit morse mode */ if (pm->line_edit || morse_mode) #else @@ -836,7 +833,7 @@ { int c = utf8seek(text, ++editpos); kbd_spellchar(text[c]); - } + } #if CONFIG_CODEC == SWCODEC else if (global_settings.talk_menu) pcmbuf_beep(1000, 150, 1500); @@ -846,7 +843,7 @@ #endif /* KBD_MODES */ { int k; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_mode) break; #endif @@ -867,7 +864,7 @@ case ACTION_KBD_LEFT: #ifdef KBD_MODES -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT /* allow cursor change in non line edit morse mode */ if (pm->line_edit || morse_mode) #else @@ -881,7 +878,7 @@ { int c = utf8seek(text, --editpos); kbd_spellchar(text[c]); - } + } #if CONFIG_CODEC == SWCODEC else if (global_settings.talk_menu) pcmbuf_beep(1000, 150, 1500); @@ -891,7 +888,7 @@ #endif /* KBD_MODES */ { int k; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_mode) break; #endif @@ -911,7 +908,7 @@ break; case ACTION_KBD_DOWN: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT #ifdef KBD_MODES if (morse_mode) { @@ -924,7 +921,7 @@ if (morse_mode) break; #endif -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ { #ifdef KBD_MODES if (pm->line_edit) @@ -937,7 +934,7 @@ if (++pm->y >= pm->lines) #ifdef KBD_MODES { - pm->line_edit = true; + pm->line_edit = true; say_edit(); } #else @@ -954,7 +951,7 @@ break; case ACTION_KBD_UP: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT #ifdef KBD_MODES if (morse_mode) { @@ -967,7 +964,7 @@ if (morse_mode) break; #endif -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ { #ifdef KBD_MODES if (pm->line_edit) @@ -1002,7 +999,7 @@ done = true; break; -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT case ACTION_KBD_MORSE_SELECT: if (morse_mode && morse_reading) { @@ -1012,11 +1009,11 @@ } break; -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ case ACTION_KBD_SELECT: case ACTION_KBD_SELECT_REM: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT #ifdef KBD_MODES if (morse_mode && !pm->line_edit) #else @@ -1032,7 +1029,7 @@ } break; } -#endif /* KBD_MORSE_INPUT */ +#endif /* HAVE_MORSE_INPUT */ /* inserts the selected char */ #ifdef KBD_MODES @@ -1137,7 +1134,7 @@ /* speak revised text */ break; -#if !defined (KBD_MODES) || defined (KBD_CURSOR_KEYS) +#ifdef KBD_CURSOR_KEYS case ACTION_KBD_BACKSPACE: if (pm->hangul) { @@ -1191,10 +1188,10 @@ pcmbuf_beep(1000, 150, 1500); #endif break; -#endif /* !defined (KBD_MODES) || defined (KBD_CURSOR_KEYS) */ +#endif /* KBD_CURSOR_KEYS */ case BUTTON_NONE: -#ifdef KBD_MORSE_INPUT +#ifdef HAVE_MORSE_INPUT if (morse_reading) { int j; @@ -1221,7 +1218,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: @@ -1247,6 +1244,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 22462) +++ apps/lang/english.lang (working copy) @@ -12718,3 +12718,17 @@ swcodec: "Limiter Preamp" + + id: LANG_MORSE_INPUT + desc: in Settings -> System + user: core + + *: "Use Morse Code Input" + + + *: "Use Morse Code Input" + + + *: "Use Morse Code Input" + + Index: apps/settings.h =================================================================== --- apps/settings.h (revision 22462) +++ apps/settings.h (working copy) @@ -215,6 +215,29 @@ Explicitly define HAVE_LCD_CONTRAST in config file for newer ports for simplicity. */ +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == RECORDER_PAD) \ + || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_PAD) \ + || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ + || (CONFIG_KEYPAD == IRIVER_H10_PAD) \ + || (CONFIG_KEYPAD == SANSA_E200_PAD) \ + || (CONFIG_KEYPAD == SANSA_M200_PAD) \ + || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \ + || (CONFIG_KEYPAD == MROBE500_PAD) \ + || (CONFIG_KEYPAD == MROBE100_PAD) \ + || (CONFIG_KEYPAD == MEIZU_M6SL_PAD) \ + || (CONFIG_KEYPAD == CREATIVEZVM_PAD) \ + || (CONFIG_KEYPAD == CREATIVEZV_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) \ + || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \ + || (CONFIG_KEYPAD == SANSA_FUZE_PAD) +#define HAVE_MORSE_INPUT +#endif /** function prototypes **/ @@ -781,6 +804,11 @@ int limiter_level; #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 22462) +++ apps/menus/settings_menu.c (working copy) @@ -253,6 +253,10 @@ #endif MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL); +#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 @@ -276,6 +280,9 @@ #endif &poweroff, &limits_menu, +#ifdef HAVE_MORSE_INPUT + &morse_input, +#endif #if CONFIG_CODEC == MAS3507D &line_in, #endif @@ -283,7 +290,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 22462) +++ apps/settings_list.c (working copy) @@ -1568,6 +1568,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/keymaps/keymap-h1x0_h3x0.c =================================================================== --- apps/keymaps/keymap-h1x0_h3x0.c (revision 22462) +++ apps/keymaps/keymap-h1x0_h3x0.c (working copy) @@ -267,7 +267,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_INPUT, BUTTON_ON|BUTTON_MODE, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_ON|BUTTON_MODE, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST @@ -653,7 +653,7 @@ { ACTION_KBD_UP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_MORSE_INPUT, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST @@ -678,7 +678,7 @@ { ACTION_KBD_UP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_MORSE_INPUT, BUTTON_RC_MENU|BUTTON_RC_MODE, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_RC_MENU|BUTTON_RC_MODE, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-creativezv.c =================================================================== --- apps/keymaps/keymap-creativezv.c (revision 22462) +++ 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 22462) +++ 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-yh8xx_yh9xx.c =================================================================== --- apps/keymaps/keymap-yh8xx_yh9xx.c (revision 22462) +++ apps/keymaps/keymap-yh8xx_yh9xx.c (working copy) @@ -297,7 +297,7 @@ { ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, { ACTION_KBD_ABORT, BUTTON_PLAY|BUTTON_LEFT, BUTTON_PLAY }, - { ACTION_KBD_MORSE_INPUT, BUTTON_PLAY|BUTTON_FFWD, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_PLAY|BUTTON_FFWD, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-gigabeat-s.c =================================================================== --- apps/keymaps/keymap-gigabeat-s.c (revision 22462) +++ apps/keymaps/keymap-gigabeat-s.c (working copy) @@ -295,7 +295,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_INPUT, BUTTON_BACK|BUTTON_VOL_UP, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_BACK|BUTTON_VOL_UP, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-gigabeat.c =================================================================== --- apps/keymaps/keymap-gigabeat.c (revision 22462) +++ apps/keymaps/keymap-gigabeat.c (working copy) @@ -265,7 +265,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_INPUT, BUTTON_A|BUTTON_POWER, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_A|BUTTON_POWER, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-recorder.c =================================================================== --- apps/keymaps/keymap-recorder.c (revision 22462) +++ apps/keymaps/keymap-recorder.c (working copy) @@ -192,11 +192,12 @@ { ACTION_KBD_DONE, BUTTON_F2, BUTTON_NONE }, { ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE }, { ACTION_KBD_BACKSPACE, BUTTON_F3, BUTTON_NONE }, - { ACTION_KBD_BACKSPACE, BUTTON_F3|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_BACKSPACE, BUTTON_F3|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_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 22462) +++ apps/keymaps/keymap-e200.c (working copy) @@ -254,16 +254,17 @@ { 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_SCROLL_BACK, BUTTON_NONE }, - { ACTION_KBD_UP, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE }, - { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_UP, BUTTON_SCROLL_BACK, BUTTON_NONE }, + { ACTION_KBD_UP, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE }, + { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC }, { ACTION_KBD_BACKSPACE, BUTTON_DOWN, BUTTON_NONE }, { ACTION_KBD_BACKSPACE, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { 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 22462) +++ 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-h10.c =================================================================== --- apps/keymaps/keymap-h10.c (revision 22462) +++ apps/keymaps/keymap-h10.c (working copy) @@ -295,7 +295,7 @@ { ACTION_KBD_UP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_MORSE_INPUT, BUTTON_REW|BUTTON_PLAY, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_REW|BUTTON_PLAY, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_REW|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-av300.c =================================================================== --- apps/keymaps/keymap-av300.c (revision 22462) +++ apps/keymaps/keymap-av300.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_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST }; /* button_context_keyboard */ Index: apps/keymaps/keymap-ipod.c =================================================================== --- apps/keymaps/keymap-ipod.c (revision 22462) +++ apps/keymaps/keymap-ipod.c (working copy) @@ -165,7 +165,7 @@ { ACTION_KBD_UP, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_MORSE_INPUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, { 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 22462) +++ 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-mr100.c =================================================================== --- apps/keymaps/keymap-mr100.c (revision 22462) +++ apps/keymaps/keymap-mr100.c (working copy) @@ -262,7 +262,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_INPUT, BUTTON_DISPLAY|BUTTON_POWER, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_DISPLAY|BUTTON_POWER, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-mr500.c =================================================================== --- apps/keymaps/keymap-mr500.c (revision 22462) +++ 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-meizu-m6sl.c =================================================================== --- apps/keymaps/keymap-meizu-m6sl.c (revision 22462) +++ apps/keymaps/keymap-meizu-m6sl.c (working copy) @@ -252,7 +252,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_INPUT, BUTTON_PLAY|BUTTON_POWER, BUTTON_NONE }, +// { ACTION_KBD_TOGGLE_INPUT, BUTTON_PLAY|BUTTON_POWER, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-fuze.c =================================================================== --- apps/keymaps/keymap-fuze.c (revision 22462) +++ 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: apps/keymaps/keymap-hdd1630.c =================================================================== --- apps/keymaps/keymap-hdd1630.c (revision 22462) +++ apps/keymaps/keymap-hdd1630.c (working copy) @@ -251,21 +251,21 @@ { 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_VIEW|BUTTON_LEFT, BUTTON_NONE }, - { ACTION_KBD_CURSOR_LEFT, BUTTON_VIEW|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_CURSOR_RIGHT, BUTTON_VIEW|BUTTON_RIGHT, BUTTON_NONE }, - { ACTION_KBD_CURSOR_RIGHT, BUTTON_VIEW|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_LEFT, BUTTON_VIEW|BUTTON_LEFT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_LEFT, BUTTON_VIEW|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_RIGHT, BUTTON_VIEW|BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_RIGHT, BUTTON_VIEW|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, - { ACTION_KBD_PAGE_FLIP, BUTTON_VIEW|BUTTON_MENU, BUTTON_NONE }, - { ACTION_KBD_DONE, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW }, - { ACTION_KBD_ABORT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, + { ACTION_KBD_PAGE_FLIP, BUTTON_VIEW|BUTTON_MENU, BUTTON_NONE }, + { ACTION_KBD_DONE, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW }, + { ACTION_KBD_ABORT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, { ACTION_KBD_BACKSPACE, BUTTON_MENU, BUTTON_NONE }, { ACTION_KBD_BACKSPACE, BUTTON_MENU|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_MORSE_INPUT, BUTTON_VIEW|BUTTON_POWER, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_VIEW|BUTTON_POWER, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST Index: apps/keymaps/keymap-sa9200.c =================================================================== --- apps/keymaps/keymap-sa9200.c (revision 22462) +++ apps/keymaps/keymap-sa9200.c (working copy) @@ -270,7 +270,7 @@ { ACTION_KBD_PAGE_FLIP, BUTTON_VOL_DOWN, BUTTON_NONE }, - { ACTION_KBD_MORSE_INPUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, + { ACTION_KBD_TOGGLE_INPUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_MORSE_SELECT, BUTTON_MENU|BUTTON_REL, BUTTON_NONE }, LAST_ITEM_IN_LIST