summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeruaki Kawashima <teru@rockbox.org>2009-11-08 13:14:50 +0000
committerTeruaki Kawashima <teru@rockbox.org>2009-11-08 13:14:50 +0000
commit92fb1df03aa1d7cd33bb07f7222e36e954409e52 (patch)
tree79c471e6aceac1ca49ca98bdcb10b7f1b084119a
parentb92e778fd71dfc86d41e6ddf68cf7b35477bc927 (diff)
downloadrockbox-92fb1df03aa1d7cd33bb07f7222e36e954409e52.tar.gz
rockbox-92fb1df03aa1d7cd33bb07f7222e36e954409e52.zip
FS#10338: Add "use morse input " entry to settings menu
* Remember last used text input mode (keyboard or morse input) in settings. * Add setting "Use Morse Code Input" under Settings -> General Settings -> System. Now it is possible for some of targets without button combo for changing input mode to use morse input by changing the setting. it's not possible for them to change input mode during in the keyboard screen of course. There are still targets without morse input mode. Flyspray: FS#10338 Author: myself, David Johnston git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23567 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/features.txt4
-rw-r--r--apps/keymaps/keymap-creativezv.c1
-rw-r--r--apps/keymaps/keymap-creativezvm.c1
-rw-r--r--apps/keymaps/keymap-e200.c2
-rw-r--r--apps/keymaps/keymap-fuze.c1
-rw-r--r--apps/keymaps/keymap-m200.c1
-rw-r--r--apps/keymaps/keymap-mr500.c1
-rw-r--r--apps/keymaps/keymap-recorder.c1
-rw-r--r--apps/keymaps/keymap-x5.c3
-rw-r--r--apps/lang/english.lang17
-rw-r--r--apps/menus/settings_menu.c9
-rw-r--r--apps/recorder/keyboard.c138
-rw-r--r--apps/settings.h4
-rw-r--r--apps/settings_list.c4
-rw-r--r--firmware/export/config-creativezv.h3
-rw-r--r--firmware/export/config-creativezvm.h3
-rw-r--r--firmware/export/config-creativezvm60gb.h3
-rw-r--r--firmware/export/config-e200.h3
-rw-r--r--firmware/export/config-e200v2.h3
-rw-r--r--firmware/export/config-fmrecorder.h3
-rw-r--r--firmware/export/config-fuze.h3
-rw-r--r--firmware/export/config-gigabeat-s.h6
-rw-r--r--firmware/export/config-gigabeat.h3
-rw-r--r--firmware/export/config-h10.h3
-rw-r--r--firmware/export/config-h100.h3
-rw-r--r--firmware/export/config-h10_5gb.h3
-rw-r--r--firmware/export/config-h120.h3
-rw-r--r--firmware/export/config-h300.h3
-rw-r--r--firmware/export/config-hdd1630.h3
-rw-r--r--firmware/export/config-iaudiom5.h3
-rw-r--r--firmware/export/config-iaudiox5.h3
-rw-r--r--firmware/export/config-ipod1g2g.h3
-rw-r--r--firmware/export/config-ipod3g.h3
-rw-r--r--firmware/export/config-ipod4g.h3
-rw-r--r--firmware/export/config-ipodcolor.h3
-rw-r--r--firmware/export/config-ipodmini.h3
-rw-r--r--firmware/export/config-ipodmini2g.h3
-rw-r--r--firmware/export/config-ipodnano.h3
-rw-r--r--firmware/export/config-ipodnano2g.h3
-rw-r--r--firmware/export/config-ipodvideo.h3
-rw-r--r--firmware/export/config-m200.h3
-rw-r--r--firmware/export/config-m200v4.h3
-rw-r--r--firmware/export/config-mrobe100.h3
-rw-r--r--firmware/export/config-mrobe500.h3
-rw-r--r--firmware/export/config-recorder.h3
-rw-r--r--firmware/export/config-recorderv2.h3
-rw-r--r--firmware/export/config-sa9200.h3
-rw-r--r--firmware/export/config-view.h3
48 files changed, 222 insertions, 70 deletions
diff --git a/apps/features.txt b/apps/features.txt
index 888e9d2210..14204dfb6d 100644
--- a/apps/features.txt
+++ b/apps/features.txt
@@ -102,6 +102,10 @@ masf
102masd 102masd
103#endif 103#endif
104 104
105#if defined(HAVE_MORSE_INPUT)
106morse_input
107#endif
108
105#if defined(HAVE_PITCHSCREEN) 109#if defined(HAVE_PITCHSCREEN)
106pitchscreen 110pitchscreen
107#endif 111#endif
diff --git a/apps/keymaps/keymap-creativezv.c b/apps/keymaps/keymap-creativezv.c
index c75a5b29cd..b88c1409cd 100644
--- a/apps/keymaps/keymap-creativezv.c
+++ b/apps/keymaps/keymap-creativezv.c
@@ -213,6 +213,7 @@ static const struct button_mapping button_context_keyboard[] = {
213 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 213 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
214 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, 214 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
215 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 215 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
216 { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
216 LAST_ITEM_IN_LIST 217 LAST_ITEM_IN_LIST
217}; /* button_context_keyboard */ 218}; /* button_context_keyboard */
218 219
diff --git a/apps/keymaps/keymap-creativezvm.c b/apps/keymaps/keymap-creativezvm.c
index 12694bc473..b355018892 100644
--- a/apps/keymaps/keymap-creativezvm.c
+++ b/apps/keymaps/keymap-creativezvm.c
@@ -212,6 +212,7 @@ static const struct button_mapping button_context_keyboard[] = {
212 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 212 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
213 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, 213 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
214 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 214 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
215 { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
215 LAST_ITEM_IN_LIST 216 LAST_ITEM_IN_LIST
216}; /* button_context_keyboard */ 217}; /* button_context_keyboard */
217 218
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c
index 487fb11130..2deac631ac 100644
--- a/apps/keymaps/keymap-e200.c
+++ b/apps/keymaps/keymap-e200.c
@@ -265,6 +265,8 @@ static const struct button_mapping button_context_keyboard[] = {
265 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, 265 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
266 { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, 266 { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE },
267 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, 267 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE },
268 { ACTION_KBD_MORSE_INPUT, BUTTON_REC|BUTTON_REL, BUTTON_REC },
269 { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
268 270
269 LAST_ITEM_IN_LIST 271 LAST_ITEM_IN_LIST
270}; /* button_context_keyboard */ 272}; /* button_context_keyboard */
diff --git a/apps/keymaps/keymap-fuze.c b/apps/keymaps/keymap-fuze.c
index e44ee518f2..3e89cc595f 100644
--- a/apps/keymaps/keymap-fuze.c
+++ b/apps/keymaps/keymap-fuze.c
@@ -266,6 +266,7 @@ static const struct button_mapping button_context_keyboard[] = {
266 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, 266 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
267 { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, 267 { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE },
268 { ACTION_KBD_ABORT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, 268 { ACTION_KBD_ABORT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE },
269 { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
269 270
270 LAST_ITEM_IN_LIST 271 LAST_ITEM_IN_LIST
271}; /* button_context_keyboard */ 272}; /* button_context_keyboard */
diff --git a/apps/keymaps/keymap-m200.c b/apps/keymaps/keymap-m200.c
index 78a4947b2f..e3aa093a81 100644
--- a/apps/keymaps/keymap-m200.c
+++ b/apps/keymaps/keymap-m200.c
@@ -274,6 +274,7 @@ static const struct button_mapping button_context_keyboard[] = {
274 { ACTION_KBD_DONE, BUTTON_VOL_UP, BUTTON_NONE }, 274 { ACTION_KBD_DONE, BUTTON_VOL_UP, BUTTON_NONE },
275 { ACTION_KBD_DONE, BUTTON_VOL_DOWN, BUTTON_NONE }, 275 { ACTION_KBD_DONE, BUTTON_VOL_DOWN, BUTTON_NONE },
276 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, 276 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE },
277 { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
277 278
278 LAST_ITEM_IN_LIST 279 LAST_ITEM_IN_LIST
279}; /* button_context_keyboard */ 280}; /* button_context_keyboard */
diff --git a/apps/keymaps/keymap-mr500.c b/apps/keymaps/keymap-mr500.c
index 36ffea46de..0b1dc767f2 100644
--- a/apps/keymaps/keymap-mr500.c
+++ b/apps/keymaps/keymap-mr500.c
@@ -191,6 +191,7 @@ static const struct button_mapping button_context_keyboard[] = {
191 { ACTION_KBD_UP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE }, 191 { ACTION_KBD_UP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_NONE },
192 { ACTION_KBD_DOWN, BUTTON_RC_DOWN, BUTTON_NONE }, 192 { ACTION_KBD_DOWN, BUTTON_RC_DOWN, BUTTON_NONE },
193 { ACTION_KBD_DOWN, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 193 { ACTION_KBD_DOWN, BUTTON_RC_DOWN|BUTTON_REPEAT, BUTTON_NONE },
194 { ACTION_KBD_MORSE_SELECT, BUTTON_RC_HEART|BUTTON_REL, BUTTON_NONE },
194 195
195 LAST_ITEM_IN_LIST 196 LAST_ITEM_IN_LIST
196}; /* button_context_keyboard */ 197}; /* button_context_keyboard */
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c
index 6c8ae0460e..0ab0e5f8c6 100644
--- a/apps/keymaps/keymap-recorder.c
+++ b/apps/keymaps/keymap-recorder.c
@@ -197,6 +197,7 @@ static const struct button_mapping button_context_keyboard[] = {
197 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 197 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
198 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, 198 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
199 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 199 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
200 { ACTION_KBD_MORSE_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE },
200 201
201 LAST_ITEM_IN_LIST 202 LAST_ITEM_IN_LIST
202}; /* button_context_keyboard */ 203}; /* button_context_keyboard */
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index 8b94118ac1..69602d7ca7 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -132,9 +132,10 @@ static const struct button_mapping button_context_keyboard[] = {
132 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 132 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
133 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, 133 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
134 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 134 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
135 { ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, 135 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
136 { ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE }, 136 { ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE },
137 { ACTION_KBD_ABORT, BUTTON_REC, BUTTON_NONE }, 137 { ACTION_KBD_ABORT, BUTTON_REC, BUTTON_NONE },
138 { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
138 139
139 LAST_ITEM_IN_LIST 140 LAST_ITEM_IN_LIST
140}; /* button_context_keyboard */ 141}; /* button_context_keyboard */
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 9fa1f7b7b3..198a3c7358 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -13210,3 +13210,20 @@
13210 *: "Queue Last Shuffled" 13210 *: "Queue Last Shuffled"
13211 </voice> 13211 </voice>
13212</phrase> 13212</phrase>
13213<phrase>
13214 id: LANG_MORSE_INPUT
13215 desc: in Settings -> System
13216 user: core
13217 <source>
13218 *: none
13219 morse_input: "Use Morse Code Input"
13220 </source>
13221 <dest>
13222 *: none
13223 morse_input: "Use Morse Code Input"
13224 </dest>
13225 <voice>
13226 *: none
13227 morse_input: "Use Morse Code Input"
13228 </voice>
13229</phrase>
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index c11bf0eb3d..135e632479 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -257,6 +257,10 @@ MENUITEM_SETTING(usb_hid, &global_settings.usb_hid, NULL);
257MENUITEM_SETTING(usb_keypad_mode, &global_settings.usb_keypad_mode, NULL); 257MENUITEM_SETTING(usb_keypad_mode, &global_settings.usb_keypad_mode, NULL);
258#endif 258#endif
259 259
260#ifdef HAVE_MORSE_INPUT
261MENUITEM_SETTING(morse_input, &global_settings.morse_input, NULL);
262#endif
263
260#ifdef HAVE_BUTTON_LIGHT 264#ifdef HAVE_BUTTON_LIGHT
261MENUITEM_SETTING(buttonlight_timeout, &global_settings.buttonlight_timeout, NULL); 265MENUITEM_SETTING(buttonlight_timeout, &global_settings.buttonlight_timeout, NULL);
262#endif 266#endif
@@ -280,6 +284,9 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
280#endif 284#endif
281 &poweroff, 285 &poweroff,
282 &limits_menu, 286 &limits_menu,
287#ifdef HAVE_MORSE_INPUT
288 &morse_input,
289#endif
283#if CONFIG_CODEC == MAS3507D 290#if CONFIG_CODEC == MAS3507D
284 &line_in, 291 &line_in,
285#endif 292#endif
@@ -287,7 +294,7 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
287 &car_adapter_mode, 294 &car_adapter_mode,
288#endif 295#endif
289#ifdef IPOD_ACCESSORY_PROTOCOL 296#ifdef IPOD_ACCESSORY_PROTOCOL
290 &serial_bitrate, 297 &serial_bitrate,
291#endif 298#endif
292#ifdef HAVE_ACCESSORY_SUPPLY 299#ifdef HAVE_ACCESSORY_SUPPLY
293 &accessory_supply, 300 &accessory_supply,
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c
index e6a3c927e3..1e9e8f32ab 100644
--- a/apps/recorder/keyboard.c
+++ b/apps/recorder/keyboard.c
@@ -49,45 +49,47 @@
49#define DEFAULT_MARGIN 6 49#define DEFAULT_MARGIN 6
50#define KBD_BUF_SIZE 500 50#define KBD_BUF_SIZE 500
51 51
52#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 52#if (CONFIG_KEYPAD == ONDIO_PAD) \
53 (CONFIG_KEYPAD == IRIVER_H300_PAD) 53 || (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
54#define KBD_CURSOR_KEYS /* certain key combos move the cursor even if not 54 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
55 in line edit mode */ 55 || (CONFIG_KEYPAD == IPOD_4G_PAD) \
56#define KBD_MODES /* I-Rivers can use picker, line edit and cursor keys */ 56 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
57#define KBD_MORSE_INPUT /* I-Rivers have a Morse input mode */ 57 || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \
58 58 || (CONFIG_KEYPAD == IAUDIO_M3_PAD) \
59#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ 59 || (CONFIG_KEYPAD == IRIVER_H10_PAD)
60#define KBD_MODES /* Ondio uses 2 modes, picker and line edit */ 60/* no key combos to move the cursor if not in line edit mode */
61 61#define KBD_MODES /* uses 2 modes, picker and line edit */
62#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \ 62
63 || (CONFIG_KEYPAD == IPOD_4G_PAD) 63#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) \
64#define KBD_MODES /* iPod uses 2 modes, picker and line edit */ 64 || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
65#define KBD_MORSE_INPUT 65 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
66 66 || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
67#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 67 || (CONFIG_KEYPAD == SANSA_E200_PAD) \
68#define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */ 68 || (CONFIG_KEYPAD == SANSA_FUZE_PAD) \
69 69 || (CONFIG_KEYPAD == SANSA_C200_PAD) \
70#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) || (CONFIG_KEYPAD == IAUDIO_M3_PAD) 70 || (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
71#define KBD_MODES /* iAudios use 2 modes, picker and line edit */ 71/* certain key combos move the cursor even if not in line edit mode */
72
73#elif CONFIG_KEYPAD == IRIVER_H10_PAD
74#define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */
75#define KBD_MORSE_INPUT
76
77#elif CONFIG_KEYPAD == GIGABEAT_PAD
78#define KBD_CURSOR_KEYS 72#define KBD_CURSOR_KEYS
79#define KBD_MODES 73#define KBD_MODES /* uses 2 modes, picker and line edit */
80#define KBD_MORSE_INPUT
81 74
82#elif CONFIG_KEYPAD == SANSA_E200_PAD \ 75#else
83 || CONFIG_KEYPAD == SANSA_FUZE_PAD \ 76#define KBD_CURSOR_KEYS /* certain keys move the cursor, no line edit mode */
84 || CONFIG_KEYPAD == SANSA_C200_PAD \ 77#endif
85 || CONFIG_KEYPAD == SAMSUNG_YH_PAD
86#define KBD_CURSOR_KEYS
87#define KBD_MODES
88 78
89#elif CONFIG_KEYPAD == MROBE100_PAD 79#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \
90#define KBD_MORSE_INPUT 80 || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
81 || (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
82 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
83 || (CONFIG_KEYPAD == IPOD_4G_PAD) \
84 || (CONFIG_KEYPAD == IRIVER_H10_PAD) \
85 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
86 || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
87 || (CONFIG_KEYPAD == MROBE100_PAD) \
88 || (CONFIG_KEYPAD == SANSA_E200_PAD) \
89 || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \
90 || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD)
91/* certain key combos toggle input mode between keyboard input and Morse input */
92#define KBD_TOGGLE_INPUT
91#endif 93#endif
92 94
93struct keyboard_parameters 95struct keyboard_parameters
@@ -124,7 +126,7 @@ struct keyboard_parameters
124static struct keyboard_parameters kbd_param[NB_SCREENS]; 126static struct keyboard_parameters kbd_param[NB_SCREENS];
125static bool kbd_loaded = false; 127static bool kbd_loaded = false;
126 128
127#ifdef KBD_MORSE_INPUT 129#ifdef HAVE_MORSE_INPUT
128/* FIXME: We should put this to a configuration file. */ 130/* FIXME: We should put this to a configuration file. */
129static const char *morse_alphabets = 131static const char *morse_alphabets =
130 "abcdefghijklmnopqrstuvwxyz1234567890,.?-@ "; 132 "abcdefghijklmnopqrstuvwxyz1234567890,.?-@ ";
@@ -134,7 +136,6 @@ static const unsigned char morse_codes[] = {
134 0x2f,0x27,0x23,0x21,0x20,0x30,0x38,0x3c,0x3e,0x3f, 136 0x2f,0x27,0x23,0x21,0x20,0x30,0x38,0x3c,0x3e,0x3f,
135 0x73,0x55,0x4c,0x61,0x5a,0x80 }; 137 0x73,0x55,0x4c,0x61,0x5a,0x80 };
136 138
137static bool morse_mode = false;
138#endif 139#endif
139 140
140/* Loads a custom keyboard into memory 141/* Loads a custom keyboard into memory
@@ -306,7 +307,8 @@ int kbd_input(char* text, int buflen)
306 unsigned char *utf8; 307 unsigned char *utf8;
307 bool cur_blink = true; /* Cursor on/off flag */ 308 bool cur_blink = true; /* Cursor on/off flag */
308 int ret = 0; /* assume success */ 309 int ret = 0; /* assume success */
309#ifdef KBD_MORSE_INPUT 310#ifdef HAVE_MORSE_INPUT
311 bool morse_mode = global_settings.morse_input;
310 bool morse_reading = false; 312 bool morse_reading = false;
311 unsigned char morse_code = 0; 313 unsigned char morse_code = 0;
312 int morse_tick = 0; 314 int morse_tick = 0;
@@ -534,10 +536,10 @@ int kbd_input(char* text, int buflen)
534 pm->main_x = 0; 536 pm->main_x = 0;
535 pm->keyboard_margin -= pm->keyboard_margin/2; 537 pm->keyboard_margin -= pm->keyboard_margin/2;
536 538
537#ifdef KBD_MORSE_INPUT 539#ifdef HAVE_MORSE_INPUT
538 pm->old_main_y = pm->main_y; 540 pm->old_main_y = pm->main_y;
539 if (morse_mode) 541 if (morse_mode)
540 pm->main_y = sc_h - pm->font_h; 542 pm->main_y = sc_h - pm->font_h - BUTTONBAR_HEIGHT;
541#endif 543#endif
542 } 544 }
543 545
@@ -567,7 +569,7 @@ int kbd_input(char* text, int buflen)
567 FOR_NB_SCREENS(l) 569 FOR_NB_SCREENS(l)
568 screens[l].clear_display(); 570 screens[l].clear_display();
569 571
570#ifdef KBD_MORSE_INPUT 572#ifdef HAVE_MORSE_INPUT
571 if (morse_mode) 573 if (morse_mode)
572 { 574 {
573 FOR_NB_SCREENS(l) 575 FOR_NB_SCREENS(l)
@@ -615,7 +617,7 @@ int kbd_input(char* text, int buflen)
615 } 617 }
616 } 618 }
617 else 619 else
618#endif /* KBD_MORSE_INPUT */ 620#endif /* HAVE_MORSE_INPUT */
619 { 621 {
620 /* draw page */ 622 /* draw page */
621 FOR_NB_SCREENS(l) 623 FOR_NB_SCREENS(l)
@@ -752,7 +754,7 @@ int kbd_input(char* text, int buflen)
752 sc->getwidth(), pm->font_h + 2); 754 sc->getwidth(), pm->font_h + 2);
753 else /* highlight the key that has focus */ 755 else /* highlight the key that has focus */
754#endif 756#endif
755#ifdef KBD_MORSE_INPUT 757#ifdef HAVE_MORSE_INPUT
756 if(!morse_mode) 758 if(!morse_mode)
757#endif 759#endif
758 sc->fillrect(pm->font_w*pm->x, 760 sc->fillrect(pm->font_w*pm->x,
@@ -771,14 +773,14 @@ int kbd_input(char* text, int buflen)
771 pm = &param[button_screen]; 773 pm = &param[button_screen];
772 sc = &screens[button_screen]; 774 sc = &screens[button_screen];
773 775
774#if defined(KBD_MODES) || defined(KBD_MORSE_INPUT) 776#if defined(KBD_MODES) || defined(HAVE_MORSE_INPUT)
775 /* Remap some buttons to allow to move 777 /* Remap some buttons to allow to move
776 * cursor in line edit mode and morse mode. */ 778 * cursor in line edit mode and morse mode. */
777#if defined(KBD_MODES) && defined(KBD_MORSE_INPUT) 779#if defined(KBD_MODES) && defined(HAVE_MORSE_INPUT)
778 if (pm->line_edit || morse_mode) 780 if (pm->line_edit || morse_mode)
779#elif defined(KBD_MODES) 781#elif defined(KBD_MODES)
780 if (pm->line_edit) 782 if (pm->line_edit)
781#else /* defined(KBD_MORSE_INPUT) */ 783#else /* defined(HAVE_MORSE_INPUT) */
782 if (morse_mode) 784 if (morse_mode)
783#endif 785#endif
784 { 786 {
@@ -787,7 +789,7 @@ int kbd_input(char* text, int buflen)
787 if (button == ACTION_KBD_RIGHT) 789 if (button == ACTION_KBD_RIGHT)
788 button = ACTION_KBD_CURSOR_RIGHT; 790 button = ACTION_KBD_CURSOR_RIGHT;
789 } 791 }
790#endif /* defined(KBD_MODES) || defined(KBD_MORSE_INPUT) */ 792#endif /* defined(KBD_MODES) || defined(HAVE_MORSE_INPUT) */
791 793
792 switch ( button ) 794 switch ( button )
793 { 795 {
@@ -798,7 +800,7 @@ int kbd_input(char* text, int buflen)
798 800
799 case ACTION_KBD_PAGE_FLIP: 801 case ACTION_KBD_PAGE_FLIP:
800 { 802 {
801#ifdef KBD_MORSE_INPUT 803#ifdef HAVE_MORSE_INPUT
802 if (morse_mode) 804 if (morse_mode)
803 break; 805 break;
804#endif 806#endif
@@ -810,7 +812,7 @@ int kbd_input(char* text, int buflen)
810 break; 812 break;
811 } 813 }
812 814
813#ifdef KBD_MORSE_INPUT 815#if defined(HAVE_MORSE_INPUT) && defined(KBD_TOGGLE_INPUT)
814 case ACTION_KBD_MORSE_INPUT: 816 case ACTION_KBD_MORSE_INPUT:
815 morse_mode = !morse_mode; 817 morse_mode = !morse_mode;
816 818
@@ -822,7 +824,7 @@ int kbd_input(char* text, int buflen)
822 if (morse_mode) 824 if (morse_mode)
823 { 825 {
824 pm->old_main_y = pm->main_y; 826 pm->old_main_y = pm->main_y;
825 pm->main_y = sc->getheight() - pm->font_h; 827 pm->main_y = sc->getheight() - pm->font_h - BUTTONBAR_HEIGHT;
826 } 828 }
827 else 829 else
828 { 830 {
@@ -831,7 +833,7 @@ int kbd_input(char* text, int buflen)
831 } 833 }
832 /* FIXME: We should talk something like Morse mode.. */ 834 /* FIXME: We should talk something like Morse mode.. */
833 break; 835 break;
834#endif /* KBD_MORSE_INPUT */ 836#endif /* KBD_TOGGLE_INPUT */
835 837
836 case ACTION_KBD_RIGHT: 838 case ACTION_KBD_RIGHT:
837 if (++pm->x >= pm->max_chars) 839 if (++pm->x >= pm->max_chars)
@@ -864,7 +866,7 @@ int kbd_input(char* text, int buflen)
864 break; 866 break;
865 867
866 case ACTION_KBD_DOWN: 868 case ACTION_KBD_DOWN:
867#ifdef KBD_MORSE_INPUT 869#ifdef HAVE_MORSE_INPUT
868#ifdef KBD_MODES 870#ifdef KBD_MODES
869 if (morse_mode) 871 if (morse_mode)
870 { 872 {
@@ -877,7 +879,7 @@ int kbd_input(char* text, int buflen)
877 if (morse_mode) 879 if (morse_mode)
878 break; 880 break;
879#endif 881#endif
880#endif /* KBD_MORSE_INPUT */ 882#endif /* HAVE_MORSE_INPUT */
881 { 883 {
882#ifdef KBD_MODES 884#ifdef KBD_MODES
883 if (pm->line_edit) 885 if (pm->line_edit)
@@ -907,7 +909,7 @@ int kbd_input(char* text, int buflen)
907 break; 909 break;
908 910
909 case ACTION_KBD_UP: 911 case ACTION_KBD_UP:
910#ifdef KBD_MORSE_INPUT 912#ifdef HAVE_MORSE_INPUT
911#ifdef KBD_MODES 913#ifdef KBD_MODES
912 if (morse_mode) 914 if (morse_mode)
913 { 915 {
@@ -920,7 +922,7 @@ int kbd_input(char* text, int buflen)
920 if (morse_mode) 922 if (morse_mode)
921 break; 923 break;
922#endif 924#endif
923#endif /* KBD_MORSE_INPUT */ 925#endif /* HAVE_MORSE_INPUT */
924 { 926 {
925#ifdef KBD_MODES 927#ifdef KBD_MODES
926 if (pm->line_edit) 928 if (pm->line_edit)
@@ -955,7 +957,7 @@ int kbd_input(char* text, int buflen)
955 done = true; 957 done = true;
956 break; 958 break;
957 959
958#ifdef KBD_MORSE_INPUT 960#ifdef HAVE_MORSE_INPUT
959 case ACTION_KBD_MORSE_SELECT: 961 case ACTION_KBD_MORSE_SELECT:
960 if (morse_mode && morse_reading) 962 if (morse_mode && morse_reading)
961 { 963 {
@@ -965,10 +967,10 @@ int kbd_input(char* text, int buflen)
965 } 967 }
966 968
967 break; 969 break;
968#endif /* KBD_MORSE_INPUT */ 970#endif /* HAVE_MORSE_INPUT */
969 971
970 case ACTION_KBD_SELECT: 972 case ACTION_KBD_SELECT:
971#ifdef KBD_MORSE_INPUT 973#ifdef HAVE_MORSE_INPUT
972#ifdef KBD_MODES 974#ifdef KBD_MODES
973 if (morse_mode && !pm->line_edit) 975 if (morse_mode && !pm->line_edit)
974#else 976#else
@@ -984,7 +986,7 @@ int kbd_input(char* text, int buflen)
984 } 986 }
985 break; 987 break;
986 } 988 }
987#endif /* KBD_MORSE_INPUT */ 989#endif /* HAVE_MORSE_INPUT */
988 990
989 /* inserts the selected char */ 991 /* inserts the selected char */
990#ifdef KBD_MODES 992#ifdef KBD_MODES
@@ -1088,7 +1090,7 @@ int kbd_input(char* text, int buflen)
1088 /* speak revised text */ 1090 /* speak revised text */
1089 break; 1091 break;
1090 1092
1091#if !defined (KBD_MODES) || defined (KBD_CURSOR_KEYS) 1093#ifdef KBD_CURSOR_KEYS
1092 case ACTION_KBD_BACKSPACE: 1094 case ACTION_KBD_BACKSPACE:
1093 if (pm->hangul) 1095 if (pm->hangul)
1094 { 1096 {
@@ -1114,7 +1116,7 @@ int kbd_input(char* text, int buflen)
1114 if (global_settings.talk_menu) /* voice UI? */ 1116 if (global_settings.talk_menu) /* voice UI? */
1115 talk_spell(text, false); /* speak revised text */ 1117 talk_spell(text, false); /* speak revised text */
1116 break; 1118 break;
1117#endif /* !defined (KBD_MODES) || defined (KBD_CURSOR_KEYS) */ 1119#endif /* KBD_CURSOR_KEYS */
1118 1120
1119 case ACTION_KBD_CURSOR_RIGHT: 1121 case ACTION_KBD_CURSOR_RIGHT:
1120 pm->hangul = false; 1122 pm->hangul = false;
@@ -1145,7 +1147,7 @@ int kbd_input(char* text, int buflen)
1145 break; 1147 break;
1146 1148
1147 case BUTTON_NONE: 1149 case BUTTON_NONE:
1148#ifdef KBD_MORSE_INPUT 1150#ifdef HAVE_MORSE_INPUT
1149 if (morse_reading) 1151 if (morse_reading)
1150 { 1152 {
1151 int j; 1153 int j;
@@ -1172,7 +1174,7 @@ int kbd_input(char* text, int buflen)
1172 if (global_settings.talk_menu) /* voice UI? */ 1174 if (global_settings.talk_menu) /* voice UI? */
1173 talk_spell(text, false); /* speak revised text */ 1175 talk_spell(text, false); /* speak revised text */
1174 } 1176 }
1175#endif /* KBD_MORSE_INPUT */ 1177#endif /* HAVE_MORSE_INPUT */
1176 break; 1178 break;
1177 1179
1178 default: 1180 default:
@@ -1198,6 +1200,14 @@ int kbd_input(char* text, int buflen)
1198 if (ret < 0) 1200 if (ret < 0)
1199 splash(HZ/2, ID2P(LANG_CANCEL)); 1201 splash(HZ/2, ID2P(LANG_CANCEL));
1200 1202
1203#ifdef HAVE_MORSE_INPUT
1204 if(global_settings.morse_input != morse_mode)
1205 {
1206 global_settings.morse_input = morse_mode;
1207 settings_save();
1208 }
1209#endif /* HAVE_MORSE_INPUT */
1210
1201 FOR_NB_SCREENS(l) 1211 FOR_NB_SCREENS(l)
1202 screens[l].setfont(FONT_UI); 1212 screens[l].setfont(FONT_UI);
1203 viewportmanager_set_statusbar(oldbars); 1213 viewportmanager_set_statusbar(oldbars);
diff --git a/apps/settings.h b/apps/settings.h
index 880078885f..eba592aca8 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -798,6 +798,10 @@ struct user_settings
798 int compressor_release_time; 798 int compressor_release_time;
799#endif 799#endif
800 800
801#ifdef HAVE_MORSE_INPUT
802 bool morse_input; /* text input method setting */
803#endif
804
801}; 805};
802 806
803/** global variables **/ 807/** global variables **/
diff --git a/apps/settings_list.c b/apps/settings_list.c
index b0a1a76b3a..9f290e2a18 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1635,6 +1635,10 @@ const struct settings_list settings[] = {
1635 VIEWPORT_SETTING(remote_ui_vp_config, "remote ui viewport"), 1635 VIEWPORT_SETTING(remote_ui_vp_config, "remote ui viewport"),
1636#endif 1636#endif
1637#endif 1637#endif
1638
1639#ifdef HAVE_MORSE_INPUT
1640 OFFON_SETTING(0, morse_input, LANG_MORSE_INPUT, false, "morse input", NULL),
1641#endif
1638}; 1642};
1639 1643
1640const int nb_settings = sizeof(settings)/sizeof(*settings); 1644const int nb_settings = sizeof(settings)/sizeof(*settings);
diff --git a/firmware/export/config-creativezv.h b/firmware/export/config-creativezv.h
index 5454038f0c..eff5a506c0 100644
--- a/firmware/export/config-creativezv.h
+++ b/firmware/export/config-creativezv.h
@@ -76,6 +76,9 @@
76#define HAVE_HEADPHONE_DETECTION 76#define HAVE_HEADPHONE_DETECTION
77//#define HAVE_TOUCHPAD 77//#define HAVE_TOUCHPAD
78 78
79/* Define this to enable morse code input */
80#define HAVE_MORSE_INPUT
81
79/* Define this if you do software codec */ 82/* Define this if you do software codec */
80#define CONFIG_CODEC SWCODEC 83#define CONFIG_CODEC SWCODEC
81 84
diff --git a/firmware/export/config-creativezvm.h b/firmware/export/config-creativezvm.h
index 37d2eb48cf..d8005bb83d 100644
--- a/firmware/export/config-creativezvm.h
+++ b/firmware/export/config-creativezvm.h
@@ -77,6 +77,9 @@
77#define HAVE_HEADPHONE_DETECTION 77#define HAVE_HEADPHONE_DETECTION
78//#define HAVE_TOUCHPAD 78//#define HAVE_TOUCHPAD
79 79
80/* Define this to enable morse code input */
81#define HAVE_MORSE_INPUT
82
80/* Define this if you do software codec */ 83/* Define this if you do software codec */
81#define CONFIG_CODEC SWCODEC 84#define CONFIG_CODEC SWCODEC
82 85
diff --git a/firmware/export/config-creativezvm60gb.h b/firmware/export/config-creativezvm60gb.h
index e34515ca44..3e95ae7be7 100644
--- a/firmware/export/config-creativezvm60gb.h
+++ b/firmware/export/config-creativezvm60gb.h
@@ -76,6 +76,9 @@
76#define HAVE_HEADPHONE_DETECTION 76#define HAVE_HEADPHONE_DETECTION
77//#define HAVE_TOUCHPAD 77//#define HAVE_TOUCHPAD
78 78
79/* Define this to enable morse code input */
80#define HAVE_MORSE_INPUT
81
79/* Define this if you do software codec */ 82/* Define this if you do software codec */
80#define CONFIG_CODEC SWCODEC 83#define CONFIG_CODEC SWCODEC
81 84
diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h
index dd65e6a37d..687878ce06 100644
--- a/firmware/export/config-e200.h
+++ b/firmware/export/config-e200.h
@@ -73,6 +73,9 @@
73 73
74#define CONFIG_KEYPAD SANSA_E200_PAD 74#define CONFIG_KEYPAD SANSA_E200_PAD
75 75
76/* Define this to enable morse code input */
77#define HAVE_MORSE_INPUT
78
76/* Define this if you do software codec */ 79/* Define this if you do software codec */
77#define CONFIG_CODEC SWCODEC 80#define CONFIG_CODEC SWCODEC
78/* There is no hardware tone control */ 81/* There is no hardware tone control */
diff --git a/firmware/export/config-e200v2.h b/firmware/export/config-e200v2.h
index b4985ecd6d..d42f28ac2f 100644
--- a/firmware/export/config-e200v2.h
+++ b/firmware/export/config-e200v2.h
@@ -73,6 +73,9 @@
73 73
74#define CONFIG_KEYPAD SANSA_E200_PAD 74#define CONFIG_KEYPAD SANSA_E200_PAD
75 75
76/* Define this to enable morse code input */
77#define HAVE_MORSE_INPUT
78
76/* Define this if you do software codec */ 79/* Define this if you do software codec */
77#define CONFIG_CODEC SWCODEC 80#define CONFIG_CODEC SWCODEC
78 81
diff --git a/firmware/export/config-fmrecorder.h b/firmware/export/config-fmrecorder.h
index 97dc52ebb5..d9f3a95f3e 100644
--- a/firmware/export/config-fmrecorder.h
+++ b/firmware/export/config-fmrecorder.h
@@ -48,6 +48,9 @@
48/* define this if you have a Recorder style 10-key keyboard */ 48/* define this if you have a Recorder style 10-key keyboard */
49#define CONFIG_KEYPAD RECORDER_PAD 49#define CONFIG_KEYPAD RECORDER_PAD
50 50
51/* Define this to enable morse code input */
52#define HAVE_MORSE_INPUT
53
51/* define this if you have a real-time clock */ 54/* define this if you have a real-time clock */
52#define CONFIG_RTC RTC_M41ST84W 55#define CONFIG_RTC RTC_M41ST84W
53 56
diff --git a/firmware/export/config-fuze.h b/firmware/export/config-fuze.h
index e9b54e14fd..cc6669af39 100644
--- a/firmware/export/config-fuze.h
+++ b/firmware/export/config-fuze.h
@@ -78,6 +78,9 @@
78 78
79#define CONFIG_KEYPAD SANSA_FUZE_PAD 79#define CONFIG_KEYPAD SANSA_FUZE_PAD
80 80
81/* Define this to enable morse code input */
82#define HAVE_MORSE_INPUT
83
81/* Define this if you do software codec */ 84/* Define this if you do software codec */
82#define CONFIG_CODEC SWCODEC 85#define CONFIG_CODEC SWCODEC
83 86
diff --git a/firmware/export/config-gigabeat-s.h b/firmware/export/config-gigabeat-s.h
index 344c572e40..7f55797a07 100644
--- a/firmware/export/config-gigabeat-s.h
+++ b/firmware/export/config-gigabeat-s.h
@@ -49,10 +49,8 @@
49 49
50#define CONFIG_KEYPAD GIGABEAT_S_PAD 50#define CONFIG_KEYPAD GIGABEAT_S_PAD
51 51
52/* Define keyboard features */ 52/* Define this to enable morse code input */
53#define KBD_CURSOR_KEYS /* allow non-line edit cursor movement */ 53#define HAVE_MORSE_INPUT
54#define KBD_MODES /* enable line edit */
55#define KBD_MORSE_INPUT /* enable morse code input */
56 54
57/* Define this if you do software codec */ 55/* Define this if you do software codec */
58#define CONFIG_CODEC SWCODEC 56#define CONFIG_CODEC SWCODEC
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
index a20a5d87ff..363312a415 100644
--- a/firmware/export/config-gigabeat.h
+++ b/firmware/export/config-gigabeat.h
@@ -65,6 +65,9 @@
65 65
66#define CONFIG_KEYPAD GIGABEAT_PAD 66#define CONFIG_KEYPAD GIGABEAT_PAD
67 67
68/* Define this to enable morse code input */
69#define HAVE_MORSE_INPUT
70
68/* Define this if you do software codec */ 71/* Define this if you do software codec */
69#define CONFIG_CODEC SWCODEC 72#define CONFIG_CODEC SWCODEC
70 73
diff --git a/firmware/export/config-h10.h b/firmware/export/config-h10.h
index 6ad7a8ddc5..cde1b6075e 100644
--- a/firmware/export/config-h10.h
+++ b/firmware/export/config-h10.h
@@ -76,6 +76,9 @@
76 76
77#define CONFIG_KEYPAD IRIVER_H10_PAD 77#define CONFIG_KEYPAD IRIVER_H10_PAD
78 78
79/* Define this to enable morse code input */
80#define HAVE_MORSE_INPUT
81
79/* Define this if you do software codec */ 82/* Define this if you do software codec */
80#define CONFIG_CODEC SWCODEC 83#define CONFIG_CODEC SWCODEC
81 84
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index 520079b8a0..d01ee1f3f9 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -69,6 +69,9 @@
69 69
70#define CONFIG_REMOTE_KEYPAD H100_REMOTE 70#define CONFIG_REMOTE_KEYPAD H100_REMOTE
71 71
72/* Define this to enable morse code input */
73#define HAVE_MORSE_INPUT
74
72/* Define this if you do software codec */ 75/* Define this if you do software codec */
73#define CONFIG_CODEC SWCODEC 76#define CONFIG_CODEC SWCODEC
74 77
diff --git a/firmware/export/config-h10_5gb.h b/firmware/export/config-h10_5gb.h
index e39c6a6bbf..e69f6c2b20 100644
--- a/firmware/export/config-h10_5gb.h
+++ b/firmware/export/config-h10_5gb.h
@@ -59,6 +59,9 @@
59 59
60#define CONFIG_KEYPAD IRIVER_H10_PAD 60#define CONFIG_KEYPAD IRIVER_H10_PAD
61 61
62/* Define this to enable morse code input */
63#define HAVE_MORSE_INPUT
64
62/* Define this if you do software codec */ 65/* Define this if you do software codec */
63#define CONFIG_CODEC SWCODEC 66#define CONFIG_CODEC SWCODEC
64 67
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index da75c60ecf..8751c121cc 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -68,6 +68,9 @@
68 68
69#define CONFIG_REMOTE_KEYPAD H100_REMOTE 69#define CONFIG_REMOTE_KEYPAD H100_REMOTE
70 70
71/* Define this to enable morse code input */
72#define HAVE_MORSE_INPUT
73
71/* Define this if you do software codec */ 74/* Define this if you do software codec */
72#define CONFIG_CODEC SWCODEC 75#define CONFIG_CODEC SWCODEC
73 76
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h
index 09fce49b10..d2348397d2 100644
--- a/firmware/export/config-h300.h
+++ b/firmware/export/config-h300.h
@@ -61,6 +61,9 @@
61 61
62#define CONFIG_REMOTE_KEYPAD H300_REMOTE 62#define CONFIG_REMOTE_KEYPAD H300_REMOTE
63 63
64/* Define this to enable morse code input */
65#define HAVE_MORSE_INPUT
66
64/* Define this if you do software codec */ 67/* Define this if you do software codec */
65#define CONFIG_CODEC SWCODEC 68#define CONFIG_CODEC SWCODEC
66 69
diff --git a/firmware/export/config-hdd1630.h b/firmware/export/config-hdd1630.h
index f44f7d1729..c9a3b035ca 100644
--- a/firmware/export/config-hdd1630.h
+++ b/firmware/export/config-hdd1630.h
@@ -77,6 +77,9 @@
77 77
78#define CONFIG_KEYPAD PHILIPS_HDD1630_PAD 78#define CONFIG_KEYPAD PHILIPS_HDD1630_PAD
79 79
80/* Define this to enable morse code input */
81#define HAVE_MORSE_INPUT
82
80/* define this if the target has volume keys which can be used in the lists */ 83/* define this if the target has volume keys which can be used in the lists */
81#define HAVE_VOLUME_IN_LIST 84#define HAVE_VOLUME_IN_LIST
82 85
diff --git a/firmware/export/config-iaudiom5.h b/firmware/export/config-iaudiom5.h
index 00e07a92cd..03add43dbf 100644
--- a/firmware/export/config-iaudiom5.h
+++ b/firmware/export/config-iaudiom5.h
@@ -83,6 +83,9 @@
83 83
84#define CONFIG_KEYPAD IAUDIO_X5M5_PAD 84#define CONFIG_KEYPAD IAUDIO_X5M5_PAD
85 85
86/* Define this to enable morse code input */
87#define HAVE_MORSE_INPUT
88
86#define AB_REPEAT_ENABLE 1 89#define AB_REPEAT_ENABLE 1
87#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE 90#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE
88 91
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index a6b48b98a8..bafe51f12d 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -85,6 +85,9 @@
85 85
86#define CONFIG_KEYPAD IAUDIO_X5M5_PAD 86#define CONFIG_KEYPAD IAUDIO_X5M5_PAD
87 87
88/* Define this to enable morse code input */
89#define HAVE_MORSE_INPUT
90
88#define AB_REPEAT_ENABLE 1 91#define AB_REPEAT_ENABLE 1
89#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE 92#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE
90 93
diff --git a/firmware/export/config-ipod1g2g.h b/firmware/export/config-ipod1g2g.h
index 835b75bd85..cde745e874 100644
--- a/firmware/export/config-ipod1g2g.h
+++ b/firmware/export/config-ipod1g2g.h
@@ -77,6 +77,9 @@
77 77
78#define HAVE_SCROLLWHEEL 78#define HAVE_SCROLLWHEEL
79 79
80/* Define this to enable morse code input */
81#define HAVE_MORSE_INPUT
82
80/* Define this if you do software codec */ 83/* Define this if you do software codec */
81#define CONFIG_CODEC SWCODEC 84#define CONFIG_CODEC SWCODEC
82 85
diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h
index 7cab8846ef..e82cc92f56 100644
--- a/firmware/export/config-ipod3g.h
+++ b/firmware/export/config-ipod3g.h
@@ -78,6 +78,9 @@
78 78
79#define HAVE_SCROLLWHEEL 79#define HAVE_SCROLLWHEEL
80 80
81/* Define this to enable morse code input */
82#define HAVE_MORSE_INPUT
83
81/* Define this if you do software codec */ 84/* Define this if you do software codec */
82#define CONFIG_CODEC SWCODEC 85#define CONFIG_CODEC SWCODEC
83 86
diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h
index 6195e0c1b6..c00a6788c6 100644
--- a/firmware/export/config-ipod4g.h
+++ b/firmware/export/config-ipod4g.h
@@ -76,6 +76,9 @@
76 76
77#define CONFIG_KEYPAD IPOD_4G_PAD 77#define CONFIG_KEYPAD IPOD_4G_PAD
78 78
79/* Define this to enable morse code input */
80#define HAVE_MORSE_INPUT
81
79/* Define this if you do software codec */ 82/* Define this if you do software codec */
80#define CONFIG_CODEC SWCODEC 83#define CONFIG_CODEC SWCODEC
81 84
diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h
index 7c7897b67b..751522d47b 100644
--- a/firmware/export/config-ipodcolor.h
+++ b/firmware/export/config-ipodcolor.h
@@ -60,6 +60,9 @@
60 60
61#define CONFIG_KEYPAD IPOD_4G_PAD 61#define CONFIG_KEYPAD IPOD_4G_PAD
62 62
63/* Define this to enable morse code input */
64#define HAVE_MORSE_INPUT
65
63/* Define this if you do software codec */ 66/* Define this if you do software codec */
64#define CONFIG_CODEC SWCODEC 67#define CONFIG_CODEC SWCODEC
65 68
diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h
index be3ab2bc96..129829ffbb 100644
--- a/firmware/export/config-ipodmini.h
+++ b/firmware/export/config-ipodmini.h
@@ -77,6 +77,9 @@
77 77
78#define HAVE_SCROLLWHEEL 78#define HAVE_SCROLLWHEEL
79 79
80/* Define this to enable morse code input */
81#define HAVE_MORSE_INPUT
82
80/* Define this if you do software codec */ 83/* Define this if you do software codec */
81#define CONFIG_CODEC SWCODEC 84#define CONFIG_CODEC SWCODEC
82 85
diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h
index 53476b177f..8087269485 100644
--- a/firmware/export/config-ipodmini2g.h
+++ b/firmware/export/config-ipodmini2g.h
@@ -75,6 +75,9 @@
75 75
76#define CONFIG_KEYPAD IPOD_4G_PAD 76#define CONFIG_KEYPAD IPOD_4G_PAD
77 77
78/* Define this to enable morse code input */
79#define HAVE_MORSE_INPUT
80
78/* Define this if you do software codec */ 81/* Define this if you do software codec */
79#define CONFIG_CODEC SWCODEC 82#define CONFIG_CODEC SWCODEC
80 83
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index f1a4d6a65e..68ed152cda 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -60,6 +60,9 @@
60 60
61#define CONFIG_KEYPAD IPOD_4G_PAD 61#define CONFIG_KEYPAD IPOD_4G_PAD
62 62
63/* Define this to enable morse code input */
64#define HAVE_MORSE_INPUT
65
63/* Define this if you do software codec */ 66/* Define this if you do software codec */
64#define CONFIG_CODEC SWCODEC 67#define CONFIG_CODEC SWCODEC
65 68
diff --git a/firmware/export/config-ipodnano2g.h b/firmware/export/config-ipodnano2g.h
index bcc98e0da3..2e044335da 100644
--- a/firmware/export/config-ipodnano2g.h
+++ b/firmware/export/config-ipodnano2g.h
@@ -94,6 +94,9 @@
94//#define AB_REPEAT_ENABLE 1 94//#define AB_REPEAT_ENABLE 1
95//#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE 95//#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE
96 96
97/* Define this to enable morse code input */
98#define HAVE_MORSE_INPUT
99
97/* Define this if you do software codec */ 100/* Define this if you do software codec */
98#define CONFIG_CODEC SWCODEC 101#define CONFIG_CODEC SWCODEC
99 102
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 9762e71a73..f00de9cbfd 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -62,6 +62,9 @@
62 62
63#define CONFIG_KEYPAD IPOD_4G_PAD 63#define CONFIG_KEYPAD IPOD_4G_PAD
64 64
65/* Define this to enable morse code input */
66#define HAVE_MORSE_INPUT
67
65/* Define this if you do software codec */ 68/* Define this if you do software codec */
66#define CONFIG_CODEC SWCODEC 69#define CONFIG_CODEC SWCODEC
67 70
diff --git a/firmware/export/config-m200.h b/firmware/export/config-m200.h
index 59f5ad7cfb..0f071e18ab 100644
--- a/firmware/export/config-m200.h
+++ b/firmware/export/config-m200.h
@@ -58,6 +58,9 @@
58/* define this to indicate your device's keypad */ 58/* define this to indicate your device's keypad */
59#define CONFIG_KEYPAD SANSA_M200_PAD 59#define CONFIG_KEYPAD SANSA_M200_PAD
60 60
61/* Define this to enable morse code input */
62#define HAVE_MORSE_INPUT
63
61/* define this if you have a real-time clock */ 64/* define this if you have a real-time clock */
62#define CONFIG_RTC RTC_TCC77X 65#define CONFIG_RTC RTC_TCC77X
63 66
diff --git a/firmware/export/config-m200v4.h b/firmware/export/config-m200v4.h
index 13dcec92ff..af9f1aedc6 100644
--- a/firmware/export/config-m200v4.h
+++ b/firmware/export/config-m200v4.h
@@ -61,6 +61,9 @@
61/* define this to indicate your device's keypad */ 61/* define this to indicate your device's keypad */
62#define CONFIG_KEYPAD SANSA_M200_PAD 62#define CONFIG_KEYPAD SANSA_M200_PAD
63 63
64/* Define this to enable morse code input */
65#define HAVE_MORSE_INPUT
66
64/* define this if you have a real-time clock */ 67/* define this if you have a real-time clock */
65#ifndef BOOTLOADER 68#ifndef BOOTLOADER
66#define CONFIG_RTC RTC_AS3514 69#define CONFIG_RTC RTC_AS3514
diff --git a/firmware/export/config-mrobe100.h b/firmware/export/config-mrobe100.h
index 5a2790062d..90419914b2 100644
--- a/firmware/export/config-mrobe100.h
+++ b/firmware/export/config-mrobe100.h
@@ -64,6 +64,9 @@
64#define CONFIG_KEYPAD MROBE100_PAD 64#define CONFIG_KEYPAD MROBE100_PAD
65#define CONFIG_REMOTE_KEYPAD MROBE_REMOTE 65#define CONFIG_REMOTE_KEYPAD MROBE_REMOTE
66 66
67/* Define this to enable morse code input */
68#define HAVE_MORSE_INPUT
69
67/* Define this if you do software codec */ 70/* Define this if you do software codec */
68#define CONFIG_CODEC SWCODEC 71#define CONFIG_CODEC SWCODEC
69 72
diff --git a/firmware/export/config-mrobe500.h b/firmware/export/config-mrobe500.h
index 82ba8a8e83..96e25c9247 100644
--- a/firmware/export/config-mrobe500.h
+++ b/firmware/export/config-mrobe500.h
@@ -138,6 +138,9 @@
138#define HAVE_TOUCHSCREEN 138#define HAVE_TOUCHSCREEN
139#define HAVE_BUTTON_DATA 139#define HAVE_BUTTON_DATA
140 140
141/* Define this to enable morse code input */
142#define HAVE_MORSE_INPUT
143
141/* define this if the target has volume keys which can be used in the lists */ 144/* define this if the target has volume keys which can be used in the lists */
142#define HAVE_VOLUME_IN_LIST 145#define HAVE_VOLUME_IN_LIST
143 146
diff --git a/firmware/export/config-recorder.h b/firmware/export/config-recorder.h
index 88ff2c2006..ef9f523c49 100644
--- a/firmware/export/config-recorder.h
+++ b/firmware/export/config-recorder.h
@@ -48,6 +48,9 @@
48/* define this if you have the Recorder's 10-key keyboard */ 48/* define this if you have the Recorder's 10-key keyboard */
49#define CONFIG_KEYPAD RECORDER_PAD 49#define CONFIG_KEYPAD RECORDER_PAD
50 50
51/* Define this to enable morse code input */
52#define HAVE_MORSE_INPUT
53
51/* define this if you have a real-time clock */ 54/* define this if you have a real-time clock */
52#define CONFIG_RTC RTC_M41ST84W 55#define CONFIG_RTC RTC_M41ST84W
53 56
diff --git a/firmware/export/config-recorderv2.h b/firmware/export/config-recorderv2.h
index 6a5564487e..c530fa5815 100644
--- a/firmware/export/config-recorderv2.h
+++ b/firmware/export/config-recorderv2.h
@@ -48,6 +48,9 @@
48/* define this if you have a Recorder style 10-key keyboard */ 48/* define this if you have a Recorder style 10-key keyboard */
49#define CONFIG_KEYPAD RECORDER_PAD 49#define CONFIG_KEYPAD RECORDER_PAD
50 50
51/* Define this to enable morse code input */
52#define HAVE_MORSE_INPUT
53
51/* define this if you have a real-time clock */ 54/* define this if you have a real-time clock */
52#define CONFIG_RTC RTC_M41ST84W 55#define CONFIG_RTC RTC_M41ST84W
53 56
diff --git a/firmware/export/config-sa9200.h b/firmware/export/config-sa9200.h
index ce233184cb..d9b9462880 100644
--- a/firmware/export/config-sa9200.h
+++ b/firmware/export/config-sa9200.h
@@ -62,6 +62,9 @@
62 62
63#define CONFIG_KEYPAD PHILIPS_SA9200_PAD 63#define CONFIG_KEYPAD PHILIPS_SA9200_PAD
64 64
65/* Define this to enable morse code input */
66#define HAVE_MORSE_INPUT
67
65/* define this if the target has volume keys which can be used in the lists */ 68/* define this if the target has volume keys which can be used in the lists */
66#define HAVE_VOLUME_IN_LIST 69#define HAVE_VOLUME_IN_LIST
67 70
diff --git a/firmware/export/config-view.h b/firmware/export/config-view.h
index 7b13bf74ba..4111b8380a 100644
--- a/firmware/export/config-view.h
+++ b/firmware/export/config-view.h
@@ -74,6 +74,9 @@
74/* The only difference is that the power/hold is on the left instead of right on Fuze */ 74/* The only difference is that the power/hold is on the left instead of right on Fuze */
75#define CONFIG_KEYPAD SANSA_FUZE_PAD 75#define CONFIG_KEYPAD SANSA_FUZE_PAD
76 76
77/* Define this to enable morse code input */
78#define HAVE_MORSE_INPUT
79
77/* Define this if you do software codec */ 80/* Define this if you do software codec */
78#define CONFIG_CODEC SWCODEC 81#define CONFIG_CODEC SWCODEC
79/* There is no hardware tone control */ 82/* There is no hardware tone control */