From 84fe501f53f966894b226172faa50b9fd0d651f5 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Mon, 2 Jan 2023 13:03:48 -0500 Subject: Add locked actions to all soft lock targets fiio m3k native is currently the only player with defined buttons different from the standard mapping. This allows the user to use the keyremap plugin to specify differing keymaps for their device in the locked state Change-Id: Ie0b447bba0d5978e8d23fed423df30c794afc6f9 --- apps/action.c | 2 +- apps/keymaps/keymap-agptekrocker.c | 3 +++ apps/keymaps/keymap-erosq.c | 3 +++ apps/keymaps/keymap-fiiom3k.c | 13 ++++--------- apps/keymaps/keymap-fiiom3klinux.c | 3 +++ apps/keymaps/keymap-fuzeplus.c | 3 +++ apps/keymaps/keymap-ma.c | 4 +++- apps/keymaps/keymap-nwz.c | 3 +++ apps/keymaps/keymap-ondavx777.c | 3 +++ apps/keymaps/keymap-rk27xx-generic.c | 3 +++ apps/keymaps/keymap-shanlingq1.c | 3 +++ apps/keymaps/keymap-xduoox20.c | 3 +++ apps/keymaps/keymap-xduoox3ii.c | 3 +++ apps/keymaps/keymap-ypr0.c | 3 +++ apps/keymaps/keymap-ypr1.c | 3 +++ apps/keymaps/keymap-zenxfi2.c | 3 +++ apps/plugins/keyremap.c | 4 ++-- apps/plugins/pictureflow/pictureflow.c | 2 -- firmware/export/config/fiiom3k.h | 1 - firmware/export/config/sansaclipplus.h | 1 - firmware/export/config/sansaclipzip.h | 1 - 21 files changed, 49 insertions(+), 18 deletions(-) diff --git a/apps/action.c b/apps/action.c index 392f2c344c..20145a5bc1 100644 --- a/apps/action.c +++ b/apps/action.c @@ -595,7 +595,7 @@ static inline void action_code_lookup(action_last_t *last, action_cur_t *cur) int context = cur->context; cur->is_prebutton = false; -#if defined(HAVE_LOCKED_ACTIONS) && !defined(HAS_BUTTON_HOLD) +#if !defined(HAS_BUTTON_HOLD) && !defined(BOOTLOADER) /* This only applies to the first context, to allow locked contexts to * specify a fall through to their non-locked version */ if (is_keys_locked()) diff --git a/apps/keymaps/keymap-agptekrocker.c b/apps/keymaps/keymap-agptekrocker.c index d016b3b323..158de8d3c8 100644 --- a/apps/keymaps/keymap-agptekrocker.c +++ b/apps/keymaps/keymap-agptekrocker.c @@ -223,12 +223,15 @@ const struct button_mapping* get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; case CONTEXT_TREE: diff --git a/apps/keymaps/keymap-erosq.c b/apps/keymaps/keymap-erosq.c index c69e4babdb..7e2643a318 100644 --- a/apps/keymaps/keymap-erosq.c +++ b/apps/keymaps/keymap-erosq.c @@ -196,12 +196,15 @@ const struct button_mapping* get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; diff --git a/apps/keymaps/keymap-fiiom3k.c b/apps/keymaps/keymap-fiiom3k.c index a9744b908b..8b9cce2493 100644 --- a/apps/keymaps/keymap-fiiom3k.c +++ b/apps/keymaps/keymap-fiiom3k.c @@ -324,23 +324,18 @@ static const struct button_mapping button_context_usb_hid_mode_browser[] = { const struct button_mapping* get_context_mapping(int context) { - switch (context) - { - case CONTEXT_WPS|CONTEXT_LOCKED: - return button_context_wps_locked; - default: - context &= ~CONTEXT_LOCKED; - break; - } - switch (context) { default: + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: + return button_context_wps_locked; case CONTEXT_WPS: return button_context_wps; case CONTEXT_TREE: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: if (global_settings.hold_lr_for_scroll_in_list) return button_context_tree_scroll_lr; diff --git a/apps/keymaps/keymap-fiiom3klinux.c b/apps/keymaps/keymap-fiiom3klinux.c index e404d8bfb0..98aef7be41 100644 --- a/apps/keymaps/keymap-fiiom3klinux.c +++ b/apps/keymaps/keymap-fiiom3klinux.c @@ -196,6 +196,7 @@ const struct button_mapping* get_context_mapping(int context) { case CONTEXT_LIST: return button_context_list; + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; case CONTEXT_BOOKMARKSCREEN: @@ -214,8 +215,10 @@ const struct button_mapping* get_context_mapping(int context) case CONTEXT_SETTINGS_RECTRIGGER: return button_context_settings_vol_is_inc; case CONTEXT_TREE: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-fuzeplus.c b/apps/keymaps/keymap-fuzeplus.c index 9ce5a79fc2..01032ddf07 100644 --- a/apps/keymaps/keymap-fuzeplus.c +++ b/apps/keymaps/keymap-fuzeplus.c @@ -409,12 +409,15 @@ const struct button_mapping* get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; case CONTEXT_SETTINGS: return button_context_settings; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-ma.c b/apps/keymaps/keymap-ma.c index aaf7df0c01..84d8edd7c4 100644 --- a/apps/keymaps/keymap-ma.c +++ b/apps/keymaps/keymap-ma.c @@ -192,6 +192,7 @@ const struct button_mapping* get_context_mapping(int context) { /* anything that uses button_context_standard */ case CONTEXT_LIST: + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: default: return button_context_standard; @@ -220,13 +221,14 @@ const struct button_mapping* get_context_mapping(int context) return button_context_settings_r_is_inc; case CONTEXT_TREE: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: if (global_settings.hold_lr_for_scroll_in_list) return button_context_tree_scroll_lr; /* else fall through to CONTEXT_TREE|CONTEXT_CUSTOM */ case CONTEXT_TREE|CONTEXT_CUSTOM: return button_context_tree; - + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; diff --git a/apps/keymaps/keymap-nwz.c b/apps/keymaps/keymap-nwz.c index 1fae8d3594..3901645eb2 100644 --- a/apps/keymaps/keymap-nwz.c +++ b/apps/keymaps/keymap-nwz.c @@ -359,12 +359,15 @@ const struct button_mapping* get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; case CONTEXT_SETTINGS: return button_context_settings; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-ondavx777.c b/apps/keymaps/keymap-ondavx777.c index ed23350666..468ad4b354 100644 --- a/apps/keymaps/keymap-ondavx777.c +++ b/apps/keymaps/keymap-ondavx777.c @@ -129,13 +129,16 @@ const struct button_mapping* target_get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_TREE: if (global_settings.hold_lr_for_scroll_in_list) diff --git a/apps/keymaps/keymap-rk27xx-generic.c b/apps/keymaps/keymap-rk27xx-generic.c index d837c608fc..5be8762af3 100644 --- a/apps/keymaps/keymap-rk27xx-generic.c +++ b/apps/keymaps/keymap-rk27xx-generic.c @@ -166,8 +166,10 @@ const struct button_mapping* get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; #ifdef CONFIG_TUNER @@ -190,6 +192,7 @@ const struct button_mapping* get_context_mapping(int context) #endif case CONTEXT_TREE: case CONTEXT_LIST: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_SETTINGS: diff --git a/apps/keymaps/keymap-shanlingq1.c b/apps/keymaps/keymap-shanlingq1.c index 4caaa36fd2..2708266d18 100644 --- a/apps/keymaps/keymap-shanlingq1.c +++ b/apps/keymaps/keymap-shanlingq1.c @@ -72,12 +72,15 @@ const struct button_mapping* target_get_context_mapping(int context) switch (context) { default: + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_TREE: case CONTEXT_CUSTOM|CONTEXT_TREE: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_BOOKMARKSCREEN: case CONTEXT_LIST: diff --git a/apps/keymaps/keymap-xduoox20.c b/apps/keymaps/keymap-xduoox20.c index b08db90cfd..04d57949a1 100644 --- a/apps/keymaps/keymap-xduoox20.c +++ b/apps/keymaps/keymap-xduoox20.c @@ -188,6 +188,7 @@ const struct button_mapping* get_context_mapping(int context) { case CONTEXT_LIST: return button_context_list; + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; case CONTEXT_BOOKMARKSCREEN: @@ -206,8 +207,10 @@ const struct button_mapping* get_context_mapping(int context) case CONTEXT_SETTINGS_RECTRIGGER: return button_context_settings_vol_is_inc; case CONTEXT_TREE: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-xduoox3ii.c b/apps/keymaps/keymap-xduoox3ii.c index d99c8240a1..b25eacd732 100644 --- a/apps/keymaps/keymap-xduoox3ii.c +++ b/apps/keymaps/keymap-xduoox3ii.c @@ -188,6 +188,7 @@ const struct button_mapping* get_context_mapping(int context) { case CONTEXT_LIST: return button_context_list; + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; case CONTEXT_BOOKMARKSCREEN: @@ -206,8 +207,10 @@ const struct button_mapping* get_context_mapping(int context) case CONTEXT_SETTINGS_RECTRIGGER: return button_context_settings_vol_is_inc; case CONTEXT_TREE: + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_tree; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_YESNOSCREEN: diff --git a/apps/keymaps/keymap-ypr0.c b/apps/keymaps/keymap-ypr0.c index 2d6be5b7ec..e6d3bf8868 100644 --- a/apps/keymaps/keymap-ypr0.c +++ b/apps/keymaps/keymap-ypr0.c @@ -257,13 +257,16 @@ const struct button_mapping* get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: return button_context_mainmenu; diff --git a/apps/keymaps/keymap-ypr1.c b/apps/keymaps/keymap-ypr1.c index d47047912b..0f991a881d 100644 --- a/apps/keymaps/keymap-ypr1.c +++ b/apps/keymaps/keymap-ypr1.c @@ -134,13 +134,16 @@ const struct button_mapping* target_get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_CUSTOM|CONTEXT_TREE: return button_context_tree; diff --git a/apps/keymaps/keymap-zenxfi2.c b/apps/keymaps/keymap-zenxfi2.c index c98a4a8405..43e65ce5d7 100644 --- a/apps/keymaps/keymap-zenxfi2.c +++ b/apps/keymaps/keymap-zenxfi2.c @@ -139,13 +139,16 @@ const struct button_mapping* target_get_context_mapping(int context) { switch (context) { + case CONTEXT_STD | CONTEXT_LOCKED: case CONTEXT_STD: return button_context_standard; + case CONTEXT_WPS | CONTEXT_LOCKED: case CONTEXT_WPS: return button_context_wps; case CONTEXT_LIST: return button_context_list; + case CONTEXT_MAINMENU | CONTEXT_LOCKED: case CONTEXT_MAINMENU: case CONTEXT_TREE: if (global_settings.hold_lr_for_scroll_in_list) diff --git a/apps/plugins/keyremap.c b/apps/plugins/keyremap.c index cb19fcf92c..f0b36a735e 100644 --- a/apps/plugins/keyremap.c +++ b/apps/plugins/keyremap.c @@ -53,13 +53,13 @@ struct context_flags { /* flags added to context_name[] */ static struct context_flags context_flags[] = { {"UNKNOWN", 0},/* index 0 is an Error */ -#ifdef HAVE_LOCKED_ACTIONS +#ifndef HAS_BUTTON_HOLD {"LOCKED", CONTEXT_LOCKED}, #endif /*{"PLUGIN", CONTEXT_PLUGIN}, need a custom action list and a way to supply */ #if BUTTON_REMOTE != 0 {"REMOTE", CONTEXT_REMOTE}, -#ifdef HAVE_LOCKED_ACTIONS +#ifndef HAS_BUTTON_HOLD {"REMOTE_LOCKED", CONTEXT_REMOTE | CONTEXT_LOCKED}, #endif #endif /* BUTTON_REMOTE != 0 */ diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index a7a0031391..54497d8306 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c @@ -967,9 +967,7 @@ const struct custom_format format_transposed = { static const struct button_mapping* get_context_map(int context) { -#ifdef HAVE_LOCKED_ACTIONS context &= ~CONTEXT_LOCKED; -#endif return pf_contexts[context & ~CONTEXT_PLUGIN]; } diff --git a/firmware/export/config/fiiom3k.h b/firmware/export/config/fiiom3k.h index ab3e274243..86a9b05402 100644 --- a/firmware/export/config/fiiom3k.h +++ b/firmware/export/config/fiiom3k.h @@ -147,6 +147,5 @@ #define HAVE_VOLUME_IN_LIST #define HAVE_QUICKSCREEN #define HAVE_HOTKEY -#define HAVE_LOCKED_ACTIONS #define AB_REPEAT_ENABLE #define HAVE_BOOTLOADER_SCREENDUMP diff --git a/firmware/export/config/sansaclipplus.h b/firmware/export/config/sansaclipplus.h index d7e18c4864..e78063ef02 100644 --- a/firmware/export/config/sansaclipplus.h +++ b/firmware/export/config/sansaclipplus.h @@ -17,7 +17,6 @@ #define NUM_DRIVES 2 #ifndef BOOTLOADER -#define HAVE_LOCKED_ACTIONS #define HAVE_HOTSWAP #define HAVE_RDS_CAP #define CONFIG_RDS (RDS_CFG_POLL | RDS_CFG_PROCESS) diff --git a/firmware/export/config/sansaclipzip.h b/firmware/export/config/sansaclipzip.h index 86bc8fa4c2..d8b18e1a18 100644 --- a/firmware/export/config/sansaclipzip.h +++ b/firmware/export/config/sansaclipzip.h @@ -71,7 +71,6 @@ #define HAVE_LCD_ENABLE #ifndef BOOTLOADER -#define HAVE_LOCKED_ACTIONS /* Define this if your LCD can be put to sleep. * HAVE_LCD_ENABLE should be defined as well. */ //#define HAVE_LCD_SLEEP -- cgit v1.2.3