summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/features.txt3
-rw-r--r--apps/lang/english.lang51
-rw-r--r--apps/main.c3
-rw-r--r--apps/menus/settings_menu.c19
-rw-r--r--apps/settings.c4
-rw-r--r--apps/settings.h4
-rw-r--r--apps/settings_list.c9
7 files changed, 87 insertions, 6 deletions
diff --git a/apps/features.txt b/apps/features.txt
index b510136a33..af4b18648e 100644
--- a/apps/features.txt
+++ b/apps/features.txt
@@ -192,3 +192,6 @@ usbstack
192wheel_acceleration 192wheel_acceleration
193#endif 193#endif
194 194
195#if defined(HAVE_TOUCHSCREEN)
196touchscreen
197#endif
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 8971cfb0a9..b2f08222ce 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12403,3 +12403,54 @@
12403 speaker: "Enable Speaker" 12403 speaker: "Enable Speaker"
12404 </voice> 12404 </voice>
12405</phrase> 12405</phrase>
12406<phrase>
12407 id: LANG_TOUCHSCREEN_MODE
12408 desc: in Settings -> General -> System menu
12409 user: core
12410 <source>
12411 *: none
12412 touchscreen: "Touchscreen Mode"
12413 </source>
12414 <dest>
12415 *: none
12416 touchscreen: "Touchscreen Mode"
12417 </dest>
12418 <voice>
12419 *: none
12420 touchscreen: "Touchscreen Mode"
12421 </voice>
12422</phrase>
12423<phrase>
12424 id: LANG_TOUCHSCREEN_GRID
12425 desc: in Settings -> General -> System menu
12426 user: core
12427 <source>
12428 *: none
12429 touchscreen: "3x3 Grid"
12430 </source>
12431 <dest>
12432 *: none
12433 touchscreen: "3x3 Grid"
12434 </dest>
12435 <voice>
12436 *: none
12437 touchscreen: "3 by 3 grid"
12438 </voice>
12439</phrase>
12440<phrase>
12441 id: LANG_TOUCHSCREEN_POINT
12442 desc: in Settings -> General -> System menu
12443 user: core
12444 <source>
12445 *: none
12446 touchscreen: "Absolute Point"
12447 </source>
12448 <dest>
12449 *: none
12450 touchscreen: "Absolute Point"
12451 </dest>
12452 <voice>
12453 *: none
12454 touchscreen: "Absolute Point"
12455 </voice>
12456</phrase> \ No newline at end of file
diff --git a/apps/main.c b/apps/main.c
index 20cec9bbfa..54ff191a3a 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -136,9 +136,6 @@ static void app_main(void)
136 screens[i].update(); 136 screens[i].update();
137 } 137 }
138 tree_gui_init(); 138 tree_gui_init();
139#ifdef HAVE_TOUCHSCREEN
140 touchscreen_set_mode(TOUCHSCREEN_BUTTON);
141#endif
142 viewportmanager_set_statusbar(VP_SB_ALLSCREENS); 139 viewportmanager_set_statusbar(VP_SB_ALLSCREENS);
143 add_event(GUI_EVENT_STATUSBAR_TOGGLE, false, 140 add_event(GUI_EVENT_STATUSBAR_TOGGLE, false,
144 viewportmanager_statusbar_changed); 141 viewportmanager_statusbar_changed);
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index 73d2463c36..56a0178000 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -265,6 +265,20 @@ MENUITEM_SETTING(buttonlight_brightness, &global_settings.buttonlight_brightness
265MENUITEM_SETTING(touchpad_sensitivity, &global_settings.touchpad_sensitivity, NULL); 265MENUITEM_SETTING(touchpad_sensitivity, &global_settings.touchpad_sensitivity, NULL);
266#endif 266#endif
267 267
268#ifdef HAVE_TOUCHSCREEN
269static int touch_mode_callback(int action,const struct menu_item_ex *this_item)
270{
271 (void)this_item;
272 switch (action)
273 {
274 case ACTION_EXIT_MENUITEM: /* on exit */
275 touchscreen_set_mode(global_settings.touch_mode);
276 break;
277 }
278 return action;
279}
280MENUITEM_SETTING(touch_mode, &global_settings.touch_mode, touch_mode_callback);
281#endif
268 282
269MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), 283MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
270 0, Icon_System_menu, 284 0, Icon_System_menu,
@@ -284,7 +298,7 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
284 &car_adapter_mode, 298 &car_adapter_mode,
285#endif 299#endif
286#ifdef IPOD_ACCESSORY_PROTOCOL 300#ifdef IPOD_ACCESSORY_PROTOCOL
287 &serial_bitrate, 301 &serial_bitrate,
288#endif 302#endif
289#ifdef HAVE_ACCESSORY_SUPPLY 303#ifdef HAVE_ACCESSORY_SUPPLY
290 &accessory_supply, 304 &accessory_supply,
@@ -301,6 +315,9 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
301#ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING 315#ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING
302 &touchpad_sensitivity, 316 &touchpad_sensitivity,
303#endif 317#endif
318#ifdef HAVE_TOUCHSCREEN
319 &touch_mode,
320#endif
304 ); 321 );
305 322
306/* SYSTEM MENU */ 323/* SYSTEM MENU */
diff --git a/apps/settings.c b/apps/settings.c
index 71c29f67c4..4db4f4405c 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -960,6 +960,10 @@ void settings_apply(bool read_disk)
960 usb_charging_enable(global_settings.usb_charging); 960 usb_charging_enable(global_settings.usb_charging);
961#endif 961#endif
962 962
963#ifdef HAVE_TOUCHSCREEN
964 touchscreen_set_mode(global_settings.touch_mode);
965#endif
966
963 /* This should stay last */ 967 /* This should stay last */
964#if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC 968#if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC
965 enc_global_settings_apply(); 969 enc_global_settings_apply();
diff --git a/apps/settings.h b/apps/settings.h
index c376a46dea..dfd3998d83 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -726,6 +726,10 @@ struct user_settings
726 bool speaker_enabled; 726 bool speaker_enabled;
727#endif 727#endif
728 728
729#ifdef HAVE_TOUCHSCREEN
730 int touch_mode;
731#endif
732
729 /* If values are just added to the end, no need to bump plugin API 733 /* If values are just added to the end, no need to bump plugin API
730 version. */ 734 version. */
731 /* new stuff to be added at the end */ 735 /* new stuff to be added at the end */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 2d9be0873c..6255580991 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -602,8 +602,8 @@ const struct settings_list settings[] = {
602#ifdef IPOD_ACCESSORY_PROTOCOL 602#ifdef IPOD_ACCESSORY_PROTOCOL
603 CHOICE_SETTING(0, serial_bitrate, LANG_SERIAL_BITRATE, 0, "serial bitrate", 603 CHOICE_SETTING(0, serial_bitrate, LANG_SERIAL_BITRATE, 0, "serial bitrate",
604 "auto,9600,19200,38400,57600", iap_bitrate_set, 5, ID2P(LANG_SERIAL_BITRATE_AUTO), 604 "auto,9600,19200,38400,57600", iap_bitrate_set, 5, ID2P(LANG_SERIAL_BITRATE_AUTO),
605 ID2P(LANG_SERIAL_BITRATE_9600),ID2P(LANG_SERIAL_BITRATE_19200), 605 ID2P(LANG_SERIAL_BITRATE_9600),ID2P(LANG_SERIAL_BITRATE_19200),
606 ID2P(LANG_SERIAL_BITRATE_38400),ID2P(LANG_SERIAL_BITRATE_57600)), 606 ID2P(LANG_SERIAL_BITRATE_38400),ID2P(LANG_SERIAL_BITRATE_57600)),
607#endif 607#endif
608#ifdef HAVE_ACCESSORY_SUPPLY 608#ifdef HAVE_ACCESSORY_SUPPLY
609 OFFON_SETTING(0, accessory_supply, LANG_ACCESSORY_SUPPLY, 609 OFFON_SETTING(0, accessory_supply, LANG_ACCESSORY_SUPPLY,
@@ -1462,6 +1462,11 @@ const struct settings_list settings[] = {
1462 OFFON_SETTING(0, speaker_enabled, LANG_ENABLE_SPEAKER, false, "speaker", 1462 OFFON_SETTING(0, speaker_enabled, LANG_ENABLE_SPEAKER, false, "speaker",
1463 audiohw_enable_speaker), 1463 audiohw_enable_speaker),
1464#endif 1464#endif
1465#ifdef HAVE_TOUCHSCREEN
1466 CHOICE_SETTING(0, touch_mode, LANG_TOUCHSCREEN_MODE, TOUCHSCREEN_BUTTON,
1467 "touchscreen mode", "point,grid", NULL, 2,
1468 ID2P(LANG_TOUCHSCREEN_POINT), ID2P(LANG_TOUCHSCREEN_GRID)),
1469#endif
1465}; 1470};
1466 1471
1467const int nb_settings = sizeof(settings)/sizeof(*settings); 1472const int nb_settings = sizeof(settings)/sizeof(*settings);