diff options
Diffstat (limited to 'apps/menus/settings_menu.c')
-rw-r--r-- | apps/menus/settings_menu.c | 83 |
1 files changed, 77 insertions, 6 deletions
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index f42550cc6a..5c99cb4cd4 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c | |||
@@ -49,12 +49,67 @@ | |||
49 | #include "dircache.h" | 49 | #include "dircache.h" |
50 | #endif | 50 | #endif |
51 | #include "folder_select.h" | 51 | #include "folder_select.h" |
52 | 52 | #ifndef HAS_BUTTON_HOLD | |
53 | #include "mask_select.h" | ||
54 | #endif | ||
53 | #if defined(DX50) || defined(DX90) | 55 | #if defined(DX50) || defined(DX90) |
54 | #include "governor-ibasso.h" | 56 | #include "governor-ibasso.h" |
55 | #include "usb-ibasso.h" | 57 | #include "usb-ibasso.h" |
56 | #endif | 58 | #endif |
57 | 59 | ||
60 | #ifndef HAS_BUTTON_HOLD | ||
61 | static int selectivesoftlock_callback(int action, | ||
62 | const struct menu_item_ex *this_item) | ||
63 | { | ||
64 | (void)this_item; | ||
65 | |||
66 | switch (action) | ||
67 | { | ||
68 | case ACTION_STD_MENU: | ||
69 | case ACTION_STD_CANCEL: | ||
70 | case ACTION_EXIT_MENUITEM: | ||
71 | set_selective_softlock_actions( | ||
72 | global_settings.bt_selective_softlock_actions, | ||
73 | global_settings.bt_selective_softlock_actions_mask); | ||
74 | break; | ||
75 | } | ||
76 | |||
77 | return action; | ||
78 | } | ||
79 | |||
80 | static int selectivesoftlock_set_mask(void* param) | ||
81 | { | ||
82 | (void)param; | ||
83 | int mask = global_settings.bt_selective_softlock_actions_mask; | ||
84 | struct s_mask_items maskitems[]={ | ||
85 | {ID2P(LANG_VOLUME) , SEL_ACTION_VOL}, | ||
86 | {ID2P(LANG_ACTION_PLAY), SEL_ACTION_PLAY}, | ||
87 | {ID2P(LANG_ACTION_SEEK), SEL_ACTION_SEEK}, | ||
88 | {ID2P(LANG_ACTION_SKIP), SEL_ACTION_SKIP}, | ||
89 | #ifdef HAVE_BACKLIGHT | ||
90 | {ID2P(LANG_ACTION_AUTOLOCK_ON), SEL_ACTION_AUTOLOCK}, | ||
91 | #endif | ||
92 | #if defined(HAVE_TOUCHPAD) || defined(HAVE_TOUCHSCREEN) | ||
93 | {ID2P(LANG_ACTION_DISABLE_TOUCH) , SEL_ACTION_NOTOUCH}, | ||
94 | #endif | ||
95 | {ID2P(LANG_ACTION_DISABLE_NOTIFY), SEL_ACTION_NONOTIFY} | ||
96 | }; | ||
97 | |||
98 | mask = mask_select(mask, ID2P(LANG_SOFTLOCK_SELECTIVE) | ||
99 | , maskitems,ARRAYLEN(maskitems)); | ||
100 | |||
101 | if (mask == SEL_ACTION_NONE) | ||
102 | global_settings.bt_selective_softlock_actions = false; | ||
103 | else if (global_settings.bt_selective_softlock_actions_mask != mask) | ||
104 | global_settings.bt_selective_softlock_actions = true; | ||
105 | |||
106 | global_settings.bt_selective_softlock_actions_mask = mask; | ||
107 | |||
108 | return true; | ||
109 | } | ||
110 | |||
111 | #endif /* !HAS_BUTTON_HOLD */ | ||
112 | |||
58 | /***********************************/ | 113 | /***********************************/ |
59 | /* TAGCACHE MENU */ | 114 | /* TAGCACHE MENU */ |
60 | #ifdef HAVE_TAGCACHE | 115 | #ifdef HAVE_TAGCACHE |
@@ -137,7 +192,7 @@ static int clear_start_directory(void) | |||
137 | splash(HZ, ID2P(LANG_RESET_DONE_CLEAR)); | 192 | splash(HZ, ID2P(LANG_RESET_DONE_CLEAR)); |
138 | return false; | 193 | return false; |
139 | } | 194 | } |
140 | MENUITEM_FUNCTION(clear_start_directory_item, 0, ID2P(LANG_RESET_START_DIR), | 195 | MENUITEM_FUNCTION(clear_start_directory_item, 0, ID2P(LANG_RESET_START_DIR), |
141 | clear_start_directory, NULL, NULL, Icon_file_view_menu); | 196 | clear_start_directory, NULL, NULL, Icon_file_view_menu); |
142 | static int fileview_callback(int action,const struct menu_item_ex *this_item) | 197 | static int fileview_callback(int action,const struct menu_item_ex *this_item) |
143 | { | 198 | { |
@@ -330,6 +385,19 @@ MENUITEM_SETTING(touchpad_deadzone, &global_settings.touchpad_deadzone, NULL); | |||
330 | MENUITEM_SETTING(shortcuts_replaces_quickscreen, &global_settings.shortcuts_replaces_qs, NULL); | 385 | MENUITEM_SETTING(shortcuts_replaces_quickscreen, &global_settings.shortcuts_replaces_qs, NULL); |
331 | #endif | 386 | #endif |
332 | 387 | ||
388 | #ifndef HAS_BUTTON_HOLD | ||
389 | |||
390 | MENUITEM_SETTING(bt_selective_actions, | ||
391 | &global_settings.bt_selective_softlock_actions, | ||
392 | selectivesoftlock_callback); | ||
393 | MENUITEM_FUNCTION(sel_softlock_mask, 0, ID2P(LANG_SETTINGS), | ||
394 | selectivesoftlock_set_mask, NULL, | ||
395 | selectivesoftlock_callback, Icon_Menu_setting); | ||
396 | |||
397 | MAKE_MENU(sel_softlock, ID2P(LANG_SOFTLOCK_SELECTIVE), | ||
398 | NULL, Icon_Menu_setting, &bt_selective_actions, &sel_softlock_mask); | ||
399 | #endif /* !HAS_BUTTON_HOLD */ | ||
400 | |||
333 | #if defined(DX50) || defined(DX90) | 401 | #if defined(DX50) || defined(DX90) |
334 | MENUITEM_SETTING(governor, &global_settings.governor, NULL); | 402 | MENUITEM_SETTING(governor, &global_settings.governor, NULL); |
335 | MENUITEM_SETTING(usb_mode, &global_settings.usb_mode, NULL); | 403 | MENUITEM_SETTING(usb_mode, &global_settings.usb_mode, NULL); |
@@ -380,6 +448,9 @@ MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), | |||
380 | #ifdef HAVE_TOUCHPAD_DEADZONE | 448 | #ifdef HAVE_TOUCHPAD_DEADZONE |
381 | &touchpad_deadzone, | 449 | &touchpad_deadzone, |
382 | #endif | 450 | #endif |
451 | #ifndef HAS_BUTTON_HOLD | ||
452 | &sel_softlock, | ||
453 | #endif | ||
383 | #ifdef USB_ENABLE_HID | 454 | #ifdef USB_ENABLE_HID |
384 | &usb_hid, | 455 | &usb_hid, |
385 | &usb_keypad_mode, | 456 | &usb_keypad_mode, |
@@ -544,7 +615,7 @@ MAKE_MENU(bookmark_settings_menu, ID2P(LANG_BOOKMARK_SETTINGS), 0, | |||
544 | /***********************************/ | 615 | /***********************************/ |
545 | /* AUTORESUME MENU */ | 616 | /* AUTORESUME MENU */ |
546 | #ifdef HAVE_TAGCACHE | 617 | #ifdef HAVE_TAGCACHE |
547 | #if CONFIG_CODEC == SWCODEC | 618 | #if CONFIG_CODEC == SWCODEC |
548 | 619 | ||
549 | static int autoresume_callback(int action, const struct menu_item_ex *this_item) | 620 | static int autoresume_callback(int action, const struct menu_item_ex *this_item) |
550 | { | 621 | { |
@@ -557,7 +628,7 @@ static int autoresume_callback(int action, const struct menu_item_ex *this_item) | |||
557 | static const char *lines[] = {ID2P(LANG_TAGCACHE_BUSY), | 628 | static const char *lines[] = {ID2P(LANG_TAGCACHE_BUSY), |
558 | ID2P(LANG_TAGCACHE_FORCE_UPDATE)}; | 629 | ID2P(LANG_TAGCACHE_FORCE_UPDATE)}; |
559 | static const struct text_message message = {lines, 2}; | 630 | static const struct text_message message = {lines, 2}; |
560 | 631 | ||
561 | if (gui_syncyesno_run(&message, NULL, NULL) == YESNO_YES) | 632 | if (gui_syncyesno_run(&message, NULL, NULL) == YESNO_YES) |
562 | tagcache_rebuild_with_splash(); | 633 | tagcache_rebuild_with_splash(); |
563 | } | 634 | } |
@@ -672,9 +743,9 @@ MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0, | |||
672 | &startup_shutdown_menu, | 743 | &startup_shutdown_menu, |
673 | &bookmark_settings_menu, | 744 | &bookmark_settings_menu, |
674 | #ifdef HAVE_TAGCACHE | 745 | #ifdef HAVE_TAGCACHE |
675 | #if CONFIG_CODEC == SWCODEC | 746 | #if CONFIG_CODEC == SWCODEC |
676 | &autoresume_menu, | 747 | &autoresume_menu, |
677 | #endif | 748 | #endif |
678 | #endif | 749 | #endif |
679 | &browse_langs, &voice_settings_menu, | 750 | &browse_langs, &voice_settings_menu, |
680 | #ifdef HAVE_HOTKEY | 751 | #ifdef HAVE_HOTKEY |