summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-10-05 18:23:55 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-10-05 22:55:08 +0000
commit914114fd21a126be36435e7b0bc3a9f2685149c6 (patch)
tree07a0bebced0a6f8a6ffee2f948da66df31440aa9
parentc6f66cf696a4a0802dad8128dd985c7ab6489602 (diff)
downloadrockbox-914114fd21a126be36435e7b0bc3a9f2685149c6.tar.gz
rockbox-914114fd21a126be36435e7b0bc3a9f2685149c6.zip
FS13241: Get rid of the hacky hold switch emulation on the X3ii & X20
It doesn't work properly and interferes with the power button in the keymap. Rework WPS keymap a bit to make single-tap power emulate lock. Change-Id: I9d9b9b4adcea3764e6e427f484e051c9bab9d13b
-rw-r--r--apps/keymaps/keymap-xduoox20.c7
-rw-r--r--apps/keymaps/keymap-xduoox3ii.c7
-rw-r--r--firmware/export/config/xduoox20.h3
-rw-r--r--firmware/export/config/xduoox3ii.h3
-rw-r--r--firmware/target/hosted/xduoo/button-target.h2
-rw-r--r--firmware/target/hosted/xduoo/button-xduoo.c34
6 files changed, 8 insertions, 48 deletions
diff --git a/apps/keymaps/keymap-xduoox20.c b/apps/keymaps/keymap-xduoox20.c
index a6c5ca4153..00df9c89e7 100644
--- a/apps/keymaps/keymap-xduoox20.c
+++ b/apps/keymaps/keymap-xduoox20.c
@@ -49,7 +49,7 @@ static const struct button_mapping button_context_standard[] = {
49 49
50static const struct button_mapping button_context_wps[] = { 50static const struct button_mapping button_context_wps[] = {
51 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 51 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
52 { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, 52 { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
53 { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, 53 { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
54 { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, 54 { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
55 { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT }, 55 { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT },
@@ -61,10 +61,11 @@ static const struct button_mapping button_context_wps[] = {
61 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, 61 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
62 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 62 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
63 { ACTION_WPS_BROWSE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, 63 { ACTION_WPS_BROWSE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME },
64 { ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 64 { ACTION_WPS_CONTEXT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME },
65 { ACTION_WPS_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, 65 { ACTION_WPS_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION },
66 { ACTION_WPS_QUICKSCREEN, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION }, 66 { ACTION_WPS_QUICKSCREEN, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION },
67 { ACTION_WPS_HOTKEY, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, 67
68 { ACTION_STD_KEYLOCK, BUTTON_POWER, BUTTON_NONE },
68 69
69 LAST_ITEM_IN_LIST 70 LAST_ITEM_IN_LIST
70}; /* button_context_wps */ 71}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-xduoox3ii.c b/apps/keymaps/keymap-xduoox3ii.c
index e43bd30290..a8cf349e0d 100644
--- a/apps/keymaps/keymap-xduoox3ii.c
+++ b/apps/keymaps/keymap-xduoox3ii.c
@@ -49,7 +49,7 @@ static const struct button_mapping button_context_standard[] = {
49 49
50static const struct button_mapping button_context_wps[] = { 50static const struct button_mapping button_context_wps[] = {
51 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 51 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
52 { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, 52 { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
53 { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, 53 { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
54 { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, 54 { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
55 { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT }, 55 { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT },
@@ -61,10 +61,11 @@ static const struct button_mapping button_context_wps[] = {
61 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, 61 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
62 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 62 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
63 { ACTION_WPS_BROWSE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, 63 { ACTION_WPS_BROWSE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME },
64 { ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 64 { ACTION_WPS_CONTEXT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME },
65 { ACTION_WPS_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, 65 { ACTION_WPS_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION },
66 { ACTION_WPS_QUICKSCREEN, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION }, 66 { ACTION_WPS_QUICKSCREEN, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION },
67 { ACTION_WPS_HOTKEY, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, 67
68 { ACTION_STD_KEYLOCK, BUTTON_POWER, BUTTON_NONE },
68 69
69 LAST_ITEM_IN_LIST 70 LAST_ITEM_IN_LIST
70}; /* button_context_wps */ 71}; /* button_context_wps */
diff --git a/firmware/export/config/xduoox20.h b/firmware/export/config/xduoox20.h
index 4a5b63bf38..62b2d58582 100644
--- a/firmware/export/config/xduoox20.h
+++ b/firmware/export/config/xduoox20.h
@@ -73,9 +73,6 @@
73/* KeyPad configuration for plugins */ 73/* KeyPad configuration for plugins */
74#define CONFIG_KEYPAD XDUOO_X20_PAD 74#define CONFIG_KEYPAD XDUOO_X20_PAD
75 75
76/* Define this if a programmable hotkey is mapped */
77#define HAVE_HOTKEY
78
79/* define this if the target has volume keys which can be used in the lists */ 76/* define this if the target has volume keys which can be used in the lists */
80#define HAVE_VOLUME_IN_LIST 77#define HAVE_VOLUME_IN_LIST
81 78
diff --git a/firmware/export/config/xduoox3ii.h b/firmware/export/config/xduoox3ii.h
index e2066e453c..893fcc5e51 100644
--- a/firmware/export/config/xduoox3ii.h
+++ b/firmware/export/config/xduoox3ii.h
@@ -73,9 +73,6 @@
73/* KeyPad configuration for plugins */ 73/* KeyPad configuration for plugins */
74#define CONFIG_KEYPAD XDUOO_X3II_PAD 74#define CONFIG_KEYPAD XDUOO_X3II_PAD
75 75
76/* Define this if a programmable hotkey is mapped */
77#define HAVE_HOTKEY
78
79/* define this if the target has volume keys which can be used in the lists */ 76/* define this if the target has volume keys which can be used in the lists */
80#define HAVE_VOLUME_IN_LIST 77#define HAVE_VOLUME_IN_LIST
81 78
diff --git a/firmware/target/hosted/xduoo/button-target.h b/firmware/target/hosted/xduoo/button-target.h
index 6cca5c22a0..ac77a7da7d 100644
--- a/firmware/target/hosted/xduoo/button-target.h
+++ b/firmware/target/hosted/xduoo/button-target.h
@@ -20,8 +20,6 @@
20#ifndef _BUTTON_TARGET_H_ 20#ifndef _BUTTON_TARGET_H_
21#define _BUTTON_TARGET_H_ 21#define _BUTTON_TARGET_H_
22 22
23#define HAS_BUTTON_HOLD
24
25/* Main unit's buttons */ 23/* Main unit's buttons */
26#define BUTTON_POWER 0x00000001 24#define BUTTON_POWER 0x00000001
27#define BUTTON_HOME 0x00000002 25#define BUTTON_HOME 0x00000002
diff --git a/firmware/target/hosted/xduoo/button-xduoo.c b/firmware/target/hosted/xduoo/button-xduoo.c
index 605cd18736..99b0908378 100644
--- a/firmware/target/hosted/xduoo/button-xduoo.c
+++ b/firmware/target/hosted/xduoo/button-xduoo.c
@@ -38,14 +38,6 @@
38#include "backlight-target.h" 38#include "backlight-target.h"
39#include "xduoolinux_codec.h" 39#include "xduoolinux_codec.h"
40 40
41static bool soft_hold = false;
42#ifndef BOOTLOADER
43static unsigned soft_hold_counter = 0;
44#define SOFT_HOLD_BUTTON BUTTON_POWER
45#define SOFT_HOLD_CNTMAX_1 (HZ)
46#define SOFT_HOLD_CNTMAX_2 (HZ*2)
47#endif
48
49#define NR_POLL_DESC 3 41#define NR_POLL_DESC 3
50static struct pollfd poll_fds[NR_POLL_DESC]; 42static struct pollfd poll_fds[NR_POLL_DESC];
51 43
@@ -141,27 +133,6 @@ int button_read_device(void)
141 } 133 }
142 } 134 }
143 135
144#ifndef BOOTLOADER
145 if (button_bitmap == SOFT_HOLD_BUTTON) {
146 soft_hold_counter++;
147 if (soft_hold_counter == SOFT_HOLD_CNTMAX_1) {
148 soft_hold = !soft_hold;
149 backlight_hold_changed(soft_hold);
150 }
151 else
152 if (soft_hold_counter == SOFT_HOLD_CNTMAX_2) {
153 soft_hold = false;
154 backlight_hold_changed(soft_hold);
155 }
156 } else {
157 soft_hold_counter = 0;
158 }
159
160 if((soft_hold) && (button_bitmap != SOFT_HOLD_BUTTON)) {
161 return BUTTON_NONE;
162 }
163#endif
164
165 return button_bitmap; 136 return button_bitmap;
166} 137}
167 138
@@ -187,8 +158,3 @@ void button_close_device(void)
187 close(poll_fds[i].fd); 158 close(poll_fds[i].fd);
188 } 159 }
189} 160}
190
191bool button_hold(void)
192{
193 return soft_hold;
194}