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
This commit is contained in:
William Wilgus 2023-01-02 13:03:48 -05:00
parent a00bd421ac
commit 84fe501f53
21 changed files with 49 additions and 18 deletions

View file

@ -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())

View file

@ -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:

View file

@ -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;

View file

@ -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;

View file

@ -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:

View file

@ -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:

View file

@ -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;

View file

@ -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:

View file

@ -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)

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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;

View file

@ -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;

View file

@ -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)

View file

@ -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 */

View file

@ -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];
}

View file

@ -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

View file

@ -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)

View file

@ -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