summaryrefslogtreecommitdiff
path: root/apps/keymaps/keymap-fiiom3k.c
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-02-27 22:08:58 +0000
committerAidan MacDonald <amachronic@protonmail.com>2021-03-28 00:01:37 +0000
commit3ec66893e377b088c1284d2d23adb2aeea6d7965 (patch)
treeb647717f83ad56b15dc42cfdef5d04d68cd9bd6b /apps/keymaps/keymap-fiiom3k.c
parent83fcbedc65f4b9ae7e491ecf6f07c0af4b245f74 (diff)
downloadrockbox-3ec66893e377b088c1284d2d23adb2aeea6d7965.tar.gz
rockbox-3ec66893e377b088c1284d2d23adb2aeea6d7965.zip
New port: FiiO M3K on bare metal
Change-Id: I7517e7d5459e129dcfc9465c6fbd708619888fbe
Diffstat (limited to 'apps/keymaps/keymap-fiiom3k.c')
-rw-r--r--apps/keymaps/keymap-fiiom3k.c219
1 files changed, 219 insertions, 0 deletions
diff --git a/apps/keymaps/keymap-fiiom3k.c b/apps/keymaps/keymap-fiiom3k.c
new file mode 100644
index 0000000000..e562443227
--- /dev/null
+++ b/apps/keymaps/keymap-fiiom3k.c
@@ -0,0 +1,219 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2021 Aidan MacDonald
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22/* Button Code Definitions for FiiO M3K target */
23
24#include "config.h"
25#include "action.h"
26#include "button.h"
27#include "settings.h"
28
29/* {Action Code, Button code, Prereq button code } */
30
31static const struct button_mapping button_context_standard[] = {
32 {ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE},
33 {ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
34 {ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE},
35 {ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
36 {ACTION_STD_PREV, BUTTON_SCROLL_BACK, BUTTON_NONE},
37 {ACTION_STD_PREVREPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE},
38 {ACTION_STD_NEXT, BUTTON_SCROLL_FWD, BUTTON_NONE},
39 {ACTION_STD_NEXTREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE},
40 {ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
41 {ACTION_STD_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK},
42 {ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT},
43 {ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU},
44 {ACTION_STD_MENU, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK},
45 {ACTION_STD_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
46 {ACTION_STD_KEYLOCK, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
47 {ACTION_STD_HOTKEY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
48 LAST_ITEM_IN_LIST
49}; /* button_context_standard */
50
51static const struct button_mapping button_context_wps[] = {
52 {ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
53 {ACTION_WPS_PLAY, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
54 {ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER},
55 {ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE},
56 {ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
57 {ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE},
58 {ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
59 {ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT},
60 {ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT},
61 {ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
62 {ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT},
63 {ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
64 {ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT},
65 {ACTION_WPS_BROWSE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK},
66 {ACTION_WPS_MENU, BUTTON_BACK|BUTTON_REL, BUTTON_BACK},
67 {ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU},
68 {ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
69 {ACTION_STD_KEYLOCK, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
70 {ACTION_WPS_HOTKEY, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY},
71 {ACTION_WPS_VIEW_PLAYLIST, BUTTON_SCROLL_FWD, BUTTON_NONE},
72 {ACTION_WPS_VIEW_PLAYLIST, BUTTON_SCROLL_BACK, BUTTON_NONE},
73 {ACTION_WPS_ABSETA_PREVDIR, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP},
74 {ACTION_WPS_ABSETB_NEXTDIR, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN},
75 {ACTION_WPS_ABRESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT},
76 LAST_ITEM_IN_LIST
77}; /* button_context_wps */
78
79static const struct button_mapping button_context_tree[] = {
80 {ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY},
81 {ACTION_TREE_WPS, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK},
82 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
83}; /* button_context_tree */
84
85static const struct button_mapping button_context_list[] = {
86 {ACTION_LISTTREE_PGUP, BUTTON_LEFT, BUTTON_NONE},
87 {ACTION_LISTTREE_PGUP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
88 {ACTION_LISTTREE_PGDOWN, BUTTON_RIGHT, BUTTON_NONE},
89 {ACTION_LISTTREE_PGDOWN, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
90 {ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE},
91 {ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
92 {ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE},
93 {ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
94 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
95}; /* button_context_list */
96
97static const struct button_mapping button_context_settings[] = {
98 {ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE},
99 {ACTION_SETTINGS_INCREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
100 {ACTION_SETTINGS_INC, BUTTON_SCROLL_BACK, BUTTON_NONE},
101 {ACTION_SETTINGS_INCREPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE},
102 {ACTION_SETTINGS_INCBIGSTEP, BUTTON_VOL_UP, BUTTON_NONE},
103 {ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE},
104 {ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
105 {ACTION_SETTINGS_DEC, BUTTON_SCROLL_FWD, BUTTON_NONE},
106 {ACTION_SETTINGS_DECREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE},
107 {ACTION_SETTINGS_DECBIGSTEP, BUTTON_VOL_DOWN, BUTTON_NONE},
108 {ACTION_SETTINGS_RESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT},
109 {ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE},
110 {ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
111 {ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE},
112 {ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
113 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
114}; /* button_context_settings */
115
116static const struct button_mapping button_context_settings_eq[] = {
117 {ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE},
118 {ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
119 {ACTION_SETTINGS_INCBIGSTEP, BUTTON_VOL_UP, BUTTON_NONE},
120 {ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE},
121 {ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
122 {ACTION_SETTINGS_DECBIGSTEP, BUTTON_VOL_DOWN, BUTTON_NONE},
123 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
124}; /* button_context_settings_eq */
125
126static const struct button_mapping button_context_quickscreen[] = {
127 {ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE},
128 {ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE},
129 {ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE},
130 {ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
131 {ACTION_QS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE},
132 {ACTION_QS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE},
133 {ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE},
134 {ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE},
135 {ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE},
136 LAST_ITEM_IN_LIST
137}; /* button_context_quickscreen */
138
139static const struct button_mapping button_context_pitchscreen[] = {
140 {ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE},
141 {ACTION_PS_INC_SMALL, BUTTON_SCROLL_BACK, BUTTON_NONE},
142 {ACTION_PS_INC_BIG, BUTTON_VOL_UP, BUTTON_NONE},
143 {ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE},
144 {ACTION_PS_DEC_SMALL, BUTTON_SCROLL_FWD, BUTTON_NONE},
145 {ACTION_PS_DEC_BIG, BUTTON_VOL_DOWN, BUTTON_NONE},
146 {ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE},
147 {ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
148 {ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE},
149 {ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE},
150 {ACTION_PS_TOGGLE_MODE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
151 {ACTION_PS_RESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT},
152 {ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE},
153 {ACTION_PS_FASTER, BUTTON_BACK, BUTTON_NONE},
154 {ACTION_PS_SLOWER, BUTTON_MENU, BUTTON_NONE},
155 LAST_ITEM_IN_LIST
156}; /* button_context_pitchscreen */
157
158static const struct button_mapping button_context_yesnoscreen[] = {
159 {ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE},
160 {ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE},
161 {ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE},
162 {ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE},
163 LAST_ITEM_IN_LIST
164}; /* button_context_yesnoscreen */
165
166static const struct button_mapping button_context_keyboard[] = {
167 {ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE},
168 {ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE},
169 {ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE},
170 {ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
171 {ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
172 {ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
173 {ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
174 {ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
175 {ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE},
176 {ACTION_KBD_BACKSPACE, BUTTON_BACK, BUTTON_NONE},
177 {ACTION_KBD_BACKSPACE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE},
178 {ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE},
179 {ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE},
180 {ACTION_KBD_PAGE_FLIP, BUTTON_MENU, BUTTON_NONE},
181 {ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE},
182 {ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
183 {ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_UP, BUTTON_NONE},
184 {ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
185 LAST_ITEM_IN_LIST
186}; /* button_context_keyboard */
187
188const struct button_mapping* get_context_mapping(int context)
189{
190 switch (context)
191 {
192 default:
193 case CONTEXT_STD:
194 return button_context_standard;
195 case CONTEXT_WPS:
196 return button_context_wps;
197 case CONTEXT_TREE:
198 case CONTEXT_MAINMENU:
199 case CONTEXT_BOOKMARKSCREEN:
200 return button_context_tree;
201 case CONTEXT_LIST:
202 return button_context_list;
203 case CONTEXT_SETTINGS:
204 case CONTEXT_SETTINGS_TIME:
205 case CONTEXT_SETTINGS_RECTRIGGER:
206 return button_context_settings;
207 case CONTEXT_SETTINGS_EQ:
208 case CONTEXT_SETTINGS_COLOURCHOOSER:
209 return button_context_settings_eq;
210 case CONTEXT_QUICKSCREEN:
211 return button_context_quickscreen;
212 case CONTEXT_PITCHSCREEN:
213 return button_context_pitchscreen;
214 case CONTEXT_YESNOSCREEN:
215 return button_context_yesnoscreen;
216 case CONTEXT_KEYBOARD:
217 return button_context_keyboard;
218 }
219}