diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-10-03 18:17:11 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-09 12:41:18 -0400 |
commit | aabc8aca47e60cf745a34af28c50679fcb967910 (patch) | |
tree | cfe17f546aae9785fb13482f39527e2da0597ccb | |
parent | 4231c2c83f2b5331e3e38b10a308ee3752315f9c (diff) | |
download | rockbox-aabc8aca47e60cf745a34af28c50679fcb967910.tar.gz rockbox-aabc8aca47e60cf745a34af28c50679fcb967910.zip |
New port: FiiO M3K
Most credit goes to: Roman Skylarov
Additional integration and refactoring by myself.
*** COMPLETELY UNTESTED ***
Change-Id: Ia64c36d92e0214c6b15f7a868df286f8113ea27b
84 files changed, 2188 insertions, 20 deletions
diff --git a/apps/SOURCES b/apps/SOURCES index ba36bc3ef6..54f7461e05 100644 --- a/apps/SOURCES +++ b/apps/SOURCES | |||
@@ -300,4 +300,6 @@ keymaps/keymap-xduoox3.c | |||
300 | keymaps/keymap-xduoox3ii.c | 300 | keymaps/keymap-xduoox3ii.c |
301 | #elif CONFIG_KEYPAD == XDUOO_X20_PAD | 301 | #elif CONFIG_KEYPAD == XDUOO_X20_PAD |
302 | keymaps/keymap-xduoox20.c | 302 | keymaps/keymap-xduoox20.c |
303 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
304 | keymaps/keymap-fiiom3k.c | ||
303 | #endif | 305 | #endif |
diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES index 8f42607a0c..201ffc4ad3 100644 --- a/apps/bitmaps/native/SOURCES +++ b/apps/bitmaps/native/SOURCES | |||
@@ -38,7 +38,7 @@ rockboxlogo.640x198x16.bmp | |||
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | /* The Sony NWZ linux bootloader needs icons to display a menu */ | 40 | /* The Sony NWZ linux bootloader needs icons to display a menu */ |
41 | #if defined(BOOTLOADER) | 41 | #if defined(BOOTLOADER) |
42 | #if defined(SONY_NWZ_LINUX) | 42 | #if defined(SONY_NWZ_LINUX) |
43 | rockboxicon.130x130x16.bmp | 43 | rockboxicon.130x130x16.bmp |
44 | toolsicon.130x130x16.bmp | 44 | toolsicon.130x130x16.bmp |
@@ -50,6 +50,10 @@ toolsicon.70x70x16.bmp | |||
50 | hibyicon.130x130x16.bmp | 50 | hibyicon.130x130x16.bmp |
51 | rockboxicon.130x130x16.bmp | 51 | rockboxicon.130x130x16.bmp |
52 | toolsicon.130x130x16.bmp | 52 | toolsicon.130x130x16.bmp |
53 | #elif defined(FIIO_M3K) | ||
54 | fiioicon.130x130x16.bmp | ||
55 | rockboxicon.130x130x16.bmp | ||
56 | toolsicon.130x130x16.bmp | ||
53 | #endif | 57 | #endif |
54 | #endif | 58 | #endif |
55 | 59 | ||
diff --git a/apps/bitmaps/native/fiioicon.130x130x16.bmp b/apps/bitmaps/native/fiioicon.130x130x16.bmp new file mode 100644 index 0000000000..15e1f7b37f --- /dev/null +++ b/apps/bitmaps/native/fiioicon.130x130x16.bmp | |||
Binary files differ | |||
diff --git a/apps/features.txt b/apps/features.txt index 4b7a66099e..f0c2e4a12b 100644 --- a/apps/features.txt +++ b/apps/features.txt | |||
@@ -183,7 +183,7 @@ depth_3d | |||
183 | #endif | 183 | #endif |
184 | 184 | ||
185 | /* This should be AUDIOHW_HAVE_FILTER_ROLL_OFF but that is only defined later */ | 185 | /* This should be AUDIOHW_HAVE_FILTER_ROLL_OFF but that is only defined later */ |
186 | #if defined(DX50) || defined(HAVE_DF1704_CODEC) || defined(HAVE_PCM1792_CODEC) || defined(HAVE_CS4398) || defined(HAVE_WM8740) || defined(HAVE_ES9018) || defined(HAVE_XDUOO_LINUX_CODEC) | 186 | #if defined(DX50) || defined(HAVE_DF1704_CODEC) || defined(HAVE_PCM1792_CODEC) || defined(HAVE_CS4398) || defined(HAVE_WM8740) || defined(HAVE_ES9018) || defined(HAVE_XDUOO_LINUX_CODEC) || defined(HAVE_FIIO_LINUX_CODEC) |
187 | filter_roll_off | 187 | filter_roll_off |
188 | #endif | 188 | #endif |
189 | 189 | ||
diff --git a/apps/keymaps/keymap-fiiom3k.c b/apps/keymaps/keymap-fiiom3k.c new file mode 100644 index 0000000000..4fa97e9435 --- /dev/null +++ b/apps/keymaps/keymap-fiiom3k.c | |||
@@ -0,0 +1,224 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2019 by Roman Stolyarov | ||
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 | |||
31 | /* | ||
32 | * The format of the list is as follows | ||
33 | * { Action Code, Button code, Prereq button code } | ||
34 | * if there's no need to check the previous button's value, use BUTTON_NONE | ||
35 | * Insert LAST_ITEM_IN_LIST at the end of each mapping | ||
36 | */ | ||
37 | static const struct button_mapping button_context_standard[] = { | ||
38 | { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE }, | ||
39 | { ACTION_STD_PREV, BUTTON_PREV, BUTTON_NONE }, | ||
40 | { ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
41 | { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, | ||
42 | { ACTION_STD_NEXT, BUTTON_NEXT, BUTTON_NONE }, | ||
43 | { ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
44 | { ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | ||
45 | { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | ||
46 | { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | ||
47 | { ACTION_STD_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, | ||
48 | |||
49 | LAST_ITEM_IN_LIST | ||
50 | }; /* button_context_standard */ | ||
51 | |||
52 | static const struct button_mapping button_context_wps[] = { | ||
53 | { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | ||
54 | // { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | ||
55 | { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, | ||
56 | { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
57 | { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT }, | ||
58 | { ACTION_WPS_SKIPNEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT }, | ||
59 | { ACTION_WPS_SEEKFWD, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
60 | { ACTION_WPS_STOPSEEK, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT|BUTTON_REPEAT }, | ||
61 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | ||
62 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
63 | { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
64 | { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
65 | { ACTION_WPS_BROWSE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | ||
66 | { ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | ||
67 | { ACTION_WPS_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, | ||
68 | { ACTION_WPS_QUICKSCREEN, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION }, | ||
69 | { ACTION_WPS_HOTKEY, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, | ||
70 | |||
71 | // XXX BUTTON_UP and BUTTON_DOWN aren't on here. | ||
72 | |||
73 | { ACTION_STD_KEYLOCK, BUTTON_POWER, BUTTON_NONE }, | ||
74 | |||
75 | LAST_ITEM_IN_LIST | ||
76 | }; /* button_context_wps */ | ||
77 | |||
78 | static const struct button_mapping button_context_list[] = { | ||
79 | { ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | ||
80 | { ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
81 | { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
82 | { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
83 | |||
84 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
85 | }; /* button_context_list */ | ||
86 | |||
87 | /** Bookmark Screen **/ | ||
88 | static const struct button_mapping button_context_bmark[] = { | ||
89 | { ACTION_BMS_DELETE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | ||
90 | |||
91 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | ||
92 | }; /* button_context_bmark */ | ||
93 | |||
94 | /** Keyboard **/ | ||
95 | static const struct button_mapping button_context_keyboard[] = { | ||
96 | { ACTION_KBD_LEFT, BUTTON_PREV, BUTTON_NONE }, | ||
97 | { ACTION_KBD_LEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
98 | { ACTION_KBD_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | ||
99 | { ACTION_KBD_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
100 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
101 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
102 | { ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_UP, BUTTON_NONE }, | ||
103 | { ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
104 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
105 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
106 | { ACTION_KBD_BACKSPACE, BUTTON_HOME, BUTTON_NONE }, | ||
107 | { ACTION_KBD_BACKSPACE, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, | ||
108 | { ACTION_KBD_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | ||
109 | { ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | ||
110 | { ACTION_KBD_ABORT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
111 | |||
112 | LAST_ITEM_IN_LIST | ||
113 | }; /* button_context_keyboard */ | ||
114 | |||
115 | /** Pitchscreen **/ | ||
116 | static const struct button_mapping button_context_pitchscreen[] = { | ||
117 | { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE }, | ||
118 | { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
119 | { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE }, | ||
120 | { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
121 | { ACTION_PS_NUDGE_LEFT, BUTTON_PREV, BUTTON_NONE }, | ||
122 | { ACTION_PS_NUDGE_LEFTOFF, BUTTON_PREV|BUTTON_REL, BUTTON_NONE }, | ||
123 | { ACTION_PS_NUDGE_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | ||
124 | { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, | ||
125 | { ACTION_PS_TOGGLE_MODE, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE }, | ||
126 | { ACTION_PS_RESET, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
127 | { ACTION_PS_EXIT, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | ||
128 | { ACTION_PS_SLOWER, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
129 | { ACTION_PS_FASTER, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
130 | |||
131 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
132 | }; /* button_context_pitchscreen */ | ||
133 | |||
134 | /** Quickscreen **/ | ||
135 | static const struct button_mapping button_context_quickscreen[] = { | ||
136 | { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, | ||
137 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
138 | { ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
139 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
140 | { ACTION_QS_LEFT, BUTTON_PREV, BUTTON_NONE }, | ||
141 | { ACTION_QS_LEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
142 | { ACTION_QS_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | ||
143 | { ACTION_QS_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
144 | { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | ||
145 | |||
146 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
147 | }; /* button_context_quickscreen */ | ||
148 | |||
149 | /** Settings - General Mappings **/ | ||
150 | static const struct button_mapping button_context_settings[] = { | ||
151 | { ACTION_SETTINGS_RESET, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
152 | { ACTION_STD_PREV, BUTTON_PREV, BUTTON_NONE }, | ||
153 | { ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
154 | { ACTION_STD_NEXT, BUTTON_NEXT, BUTTON_NONE }, | ||
155 | { ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
156 | { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | ||
157 | { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | ||
158 | |||
159 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
160 | }; /* button_context_settings */ | ||
161 | |||
162 | static const struct button_mapping button_context_settings_vol_is_inc[] = { | ||
163 | { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE }, | ||
164 | { ACTION_SETTINGS_INCREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
165 | { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE }, | ||
166 | { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
167 | { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE }, | ||
168 | { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
169 | { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
170 | { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
171 | |||
172 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
173 | }; /* button_context_settings_right_is_inc */ | ||
174 | |||
175 | /** Tree **/ | ||
176 | static const struct button_mapping button_context_tree[] = { | ||
177 | { ACTION_TREE_WPS, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, | ||
178 | { ACTION_TREE_HOTKEY, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, | ||
179 | { ACTION_STD_MENU, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION }, | ||
180 | |||
181 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | ||
182 | }; /* button_context_tree */ | ||
183 | |||
184 | /** Yes/No Screen **/ | ||
185 | static const struct button_mapping button_context_yesnoscreen[] = { | ||
186 | { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE }, | ||
187 | |||
188 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
189 | }; /* button_context_settings_yesnoscreen */ | ||
190 | |||
191 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | ||
192 | const struct button_mapping* get_context_mapping(int context) | ||
193 | { | ||
194 | switch (context) | ||
195 | { | ||
196 | case CONTEXT_LIST: | ||
197 | return button_context_list; | ||
198 | case CONTEXT_STD: | ||
199 | return button_context_standard; | ||
200 | case CONTEXT_BOOKMARKSCREEN: | ||
201 | return button_context_bmark; | ||
202 | case CONTEXT_KEYBOARD: | ||
203 | return button_context_keyboard; | ||
204 | case CONTEXT_PITCHSCREEN: | ||
205 | return button_context_pitchscreen; | ||
206 | case CONTEXT_QUICKSCREEN: | ||
207 | return button_context_quickscreen; | ||
208 | case CONTEXT_SETTINGS: | ||
209 | return button_context_settings; | ||
210 | case CONTEXT_SETTINGS_TIME: | ||
211 | case CONTEXT_SETTINGS_COLOURCHOOSER: | ||
212 | case CONTEXT_SETTINGS_EQ: | ||
213 | case CONTEXT_SETTINGS_RECTRIGGER: | ||
214 | return button_context_settings_vol_is_inc; | ||
215 | case CONTEXT_TREE: | ||
216 | case CONTEXT_MAINMENU: | ||
217 | return button_context_tree; | ||
218 | case CONTEXT_WPS: | ||
219 | return button_context_wps; | ||
220 | case CONTEXT_YESNOSCREEN: | ||
221 | return button_context_yesnoscreen; | ||
222 | } | ||
223 | return button_context_standard; | ||
224 | } | ||
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 3f3bd26e30..55f89161a1 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -12534,6 +12534,40 @@ | |||
12534 | </voice> | 12534 | </voice> |
12535 | </phrase> | 12535 | </phrase> |
12536 | <phrase> | 12536 | <phrase> |
12537 | id: LANG_FILTER_SHORT_SHARP | ||
12538 | desc: in sound settings | ||
12539 | user: core | ||
12540 | <source> | ||
12541 | *: none | ||
12542 | filter_roll_off: "Short Sharp" | ||
12543 | </source> | ||
12544 | <dest> | ||
12545 | *: none | ||
12546 | filter_roll_off: "Short Sharp" | ||
12547 | </dest> | ||
12548 | <voice> | ||
12549 | *: none | ||
12550 | filter_roll_off: "Short Sharp" | ||
12551 | </voice> | ||
12552 | </phrase> | ||
12553 | <phrase> | ||
12554 | id: LANG_FILTER_SHORT_SLOW | ||
12555 | desc: in sound settings | ||
12556 | user: core | ||
12557 | <source> | ||
12558 | *: none | ||
12559 | filter_roll_off: "Short Slow" | ||
12560 | </source> | ||
12561 | <dest> | ||
12562 | *: none | ||
12563 | filter_roll_off: "Short Slow" | ||
12564 | </dest> | ||
12565 | <voice> | ||
12566 | *: none | ||
12567 | filter_roll_off: "Short Slow" | ||
12568 | </voice> | ||
12569 | </phrase> | ||
12570 | <phrase> | ||
12537 | id: LANG_FILTER_SHORT | 12571 | id: LANG_FILTER_SHORT |
12538 | desc: in sound settings | 12572 | desc: in sound settings |
12539 | user: core | 12573 | user: core |
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c index ff979abd8e..f68e3ed5a3 100644 --- a/apps/plugins/battery_bench.c +++ b/apps/plugins/battery_bench.c | |||
@@ -281,6 +281,12 @@ | |||
281 | #define BATTERY_ON_TXT "Play - start" | 281 | #define BATTERY_ON_TXT "Play - start" |
282 | #define BATTERY_OFF_TXT "POWER" | 282 | #define BATTERY_OFF_TXT "POWER" |
283 | 283 | ||
284 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
285 | #define BATTERY_ON BUTTON_PLAY | ||
286 | #define BATTERY_OFF BUTTON_POWER | ||
287 | #define BATTERY_ON_TXT "Play - start" | ||
288 | #define BATTERY_OFF_TXT "POWER" | ||
289 | |||
284 | #else | 290 | #else |
285 | #error No keymap defined! | 291 | #error No keymap defined! |
286 | #endif | 292 | #endif |
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index 93b577462b..b2e0383187 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c | |||
@@ -591,6 +591,22 @@ enum { | |||
591 | #define BJACK_RIGHT BUTTON_NEXT | 591 | #define BJACK_RIGHT BUTTON_NEXT |
592 | #define BJACK_LEFT BUTTON_PREV | 592 | #define BJACK_LEFT BUTTON_PREV |
593 | 593 | ||
594 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
595 | #define BJACK_SELECT_NAME "PLAY" | ||
596 | #define BJACK_STAY_NAME "NEXT" | ||
597 | #define BJACK_QUIT_NAME "POWER" | ||
598 | #define BJACK_DOUBLE_NAME "PREV" | ||
599 | #define BJACK_SELECT BUTTON_PLAY | ||
600 | #define BJACK_QUIT BUTTON_POWER | ||
601 | #define BJACK_MAX BUTTON_VOL_UP | ||
602 | #define BJACK_MIN BUTTON_VOL_DOWN | ||
603 | #define BJACK_STAY BUTTON_NEXT | ||
604 | #define BJACK_DOUBLEDOWN BUTTON_PREV | ||
605 | #define BJACK_UP BUTTON_HOME | ||
606 | #define BJACK_DOWN BUTTON_OPTION | ||
607 | #define BJACK_RIGHT BUTTON_NEXT | ||
608 | #define BJACK_LEFT BUTTON_PREV | ||
609 | |||
594 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 610 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
595 | #define BJACK_SELECT_NAME "PLAY" | 611 | #define BJACK_SELECT_NAME "PLAY" |
596 | #define BJACK_STAY_NAME "NEXT" | 612 | #define BJACK_STAY_NAME "NEXT" |
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 5764c6869d..4452f23357 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c | |||
@@ -337,6 +337,16 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD | |||
337 | #define UP BUTTON_HOME | 337 | #define UP BUTTON_HOME |
338 | #define DOWN BUTTON_OPTION | 338 | #define DOWN BUTTON_OPTION |
339 | 339 | ||
340 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
341 | #define QUIT BUTTON_POWER | ||
342 | #define LEFT BUTTON_PREV | ||
343 | #define RIGHT BUTTON_NEXT | ||
344 | #define ALTLEFT BUTTON_VOL_DOWN | ||
345 | #define ALTRIGHT BUTTON_VOL_UP | ||
346 | #define SELECT BUTTON_PLAY | ||
347 | #define UP BUTTON_HOME | ||
348 | #define DOWN BUTTON_OPTION | ||
349 | |||
340 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 350 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
341 | #define QUIT BUTTON_POWER | 351 | #define QUIT BUTTON_POWER |
342 | #define LEFT BUTTON_HOME | 352 | #define LEFT BUTTON_HOME |
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index ac5a6ed7cd..f02f99ee0d 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c | |||
@@ -526,6 +526,17 @@ F3: equal to "=" | |||
526 | #define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) | 526 | #define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) |
527 | #define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) | 527 | #define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) |
528 | 528 | ||
529 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
530 | #define CALCULATOR_LEFT BUTTON_PREV | ||
531 | #define CALCULATOR_RIGHT BUTTON_NEXT | ||
532 | #define CALCULATOR_UP BUTTON_HOME | ||
533 | #define CALCULATOR_DOWN BUTTON_OPTION | ||
534 | #define CALCULATOR_QUIT BUTTON_POWER | ||
535 | #define CALCULATOR_INPUT_CALC_PRE (BUTTON_OPTION|BUTTON_REPEAT) | ||
536 | #define CALCULATOR_INPUT (BUTTON_PLAY|BUTTON_REL) | ||
537 | #define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) | ||
538 | #define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) | ||
539 | |||
529 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 540 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
530 | #define CALCULATOR_LEFT BUTTON_HOME | 541 | #define CALCULATOR_LEFT BUTTON_HOME |
531 | #define CALCULATOR_RIGHT BUTTON_VOL_DOWN | 542 | #define CALCULATOR_RIGHT BUTTON_VOL_DOWN |
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c index 7e2472ffc9..89dcc61714 100644 --- a/apps/plugins/calendar.c +++ b/apps/plugins/calendar.c | |||
@@ -411,6 +411,16 @@ | |||
411 | #define CALENDAR_NEXT_MONTH BUTTON_VOL_UP | 411 | #define CALENDAR_NEXT_MONTH BUTTON_VOL_UP |
412 | #define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN | 412 | #define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN |
413 | 413 | ||
414 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
415 | #define CALENDAR_QUIT BUTTON_POWER | ||
416 | #define CALENDAR_SELECT BUTTON_PLAY | ||
417 | #define CALENDAR_NEXT_WEEK BUTTON_OPTION | ||
418 | #define CALENDAR_PREV_WEEK BUTTON_HOME | ||
419 | #define CALENDAR_NEXT_DAY BUTTON_NEXT | ||
420 | #define CALENDAR_PREV_DAY BUTTON_PREV | ||
421 | #define CALENDAR_NEXT_MONTH BUTTON_VOL_UP | ||
422 | #define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN | ||
423 | |||
414 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 424 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
415 | #define CALENDAR_QUIT BUTTON_POWER | 425 | #define CALENDAR_QUIT BUTTON_POWER |
416 | #define CALENDAR_SELECT BUTTON_PLAY | 426 | #define CALENDAR_SELECT BUTTON_PLAY |
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h index ab0adbb706..567dcb1acb 100644 --- a/apps/plugins/chessbox/chessbox_pgn.h +++ b/apps/plugins/chessbox/chessbox_pgn.h | |||
@@ -553,6 +553,20 @@ | |||
553 | #define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) | 553 | #define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) |
554 | #define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) | 554 | #define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) |
555 | 555 | ||
556 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
557 | #define CB_SELECT BUTTON_PLAY | ||
558 | #define CB_UP BUTTON_HOME | ||
559 | #define CB_DOWN BUTTON_OPTION | ||
560 | #define CB_LEFT BUTTON_PREV | ||
561 | #define CB_RIGHT BUTTON_NEXT | ||
562 | #define CB_PLAY BUTTON_VOL_UP | ||
563 | #define CB_LEVEL BUTTON_VOL_DOWN | ||
564 | #define CB_MENU BUTTON_POWER | ||
565 | #define CB_SCROLL_UP (BUTTON_HOME|BUTTON_REPEAT) | ||
566 | #define CB_SCROLL_DOWN (BUTTON_OPTION|BUTTON_REPEAT) | ||
567 | #define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) | ||
568 | #define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) | ||
569 | |||
556 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 570 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
557 | #define CB_SELECT BUTTON_PLAY | 571 | #define CB_SELECT BUTTON_PLAY |
558 | #define CB_UP BUTTON_PREV | 572 | #define CB_UP BUTTON_PREV |
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c index 649ab164d0..aee9c9f8e7 100644 --- a/apps/plugins/chessclock.c +++ b/apps/plugins/chessclock.c | |||
@@ -396,6 +396,16 @@ | |||
396 | #define CHC_SETTINGS_OK BUTTON_PLAY | 396 | #define CHC_SETTINGS_OK BUTTON_PLAY |
397 | #define CHC_SETTINGS_CANCEL BUTTON_POWER | 397 | #define CHC_SETTINGS_CANCEL BUTTON_POWER |
398 | 398 | ||
399 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
400 | #define CHC_QUIT BUTTON_POWER | ||
401 | #define CHC_STARTSTOP BUTTON_PLAY | ||
402 | #define CHC_RESET BUTTON_OPTION | ||
403 | #define CHC_MENU BUTTON_HOME | ||
404 | #define CHC_SETTINGS_INC BUTTON_NEXT | ||
405 | #define CHC_SETTINGS_DEC BUTTON_PREV | ||
406 | #define CHC_SETTINGS_OK BUTTON_PLAY | ||
407 | #define CHC_SETTINGS_CANCEL BUTTON_POWER | ||
408 | |||
399 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 409 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
400 | #define CHC_QUIT BUTTON_POWER | 410 | #define CHC_QUIT BUTTON_POWER |
401 | #define CHC_STARTSTOP BUTTON_PLAY | 411 | #define CHC_STARTSTOP BUTTON_PLAY |
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index cb7b85786f..bbea442d8e 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c | |||
@@ -1275,6 +1275,14 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
1275 | #define CHIP8_KEY6 BUTTON_NEXT | 1275 | #define CHIP8_KEY6 BUTTON_NEXT |
1276 | #define CHIP8_KEY8 BUTTON_OPTION | 1276 | #define CHIP8_KEY8 BUTTON_OPTION |
1277 | 1277 | ||
1278 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
1279 | #define CHIP8_OFF BUTTON_POWER | ||
1280 | #define CHIP8_KEY2 BUTTON_HOME | ||
1281 | #define CHIP8_KEY4 BUTTON_PREV | ||
1282 | #define CHIP8_KEY5 BUTTON_PLAY | ||
1283 | #define CHIP8_KEY6 BUTTON_NEXT | ||
1284 | #define CHIP8_KEY8 BUTTON_OPTION | ||
1285 | |||
1278 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 1286 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
1279 | #define CHIP8_OFF BUTTON_POWER | 1287 | #define CHIP8_OFF BUTTON_POWER |
1280 | #define CHIP8_KEY2 BUTTON_NEXT | 1288 | #define CHIP8_KEY2 BUTTON_NEXT |
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c index 37fed5dd01..6e9f923460 100644 --- a/apps/plugins/chopper.c +++ b/apps/plugins/chopper.c | |||
@@ -213,6 +213,11 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
213 | #define ACTION BUTTON_PLAY | 213 | #define ACTION BUTTON_PLAY |
214 | #define ACTIONTEXT "PLAY" | 214 | #define ACTIONTEXT "PLAY" |
215 | 215 | ||
216 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
217 | #define QUIT BUTTON_POWER | ||
218 | #define ACTION BUTTON_PLAY | ||
219 | #define ACTIONTEXT "PLAY" | ||
220 | |||
216 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 221 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
217 | #define QUIT BUTTON_POWER | 222 | #define QUIT BUTTON_POWER |
218 | #define ACTION BUTTON_PLAY | 223 | #define ACTION BUTTON_PLAY |
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index 748090358c..d6b28b54b9 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c | |||
@@ -300,6 +300,14 @@ | |||
300 | #define CLIX_BUTTON_RIGHT BUTTON_NEXT | 300 | #define CLIX_BUTTON_RIGHT BUTTON_NEXT |
301 | #define CLIX_BUTTON_CLICK BUTTON_PLAY | 301 | #define CLIX_BUTTON_CLICK BUTTON_PLAY |
302 | 302 | ||
303 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
304 | #define CLIX_BUTTON_QUIT BUTTON_POWER | ||
305 | #define CLIX_BUTTON_UP BUTTON_HOME | ||
306 | #define CLIX_BUTTON_DOWN BUTTON_OPTION | ||
307 | #define CLIX_BUTTON_LEFT BUTTON_PREV | ||
308 | #define CLIX_BUTTON_RIGHT BUTTON_NEXT | ||
309 | #define CLIX_BUTTON_CLICK BUTTON_PLAY | ||
310 | |||
303 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 311 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
304 | #define CLIX_BUTTON_QUIT BUTTON_POWER | 312 | #define CLIX_BUTTON_QUIT BUTTON_POWER |
305 | #define CLIX_BUTTON_UP BUTTON_PREV | 313 | #define CLIX_BUTTON_UP BUTTON_PREV |
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index d2d831f81b..87ab5c1102 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c | |||
@@ -400,6 +400,16 @@ | |||
400 | #define CUBE_PAUSE BUTTON_HOME | 400 | #define CUBE_PAUSE BUTTON_HOME |
401 | #define CUBE_HIGHSPEED BUTTON_PLAY | 401 | #define CUBE_HIGHSPEED BUTTON_PLAY |
402 | 402 | ||
403 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
404 | #define CUBE_QUIT BUTTON_POWER | ||
405 | #define CUBE_NEXT BUTTON_NEXT | ||
406 | #define CUBE_PREV BUTTON_PREV | ||
407 | #define CUBE_INC BUTTON_VOL_UP | ||
408 | #define CUBE_DEC BUTTON_VOL_DOWN | ||
409 | #define CUBE_MODE BUTTON_OPTION | ||
410 | #define CUBE_PAUSE BUTTON_HOME | ||
411 | #define CUBE_HIGHSPEED BUTTON_PLAY | ||
412 | |||
403 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 413 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
404 | #define CUBE_QUIT BUTTON_POWER | 414 | #define CUBE_QUIT BUTTON_POWER |
405 | #define CUBE_NEXT BUTTON_NEXT | 415 | #define CUBE_NEXT BUTTON_NEXT |
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c index fb328639bf..cd3cd90edd 100644 --- a/apps/plugins/doom/i_video.c +++ b/apps/plugins/doom/i_video.c | |||
@@ -588,6 +588,17 @@ void I_ShutdownGraphics(void) | |||
588 | #define DOOMBUTTON_ENTER BUTTON_PLAY | 588 | #define DOOMBUTTON_ENTER BUTTON_PLAY |
589 | #define DOOMBUTTON_WEAPON BUTTON_VOL_UP | 589 | #define DOOMBUTTON_WEAPON BUTTON_VOL_UP |
590 | 590 | ||
591 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
592 | #define DOOMBUTTON_UP BUTTON_UP | ||
593 | #define DOOMBUTTON_DOWN BUTTON_DOWN | ||
594 | #define DOOMBUTTON_LEFT BUTTON_PREV | ||
595 | #define DOOMBUTTON_RIGHT BUTTON_NEXT | ||
596 | #define DOOMBUTTON_SHOOT BUTTON_PLAY | ||
597 | #define DOOMBUTTON_OPEN BUTTON_OPTION | ||
598 | #define DOOMBUTTON_ESC BUTTON_HOME | ||
599 | #define DOOMBUTTON_ENTER BUTTON_PLAY | ||
600 | #define DOOMBUTTON_WEAPON BUTTON_VOL_UP | ||
601 | |||
591 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 602 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
592 | #define DOOMBUTTON_UP BUTTON_PREV | 603 | #define DOOMBUTTON_UP BUTTON_PREV |
593 | #define DOOMBUTTON_DOWN BUTTON_NEXT | 604 | #define DOOMBUTTON_DOWN BUTTON_NEXT |
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c index 2ed0263d75..eeb6611488 100644 --- a/apps/plugins/fft/fft.c +++ b/apps/plugins/fft/fft.c | |||
@@ -352,6 +352,15 @@ GREY_INFO_STRUCT | |||
352 | # define FFT_AMP_SCALE BUTTON_PLAY | 352 | # define FFT_AMP_SCALE BUTTON_PLAY |
353 | # define FFT_QUIT BUTTON_POWER | 353 | # define FFT_QUIT BUTTON_POWER |
354 | 354 | ||
355 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
356 | # define FFT_PREV_GRAPH BUTTON_PREV | ||
357 | # define FFT_NEXT_GRAPH BUTTON_NEXT | ||
358 | # define FFT_ORIENTATION BUTTON_HOME | ||
359 | # define FFT_FREQ_SCALE BUTTON_OPTION | ||
360 | # define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER) | ||
361 | # define FFT_AMP_SCALE BUTTON_PLAY | ||
362 | # define FFT_QUIT BUTTON_POWER | ||
363 | |||
355 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 364 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
356 | # define FFT_PREV_GRAPH BUTTON_PREV | 365 | # define FFT_PREV_GRAPH BUTTON_PREV |
357 | # define FFT_NEXT_GRAPH BUTTON_NEXT | 366 | # define FFT_NEXT_GRAPH BUTTON_NEXT |
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c index 91d83e9291..4fe0681417 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c | |||
@@ -472,6 +472,18 @@ | |||
472 | #define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY) | 472 | #define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY) |
473 | #define FLIPIT_TOGGLE BUTTON_PLAY | 473 | #define FLIPIT_TOGGLE BUTTON_PLAY |
474 | 474 | ||
475 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
476 | |||
477 | #define FLIPIT_LEFT BUTTON_PREV | ||
478 | #define FLIPIT_RIGHT BUTTON_NEXT | ||
479 | #define FLIPIT_UP BUTTON_HOME | ||
480 | #define FLIPIT_DOWN BUTTON_OPTION | ||
481 | #define FLIPIT_QUIT BUTTON_POWER | ||
482 | #define FLIPIT_SHUFFLE (BUTTON_HOME | BUTTON_PREV) | ||
483 | #define FLIPIT_SOLVE (BUTTON_HOME | BUTTON_NEXT) | ||
484 | #define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY) | ||
485 | #define FLIPIT_TOGGLE BUTTON_PLAY | ||
486 | |||
475 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 487 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
476 | 488 | ||
477 | #define FLIPIT_LEFT BUTTON_HOME | 489 | #define FLIPIT_LEFT BUTTON_HOME |
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h index 92a0b87c48..45de45c5cd 100644 --- a/apps/plugins/fractals/fractal.h +++ b/apps/plugins/fractals/fractal.h | |||
@@ -482,6 +482,18 @@ | |||
482 | #define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) | 482 | #define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) |
483 | #define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) | 483 | #define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) |
484 | 484 | ||
485 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
486 | #define FRACTAL_QUIT BUTTON_POWER | ||
487 | #define FRACTAL_UP BUTTON_HOME | ||
488 | #define FRACTAL_DOWN BUTTON_OPTION | ||
489 | #define FRACTAL_LEFT BUTTON_PREV | ||
490 | #define FRACTAL_RIGHT BUTTON_NEXT | ||
491 | #define FRACTAL_ZOOM_IN BUTTON_VOL_UP | ||
492 | #define FRACTAL_ZOOM_OUT BUTTON_VOL_DOWN | ||
493 | #define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_NEXT) | ||
494 | #define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) | ||
495 | #define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) | ||
496 | |||
485 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 497 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
486 | #define FRACTAL_QUIT BUTTON_POWER | 498 | #define FRACTAL_QUIT BUTTON_POWER |
487 | #define FRACTAL_UP BUTTON_PREV | 499 | #define FRACTAL_UP BUTTON_PREV |
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h index ac02d74f50..c6a10e3944 100644 --- a/apps/plugins/goban/goban.h +++ b/apps/plugins/goban/goban.h | |||
@@ -467,6 +467,18 @@ | |||
467 | #define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT | 467 | #define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT |
468 | #define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER | 468 | #define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER |
469 | 469 | ||
470 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
471 | #define GBN_BUTTON_UP BUTTON_HOME | ||
472 | #define GBN_BUTTON_DOWN BUTTON_OPTION | ||
473 | #define GBN_BUTTON_LEFT BUTTON_PREV | ||
474 | #define GBN_BUTTON_RIGHT BUTTON_NEXT | ||
475 | #define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN | ||
476 | #define GBN_BUTTON_ADVANCE BUTTON_VOL_UP | ||
477 | #define GBN_BUTTON_MENU BUTTON_POWER | ||
478 | #define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL | ||
479 | #define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT | ||
480 | #define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER | ||
481 | |||
470 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 482 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
471 | 483 | ||
472 | #define GBN_BUTTON_UP BUTTON_PREV | 484 | #define GBN_BUTTON_UP BUTTON_PREV |
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h index 7aa96023c6..e637a09ca9 100644 --- a/apps/plugins/imageviewer/imageviewer_button.h +++ b/apps/plugins/imageviewer/imageviewer_button.h | |||
@@ -506,6 +506,21 @@ | |||
506 | #define IMGVIEW_MENU BUTTON_POWER | 506 | #define IMGVIEW_MENU BUTTON_POWER |
507 | #define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) | 507 | #define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) |
508 | 508 | ||
509 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
510 | #define IMGVIEW_ZOOM_PRE BUTTON_PLAY | ||
511 | #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) | ||
512 | #define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT) | ||
513 | #define IMGVIEW_UP BUTTON_HOME | ||
514 | #define IMGVIEW_DOWN BUTTON_OPTION | ||
515 | #define IMGVIEW_LEFT BUTTON_PREV | ||
516 | #define IMGVIEW_RIGHT BUTTON_NEXT | ||
517 | #define IMGVIEW_NEXT BUTTON_VOL_UP | ||
518 | #define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT) | ||
519 | #define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN | ||
520 | #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT) | ||
521 | #define IMGVIEW_MENU BUTTON_POWER | ||
522 | #define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) | ||
523 | |||
509 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 524 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
510 | #define IMGVIEW_ZOOM_PRE BUTTON_PLAY | 525 | #define IMGVIEW_ZOOM_PRE BUTTON_PLAY |
511 | #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) | 526 | #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) |
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index e275129d27..5e3cb12163 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c | |||
@@ -282,6 +282,13 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
282 | #define RIGHT BUTTON_VOL_DOWN | 282 | #define RIGHT BUTTON_VOL_DOWN |
283 | #define FIRE BUTTON_VOL_UP | 283 | #define FIRE BUTTON_VOL_UP |
284 | 284 | ||
285 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
286 | |||
287 | #define QUIT BUTTON_POWER | ||
288 | #define LEFT BUTTON_HOME | ||
289 | #define RIGHT BUTTON_VOL_DOWN | ||
290 | #define FIRE BUTTON_VOL_UP | ||
291 | |||
285 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 292 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
286 | 293 | ||
287 | #define QUIT BUTTON_POWER | 294 | #define QUIT BUTTON_POWER |
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index f94825650f..64a15ff4fc 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c | |||
@@ -377,6 +377,16 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
377 | #define HK_SELECT "PLAY" | 377 | #define HK_SELECT "PLAY" |
378 | #define HK_CANCEL "POWER" | 378 | #define HK_CANCEL "POWER" |
379 | 379 | ||
380 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
381 | #define JEWELS_UP BUTTON_HOME | ||
382 | #define JEWELS_DOWN BUTTON_OPTION | ||
383 | #define JEWELS_LEFT BUTTON_PREV | ||
384 | #define JEWELS_RIGHT BUTTON_NEXT | ||
385 | #define JEWELS_SELECT BUTTON_PLAY | ||
386 | #define JEWELS_CANCEL BUTTON_POWER | ||
387 | #define HK_SELECT "PLAY" | ||
388 | #define HK_CANCEL "POWER" | ||
389 | |||
380 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 390 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
381 | #define JEWELS_UP BUTTON_PREV | 391 | #define JEWELS_UP BUTTON_PREV |
382 | #define JEWELS_DOWN BUTTON_NEXT | 392 | #define JEWELS_DOWN BUTTON_NEXT |
diff --git a/apps/plugins/lib/keymaps.h b/apps/plugins/lib/keymaps.h index e3de03f222..2865f9cdd7 100644 --- a/apps/plugins/lib/keymaps.h +++ b/apps/plugins/lib/keymaps.h | |||
@@ -239,6 +239,14 @@ | |||
239 | #define BTN_FIRE BUTTON_PLAY | 239 | #define BTN_FIRE BUTTON_PLAY |
240 | #define BTN_PAUSE BUTTON_POWER | 240 | #define BTN_PAUSE BUTTON_POWER |
241 | 241 | ||
242 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
243 | #define BTN_UP BUTTON_VOL_UP | ||
244 | #define BTN_DOWN BUTTON_VOL_DOWN | ||
245 | #define BTN_LEFT BUTTON_PREV | ||
246 | #define BTN_RIGHT BUTTON_NEXT | ||
247 | #define BTN_FIRE BUTTON_PLAY | ||
248 | #define BTN_PAUSE BUTTON_POWER | ||
249 | |||
242 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 250 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
243 | #define BTN_UP BUTTON_PREV | 251 | #define BTN_UP BUTTON_PREV |
244 | #define BTN_DOWN BUTTON_NEXT | 252 | #define BTN_DOWN BUTTON_NEXT |
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c index c580074d5e..480dc446cb 100644 --- a/apps/plugins/lib/pluginlib_actions.c +++ b/apps/plugins/lib/pluginlib_actions.c | |||
@@ -233,6 +233,15 @@ const struct button_mapping pla_main_ctx[] = | |||
233 | { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE }, | 233 | { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE }, |
234 | { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | 234 | { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, |
235 | { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | 235 | { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
236 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
237 | { PLA_UP, BUTTON_HOME, BUTTON_NONE }, | ||
238 | { PLA_DOWN, BUTTON_OPTION, BUTTON_NONE }, | ||
239 | { PLA_LEFT, BUTTON_PREV, BUTTON_NONE }, | ||
240 | { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | ||
241 | { PLA_UP_REPEAT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, | ||
242 | { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE }, | ||
243 | { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | ||
244 | { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | ||
236 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 245 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
237 | { PLA_UP, BUTTON_PREV, BUTTON_NONE }, | 246 | { PLA_UP, BUTTON_PREV, BUTTON_NONE }, |
238 | { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE }, | 247 | { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE }, |
@@ -464,6 +473,12 @@ const struct button_mapping pla_main_ctx[] = | |||
464 | {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, | 473 | {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, |
465 | {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, | 474 | {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, |
466 | {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | 475 | {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, |
476 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
477 | {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, | ||
478 | {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE}, | ||
479 | {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, | ||
480 | {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, | ||
481 | {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | ||
467 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 482 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
468 | {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, | 483 | {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, |
469 | {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE}, | 484 | {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE}, |
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index e6e2b4bf51..e34cedde21 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c | |||
@@ -317,6 +317,14 @@ | |||
317 | #define MIDI_VOL_DOWN BUTTON_VOL_DOWN | 317 | #define MIDI_VOL_DOWN BUTTON_VOL_DOWN |
318 | #define MIDI_PLAYPAUSE BUTTON_PLAY | 318 | #define MIDI_PLAYPAUSE BUTTON_PLAY |
319 | 319 | ||
320 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
321 | #define MIDI_QUIT BUTTON_POWER | ||
322 | #define MIDI_FFWD BUTTON_NEXT | ||
323 | #define MIDI_REWIND BUTTON_PREV | ||
324 | #define MIDI_VOL_UP BUTTON_VOL_UP | ||
325 | #define MIDI_VOL_DOWN BUTTON_VOL_DOWN | ||
326 | #define MIDI_PLAYPAUSE BUTTON_PLAY | ||
327 | |||
320 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 328 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
321 | #define MIDI_QUIT BUTTON_POWER | 329 | #define MIDI_QUIT BUTTON_POWER |
322 | #define MIDI_FFWD BUTTON_VOL_DOWN | 330 | #define MIDI_FFWD BUTTON_VOL_DOWN |
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c index 01659dbfd2..5872973a45 100644 --- a/apps/plugins/minesweeper.c +++ b/apps/plugins/minesweeper.c | |||
@@ -408,6 +408,19 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
408 | # define MINESWP_DISCOVER2 BUTTON_VOL_UP | 408 | # define MINESWP_DISCOVER2 BUTTON_VOL_UP |
409 | # define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) | 409 | # define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) |
410 | 410 | ||
411 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
412 | # define MINESWP_LEFT BUTTON_PREV | ||
413 | # define MINESWP_RIGHT BUTTON_NEXT | ||
414 | # define MINESWP_UP BUTTON_HOME | ||
415 | # define MINESWP_DOWN BUTTON_OPTION | ||
416 | # define MINESWP_QUIT BUTTON_POWER | ||
417 | # define MINESWP_TOGGLE_PRE BUTTON_PLAY | ||
418 | # define MINESWP_TOGGLE (BUTTON_PLAY | BUTTON_REL) | ||
419 | # define MINESWP_TOGGLE2 BUTTON_VOL_DOWN | ||
420 | # define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT) | ||
421 | # define MINESWP_DISCOVER2 BUTTON_VOL_UP | ||
422 | # define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) | ||
423 | |||
411 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 424 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
412 | # define MINESWP_LEFT BUTTON_HOME | 425 | # define MINESWP_LEFT BUTTON_HOME |
413 | # define MINESWP_RIGHT BUTTON_VOL_DOWN | 426 | # define MINESWP_RIGHT BUTTON_VOL_DOWN |
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c index 3b912ba606..0368edbc88 100644 --- a/apps/plugins/mp3_encoder.c +++ b/apps/plugins/mp3_encoder.c | |||
@@ -2574,6 +2574,11 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
2574 | #define MP3ENC_DONE BUTTON_POWER | 2574 | #define MP3ENC_DONE BUTTON_POWER |
2575 | #define MP3ENC_SELECT BUTTON_PLAY | 2575 | #define MP3ENC_SELECT BUTTON_PLAY |
2576 | 2576 | ||
2577 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
2578 | #define MP3ENC_PREV BUTTON_HOME | ||
2579 | #define MP3ENC_NEXT BUTTON_OPTION | ||
2580 | #define MP3ENC_DONE BUTTON_POWER | ||
2581 | #define MP3ENC_SELECT BUTTON_PLAY | ||
2577 | 2582 | ||
2578 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 2583 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
2579 | #define MP3ENC_PREV BUTTON_PREV | 2584 | #define MP3ENC_PREV BUTTON_PREV |
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index 25eb313591..43143bdaee 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c | |||
@@ -336,6 +336,16 @@ struct mpeg_settings settings; | |||
336 | #define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN | 336 | #define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN |
337 | #define MPEG_START_TIME_EXIT BUTTON_POWER | 337 | #define MPEG_START_TIME_EXIT BUTTON_POWER |
338 | 338 | ||
339 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
340 | #define MPEG_START_TIME_SELECT BUTTON_PLAY | ||
341 | #define MPEG_START_TIME_LEFT BUTTON_PREV | ||
342 | #define MPEG_START_TIME_RIGHT BUTTON_NEXT | ||
343 | #define MPEG_START_TIME_UP BUTTON_HOME | ||
344 | #define MPEG_START_TIME_DOWN BUTTON_OPTION | ||
345 | #define MPEG_START_TIME_LEFT2 BUTTON_VOL_UP | ||
346 | #define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN | ||
347 | #define MPEG_START_TIME_EXIT BUTTON_POWER | ||
348 | |||
339 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 349 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
340 | #define MPEG_START_TIME_SELECT BUTTON_PLAY | 350 | #define MPEG_START_TIME_SELECT BUTTON_PLAY |
341 | #define MPEG_START_TIME_LEFT BUTTON_HOME | 351 | #define MPEG_START_TIME_LEFT BUTTON_HOME |
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index 5c06fe257d..8028913c94 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c | |||
@@ -468,6 +468,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD | |||
468 | #define MPEG_RW BUTTON_PREV | 468 | #define MPEG_RW BUTTON_PREV |
469 | #define MPEG_FF BUTTON_NEXT | 469 | #define MPEG_FF BUTTON_NEXT |
470 | 470 | ||
471 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
472 | #define MPEG_MENU BUTTON_PLAY | ||
473 | #define MPEG_STOP BUTTON_POWER | ||
474 | #define MPEG_PAUSE BUTTON_HOME | ||
475 | #define MPEG_VOLDOWN BUTTON_VOL_DOWN | ||
476 | #define MPEG_VOLUP BUTTON_VOL_UP | ||
477 | #define MPEG_RW BUTTON_PREV | ||
478 | #define MPEG_FF BUTTON_NEXT | ||
479 | |||
471 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 480 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
472 | #define MPEG_MENU BUTTON_PLAY | 481 | #define MPEG_MENU BUTTON_PLAY |
473 | #define MPEG_STOP BUTTON_POWER | 482 | #define MPEG_STOP BUTTON_POWER |
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c index 4fd1883f82..2cf9b96409 100644 --- a/apps/plugins/oscilloscope.c +++ b/apps/plugins/oscilloscope.c | |||
@@ -512,6 +512,19 @@ | |||
512 | #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN | 512 | #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN |
513 | #define NEED_LASTBUTTON | 513 | #define NEED_LASTBUTTON |
514 | 514 | ||
515 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
516 | #define OSCILLOSCOPE_QUIT BUTTON_POWER | ||
517 | #define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY | ||
518 | #define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL) | ||
519 | #define OSCILLOSCOPE_ORIENTATION_PRE BUTTON_PLAY | ||
520 | #define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY | BUTTON_REPEAT) | ||
521 | #define OSCILLOSCOPE_ADVMODE BUTTON_HOME | ||
522 | #define OSCILLOSCOPE_PAUSE BUTTON_OPTION | ||
523 | #define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT | ||
524 | #define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV | ||
525 | #define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP | ||
526 | #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN | ||
527 | #define NEED_LASTBUTTON | ||
515 | 528 | ||
516 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 529 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
517 | #define OSCILLOSCOPE_QUIT BUTTON_POWER | 530 | #define OSCILLOSCOPE_QUIT BUTTON_POWER |
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h index 78a171467a..a687806d96 100644 --- a/apps/plugins/pacbox/pacbox.h +++ b/apps/plugins/pacbox/pacbox.h | |||
@@ -382,6 +382,14 @@ | |||
382 | #define PACMAN_1UP BUTTON_VOL_UP | 382 | #define PACMAN_1UP BUTTON_VOL_UP |
383 | #define PACMAN_COIN BUTTON_PLAY | 383 | #define PACMAN_COIN BUTTON_PLAY |
384 | 384 | ||
385 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
386 | #define PACMAN_UP BUTTON_PREV | ||
387 | #define PACMAN_DOWN BUTTON_NEXT | ||
388 | #define PACMAN_LEFT BUTTON_HOME | ||
389 | #define PACMAN_RIGHT BUTTON_VOL_DOWN | ||
390 | #define PACMAN_MENU BUTTON_POWER | ||
391 | #define PACMAN_1UP BUTTON_VOL_UP | ||
392 | #define PACMAN_COIN BUTTON_PLAY | ||
385 | 393 | ||
386 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 394 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
387 | #define PACMAN_UP BUTTON_PREV | 395 | #define PACMAN_UP BUTTON_PREV |
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c index 0a299c995f..5f947fe5f2 100644 --- a/apps/plugins/pegbox.c +++ b/apps/plugins/pegbox.c | |||
@@ -660,6 +660,23 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
660 | #define LVL_UP_TEXT "VOL+" | 660 | #define LVL_UP_TEXT "VOL+" |
661 | #define LVL_DOWN_TEXT "VOL-" | 661 | #define LVL_DOWN_TEXT "VOL-" |
662 | 662 | ||
663 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
664 | #define PEGBOX_SELECT BUTTON_PLAY | ||
665 | #define PEGBOX_QUIT BUTTON_POWER | ||
666 | #define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME) | ||
667 | #define PEGBOX_LVL_UP BUTTON_VOL_UP | ||
668 | #define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN | ||
669 | #define PEGBOX_UP BUTTON_HOME | ||
670 | #define PEGBOX_DOWN BUTTON_OPTION | ||
671 | #define PEGBOX_RIGHT BUTTON_NEXT | ||
672 | #define PEGBOX_LEFT BUTTON_PREV | ||
673 | |||
674 | #define SELECT_TEXT "PLAY" | ||
675 | #define QUIT_TEXT "POWER" | ||
676 | #define RESTART_TEXT "HOME" | ||
677 | #define LVL_UP_TEXT "VOL+" | ||
678 | #define LVL_DOWN_TEXT "VOL-" | ||
679 | |||
663 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 680 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
664 | #define PEGBOX_SELECT BUTTON_PLAY | 681 | #define PEGBOX_SELECT BUTTON_PLAY |
665 | #define PEGBOX_QUIT BUTTON_POWER | 682 | #define PEGBOX_QUIT BUTTON_POWER |
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index a000a88fe7..41525f3ffe 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c | |||
@@ -309,6 +309,14 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
309 | #define PONG_RIGHT_UP BUTTON_HOME | 309 | #define PONG_RIGHT_UP BUTTON_HOME |
310 | #define PONG_RIGHT_DOWN BUTTON_NEXT | 310 | #define PONG_RIGHT_DOWN BUTTON_NEXT |
311 | 311 | ||
312 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
313 | #define PONG_QUIT BUTTON_POWER | ||
314 | #define PONG_PAUSE BUTTON_PLAY | ||
315 | #define PONG_LEFT_UP BUTTON_PREV | ||
316 | #define PONG_LEFT_DOWN BUTTON_OPTION | ||
317 | #define PONG_RIGHT_UP BUTTON_HOME | ||
318 | #define PONG_RIGHT_DOWN BUTTON_NEXT | ||
319 | |||
312 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 320 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
313 | #define PONG_QUIT BUTTON_POWER | 321 | #define PONG_QUIT BUTTON_POWER |
314 | #define PONG_PAUSE BUTTON_PREV | 322 | #define PONG_PAUSE BUTTON_PREV |
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h index ceeabeebc8..1547e52573 100644 --- a/apps/plugins/reversi/reversi-gui.h +++ b/apps/plugins/reversi/reversi-gui.h | |||
@@ -341,6 +341,17 @@ | |||
341 | #define REVERSI_BUTTON_MENU BUTTON_PLAY | 341 | #define REVERSI_BUTTON_MENU BUTTON_PLAY |
342 | #define REVERSI_BUTTON_MENU_LONGPRESS | 342 | #define REVERSI_BUTTON_MENU_LONGPRESS |
343 | 343 | ||
344 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
345 | #define REVERSI_BUTTON_QUIT BUTTON_POWER | ||
346 | #define REVERSI_BUTTON_UP BUTTON_HOME | ||
347 | #define REVERSI_BUTTON_DOWN BUTTON_OPTION | ||
348 | #define REVERSI_BUTTON_LEFT BUTTON_PREV | ||
349 | #define REVERSI_BUTTON_RIGHT BUTTON_NEXT | ||
350 | #define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY | ||
351 | #define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS | ||
352 | #define REVERSI_BUTTON_MENU BUTTON_PLAY | ||
353 | #define REVERSI_BUTTON_MENU_LONGPRESS | ||
354 | |||
344 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 355 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
345 | #define REVERSI_BUTTON_QUIT BUTTON_POWER | 356 | #define REVERSI_BUTTON_QUIT BUTTON_POWER |
346 | #define REVERSI_BUTTON_UP BUTTON_PREV | 357 | #define REVERSI_BUTTON_UP BUTTON_PREV |
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index f1f260a55d..ec6d892a0b 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c | |||
@@ -467,6 +467,18 @@ | |||
467 | #define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) | 467 | #define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) |
468 | #define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) | 468 | #define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) |
469 | 469 | ||
470 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
471 | |||
472 | #define ROCKBLOX_OFF BUTTON_POWER | ||
473 | #define ROCKBLOX_ROTATE_CCW BUTTON_HOME | ||
474 | #define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN | ||
475 | #define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP | ||
476 | #define ROCKBLOX_DOWN BUTTON_OPTION | ||
477 | #define ROCKBLOX_LEFT BUTTON_PREV | ||
478 | #define ROCKBLOX_RIGHT BUTTON_NEXT | ||
479 | #define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) | ||
480 | #define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) | ||
481 | |||
470 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 482 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
471 | 483 | ||
472 | #define ROCKBLOX_OFF BUTTON_POWER | 484 | #define ROCKBLOX_OFF BUTTON_POWER |
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index 29269f18fb..c96946cf7d 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c | |||
@@ -445,6 +445,16 @@ static void setoptions (void) | |||
445 | options.SELECT = BUTTON_VOL_UP; | 445 | options.SELECT = BUTTON_VOL_UP; |
446 | options.MENU = BUTTON_POWER; | 446 | options.MENU = BUTTON_POWER; |
447 | 447 | ||
448 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
449 | options.UP = BUTTON_PREV; | ||
450 | options.DOWN = BUTTON_NEXT; | ||
451 | |||
452 | options.A = BUTTON_HOME; | ||
453 | options.B = BUTTON_OPTION; | ||
454 | options.START = BUTTON_VOL_DOWN; | ||
455 | options.SELECT = BUTTON_VOL_UP; | ||
456 | options.MENU = BUTTON_POWER; | ||
457 | |||
448 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 458 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
449 | options.UP = BUTTON_PREV; | 459 | options.UP = BUTTON_PREV; |
450 | options.DOWN = BUTTON_NEXT; | 460 | options.DOWN = BUTTON_NEXT; |
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c index 8e4df10280..f28fbdf622 100644 --- a/apps/plugins/rockpaint.c +++ b/apps/plugins/rockpaint.c | |||
@@ -338,6 +338,39 @@ | |||
338 | #define ROCKPAINT_LEFT BUTTON_PREV | 338 | #define ROCKPAINT_LEFT BUTTON_PREV |
339 | #define ROCKPAINT_RIGHT BUTTON_NEXT | 339 | #define ROCKPAINT_RIGHT BUTTON_NEXT |
340 | 340 | ||
341 | #elif CONFIG_KEYPAD == XDUOO_X3II_PAD | ||
342 | #define ROCKPAINT_QUIT BUTTON_POWER | ||
343 | #define ROCKPAINT_DRAW BUTTON_PLAY | ||
344 | #define ROCKPAINT_MENU (BUTTON_HOME | BUTTON_POWER) | ||
345 | #define ROCKPAINT_TOOLBAR BUTTON_VOL_UP | ||
346 | #define ROCKPAINT_TOOLBAR2 BUTTON_VOL_DOWN | ||
347 | #define ROCKPAINT_UP BUTTON_HOME | ||
348 | #define ROCKPAINT_DOWN BUTTON_OPTION | ||
349 | #define ROCKPAINT_LEFT BUTTON_PREV | ||
350 | #define ROCKPAINT_RIGHT BUTTON_NEXT | ||
351 | |||
352 | #elif CONFIG_KEYPAD == XDUOO_X20_PAD | ||
353 | #define ROCKPAINT_QUIT BUTTON_POWER | ||
354 | #define ROCKPAINT_DRAW BUTTON_PLAY | ||
355 | #define ROCKPAINT_MENU (BUTTON_HOME | BUTTON_POWER) | ||
356 | #define ROCKPAINT_TOOLBAR BUTTON_VOL_UP | ||
357 | #define ROCKPAINT_TOOLBAR2 BUTTON_VOL_DOWN | ||
358 | #define ROCKPAINT_UP BUTTON_HOME | ||
359 | #define ROCKPAINT_DOWN BUTTON_OPTION | ||
360 | #define ROCKPAINT_LEFT BUTTON_PREV | ||
361 | #define ROCKPAINT_RIGHT BUTTON_NEXT | ||
362 | |||
363 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
364 | #define ROCKPAINT_QUIT BUTTON_POWER | ||
365 | #define ROCKPAINT_DRAW BUTTON_PLAY | ||
366 | #define ROCKPAINT_MENU (BUTTON_HOME | BUTTON_POWER) | ||
367 | #define ROCKPAINT_TOOLBAR BUTTON_VOL_UP | ||
368 | #define ROCKPAINT_TOOLBAR2 BUTTON_VOL_DOWN | ||
369 | #define ROCKPAINT_UP BUTTON_HOME | ||
370 | #define ROCKPAINT_DOWN BUTTON_OPTION | ||
371 | #define ROCKPAINT_LEFT BUTTON_PREV | ||
372 | #define ROCKPAINT_RIGHT BUTTON_NEXT | ||
373 | |||
341 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 374 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
342 | #define ROCKPAINT_QUIT BUTTON_POWER | 375 | #define ROCKPAINT_QUIT BUTTON_POWER |
343 | #define ROCKPAINT_DRAW BUTTON_PLAY | 376 | #define ROCKPAINT_DRAW BUTTON_PLAY |
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index e8d349defd..7683016066 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c | |||
@@ -330,6 +330,14 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
330 | #define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) | 330 | #define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) |
331 | #define PUZZLE_PICTURE BUTTON_PLAY | 331 | #define PUZZLE_PICTURE BUTTON_PLAY |
332 | 332 | ||
333 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
334 | #define PUZZLE_QUIT BUTTON_POWER | ||
335 | #define PUZZLE_LEFT BUTTON_PREV | ||
336 | #define PUZZLE_RIGHT BUTTON_NEXT | ||
337 | #define PUZZLE_UP BUTTON_HOME | ||
338 | #define PUZZLE_DOWN BUTTON_OPTION | ||
339 | #define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) | ||
340 | #define PUZZLE_PICTURE BUTTON_PLAY | ||
333 | 341 | ||
334 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 342 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
335 | #define PUZZLE_QUIT BUTTON_POWER | 343 | #define PUZZLE_QUIT BUTTON_POWER |
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index 4471cd12a6..ebfb39c9a7 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c | |||
@@ -289,6 +289,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left; | |||
289 | #define SNAKE_DOWN BUTTON_OPTION | 289 | #define SNAKE_DOWN BUTTON_OPTION |
290 | #define SNAKE_PLAYPAUSE BUTTON_PLAY | 290 | #define SNAKE_PLAYPAUSE BUTTON_PLAY |
291 | 291 | ||
292 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
293 | #define SNAKE_QUIT BUTTON_POWER | ||
294 | #define SNAKE_LEFT BUTTON_PREV | ||
295 | #define SNAKE_RIGHT BUTTON_NEXT | ||
296 | #define SNAKE_UP BUTTON_HOME | ||
297 | #define SNAKE_DOWN BUTTON_OPTION | ||
298 | #define SNAKE_PLAYPAUSE BUTTON_PLAY | ||
299 | |||
292 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 300 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
293 | #define SNAKE_QUIT BUTTON_POWER | 301 | #define SNAKE_QUIT BUTTON_POWER |
294 | #define SNAKE_LEFT BUTTON_HOME | 302 | #define SNAKE_LEFT BUTTON_HOME |
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index bfff0bf870..77400dfff1 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c | |||
@@ -419,6 +419,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
419 | #define SNAKE2_PLAYPAUSE BUTTON_PLAY | 419 | #define SNAKE2_PLAYPAUSE BUTTON_PLAY |
420 | #define SNAKE2_PLAYPAUSE_TEXT "PLAY" | 420 | #define SNAKE2_PLAYPAUSE_TEXT "PLAY" |
421 | 421 | ||
422 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
423 | #define SNAKE2_LEFT BUTTON_PREV | ||
424 | #define SNAKE2_RIGHT BUTTON_NEXT | ||
425 | #define SNAKE2_UP BUTTON_HOME | ||
426 | #define SNAKE2_DOWN BUTTON_OPTION | ||
427 | #define SNAKE2_QUIT BUTTON_POWER | ||
428 | #define SNAKE2_PLAYPAUSE BUTTON_PLAY | ||
429 | #define SNAKE2_PLAYPAUSE_TEXT "PLAY" | ||
430 | |||
422 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 431 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
423 | #define SNAKE2_LEFT BUTTON_HOME | 432 | #define SNAKE2_LEFT BUTTON_HOME |
424 | #define SNAKE2_RIGHT BUTTON_VOL_DOWN | 433 | #define SNAKE2_RIGHT BUTTON_VOL_DOWN |
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index 08359d9fcc..da3c303ace 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c | |||
@@ -663,6 +663,22 @@ | |||
663 | #define BUTTON_SAVE BUTTON_PLAY | 663 | #define BUTTON_SAVE BUTTON_PLAY |
664 | #define BUTTON_SAVE_NAME "PLAY" | 664 | #define BUTTON_SAVE_NAME "PLAY" |
665 | 665 | ||
666 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
667 | #define SOKOBAN_LEFT BUTTON_PREV | ||
668 | #define SOKOBAN_RIGHT BUTTON_NEXT | ||
669 | #define SOKOBAN_UP BUTTON_HOME | ||
670 | #define SOKOBAN_DOWN BUTTON_OPTION | ||
671 | #define SOKOBAN_MENU BUTTON_POWER | ||
672 | #define SOKOBAN_UNDO_PRE BUTTON_PLAY | ||
673 | #define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL) | ||
674 | #define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY) | ||
675 | #define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN | ||
676 | #define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_NEXT) | ||
677 | #define SOKOBAN_LEVEL_UP BUTTON_VOL_UP | ||
678 | #define SOKOBAN_PAUSE BUTTON_PLAY | ||
679 | #define BUTTON_SAVE BUTTON_PLAY | ||
680 | #define BUTTON_SAVE_NAME "PLAY" | ||
681 | |||
666 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 682 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
667 | #define SOKOBAN_LEFT BUTTON_HOME | 683 | #define SOKOBAN_LEFT BUTTON_HOME |
668 | #define SOKOBAN_RIGHT BUTTON_VOL_DOWN | 684 | #define SOKOBAN_RIGHT BUTTON_VOL_DOWN |
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index a7844fba92..1996dc97e7 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c | |||
@@ -684,6 +684,25 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
684 | # define HK_CUR2STACK "DBL PLAY" | 684 | # define HK_CUR2STACK "DBL PLAY" |
685 | # define HK_REM2STACK "NEXT" | 685 | # define HK_REM2STACK "NEXT" |
686 | 686 | ||
687 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
688 | # define SOL_QUIT BUTTON_POWER | ||
689 | # define SOL_UP BUTTON_HOME | ||
690 | # define SOL_DOWN BUTTON_OPTION | ||
691 | # define SOL_LEFT BUTTON_PREV | ||
692 | # define SOL_RIGHT BUTTON_NEXT | ||
693 | # define SOL_MOVE_PRE BUTTON_PLAY | ||
694 | # define SOL_MOVE (BUTTON_PLAY | BUTTON_REL) | ||
695 | # define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT) | ||
696 | # define SOL_REM2CUR BUTTON_VOL_DOWN | ||
697 | # define SOL_CUR2STACK_PRE BUTTON_PLAY | ||
698 | # define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT) | ||
699 | # define SOL_REM2STACK BUTTON_VOL_UP | ||
700 | # define HK_MOVE "PLAY" | ||
701 | # define HK_DRAW "DBL HOME" | ||
702 | # define HK_REM2CUR "PREV" | ||
703 | # define HK_CUR2STACK "DBL PLAY" | ||
704 | # define HK_REM2STACK "NEXT" | ||
705 | |||
687 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 706 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
688 | # define SOL_QUIT BUTTON_POWER | 707 | # define SOL_QUIT BUTTON_POWER |
689 | # define SOL_UP BUTTON_PREV | 708 | # define SOL_UP BUTTON_PREV |
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index b366da0d60..1b3bdda0d1 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c | |||
@@ -354,6 +354,15 @@ | |||
354 | #define AST_RIGHT BUTTON_NEXT | 354 | #define AST_RIGHT BUTTON_NEXT |
355 | #define AST_FIRE BUTTON_PLAY | 355 | #define AST_FIRE BUTTON_PLAY |
356 | 356 | ||
357 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
358 | #define AST_PAUSE BUTTON_VOL_UP | ||
359 | #define AST_QUIT BUTTON_POWER | ||
360 | #define AST_THRUST BUTTON_HOME | ||
361 | #define AST_HYPERSPACE BUTTON_OPTION | ||
362 | #define AST_LEFT BUTTON_PREV | ||
363 | #define AST_RIGHT BUTTON_NEXT | ||
364 | #define AST_FIRE BUTTON_PLAY | ||
365 | |||
357 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 366 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
358 | #define AST_PAUSE BUTTON_PLAY | 367 | #define AST_PAUSE BUTTON_PLAY |
359 | #define AST_QUIT BUTTON_POWER | 368 | #define AST_QUIT BUTTON_POWER |
diff --git a/apps/plugins/star.c b/apps/plugins/star.c index ea1d5b8bf8..cf8522fbac 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c | |||
@@ -620,6 +620,22 @@ | |||
620 | #define STAR_LEVEL_DOWN_NAME "PLAY + PREV" | 620 | #define STAR_LEVEL_DOWN_NAME "PLAY + PREV" |
621 | #define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" | 621 | #define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" |
622 | 622 | ||
623 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
624 | #define STAR_QUIT BUTTON_POWER | ||
625 | #define STAR_LEFT BUTTON_PREV | ||
626 | #define STAR_RIGHT BUTTON_NEXT | ||
627 | #define STAR_UP BUTTON_HOME | ||
628 | #define STAR_DOWN BUTTON_OPTION | ||
629 | #define STAR_TOGGLE_CONTROL BUTTON_PLAY | ||
630 | #define STAR_LEVEL_UP (BUTTON_PLAY | BUTTON_NEXT) | ||
631 | #define STAR_LEVEL_DOWN (BUTTON_PLAY | BUTTON_PREV) | ||
632 | #define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_OPTION) | ||
633 | #define STAR_TOGGLE_CONTROL_NAME "PLAY" | ||
634 | #define STAR_QUIT_NAME "POWER" | ||
635 | #define STAR_LEVEL_UP_NAME "PLAY + NEXT" | ||
636 | #define STAR_LEVEL_DOWN_NAME "PLAY + PREV" | ||
637 | #define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" | ||
638 | |||
623 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 639 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
624 | #define STAR_QUIT BUTTON_POWER | 640 | #define STAR_QUIT BUTTON_POWER |
625 | #define STAR_LEFT BUTTON_HOME | 641 | #define STAR_LEFT BUTTON_HOME |
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index 6fca37d06f..801c735f00 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c | |||
@@ -301,6 +301,14 @@ | |||
301 | #define STOPWATCH_SCROLL_UP BUTTON_HOME | 301 | #define STOPWATCH_SCROLL_UP BUTTON_HOME |
302 | #define STOPWATCH_SCROLL_DOWN BUTTON_OPTION | 302 | #define STOPWATCH_SCROLL_DOWN BUTTON_OPTION |
303 | 303 | ||
304 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
305 | #define STOPWATCH_QUIT BUTTON_POWER | ||
306 | #define STOPWATCH_START_STOP BUTTON_NEXT | ||
307 | #define STOPWATCH_RESET_TIMER BUTTON_PREV | ||
308 | #define STOPWATCH_LAP_TIMER BUTTON_PLAY | ||
309 | #define STOPWATCH_SCROLL_UP BUTTON_HOME | ||
310 | #define STOPWATCH_SCROLL_DOWN BUTTON_OPTION | ||
311 | |||
304 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 312 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
305 | #define STOPWATCH_QUIT BUTTON_POWER | 313 | #define STOPWATCH_QUIT BUTTON_POWER |
306 | #define STOPWATCH_START_STOP BUTTON_NEXT | 314 | #define STOPWATCH_START_STOP BUTTON_NEXT |
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h index 434223ef68..749087260d 100644 --- a/apps/plugins/sudoku/sudoku.h +++ b/apps/plugins/sudoku/sudoku.h | |||
@@ -432,6 +432,20 @@ | |||
432 | #define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) | 432 | #define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) |
433 | #define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER) | 433 | #define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER) |
434 | 434 | ||
435 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
436 | #define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER | ||
437 | #define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) | ||
438 | #define SUDOKU_BUTTON_UP BUTTON_HOME | ||
439 | #define SUDOKU_BUTTON_DOWN BUTTON_OPTION | ||
440 | #define SUDOKU_BUTTON_LEFT BUTTON_PREV | ||
441 | #define SUDOKU_BUTTON_RIGHT BUTTON_NEXT | ||
442 | #define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN | ||
443 | #define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP | ||
444 | #define SUDOKU_BUTTON_ALTTOGGLE BUTTON_PLAY | ||
445 | #define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER | ||
446 | #define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) | ||
447 | #define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER) | ||
448 | |||
435 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 449 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
436 | #define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER | 450 | #define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER |
437 | #define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) | 451 | #define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) |
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h index 6fcfc24e4f..dea87ebd52 100644 --- a/apps/plugins/text_viewer/tv_button.h +++ b/apps/plugins/text_viewer/tv_button.h | |||
@@ -533,6 +533,18 @@ | |||
533 | #define TV_LINE_DOWN BUTTON_OPTION | 533 | #define TV_LINE_DOWN BUTTON_OPTION |
534 | #define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY) | 534 | #define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY) |
535 | 535 | ||
536 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
537 | #define TV_QUIT BUTTON_POWER | ||
538 | #define TV_SCROLL_UP BUTTON_VOL_UP | ||
539 | #define TV_SCROLL_DOWN BUTTON_VOL_DOWN | ||
540 | #define TV_SCREEN_LEFT BUTTON_PREV | ||
541 | #define TV_SCREEN_RIGHT BUTTON_NEXT | ||
542 | #define TV_MENU BUTTON_PLAY | ||
543 | #define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME) | ||
544 | #define TV_LINE_UP BUTTON_HOME | ||
545 | #define TV_LINE_DOWN BUTTON_OPTION | ||
546 | #define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY) | ||
547 | |||
536 | /* Xuelin 770/770c keys */ | 548 | /* Xuelin 770/770c keys */ |
537 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 549 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
538 | #define TV_QUIT BUTTON_POWER | 550 | #define TV_QUIT BUTTON_POWER |
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c index d2ba8c992c..66ddf03dd8 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c | |||
@@ -419,6 +419,17 @@ | |||
419 | #define LABEL_MENU "PLAY" | 419 | #define LABEL_MENU "PLAY" |
420 | #define LABEL_VOLUME "VOL UP/DN" | 420 | #define LABEL_VOLUME "VOL UP/DN" |
421 | 421 | ||
422 | #elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | ||
423 | #define VUMETER_QUIT BUTTON_POWER | ||
424 | #define VUMETER_HELP BUTTON_HOME | ||
425 | #define VUMETER_MENU BUTTON_PLAY | ||
426 | #define VUMETER_UP BUTTON_VOL_UP | ||
427 | #define VUMETER_DOWN BUTTON_VOL_DOWN | ||
428 | #define LABEL_HELP "HOME" | ||
429 | #define LABEL_QUIT "POWER" | ||
430 | #define LABEL_MENU "PLAY" | ||
431 | #define LABEL_VOLUME "VOL UP/DN" | ||
432 | |||
422 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) | 433 | #elif (CONFIG_KEYPAD == IHIFI_770_PAD) |
423 | #define VUMETER_QUIT BUTTON_POWER | 434 | #define VUMETER_QUIT BUTTON_POWER |
424 | #define VUMETER_HELP BUTTON_HOME | 435 | #define VUMETER_HELP BUTTON_HOME |
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c index 59f3138c0a..6cf03dfaff 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c | |||
@@ -380,6 +380,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
380 | #define BTN_QUIT BUTTON_POWER | 380 | #define BTN_QUIT BUTTON_POWER |
381 | #define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER) | 381 | #define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER) |
382 | 382 | ||
383 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
384 | #define BTN_DIR_UP BUTTON_HOME | ||
385 | #define BTN_DIR_DOWN BUTTON_OPTION | ||
386 | #define BTN_DIR_LEFT BUTTON_PREV | ||
387 | #define BTN_DIR_RIGHT BUTTON_NEXT | ||
388 | #define BTN_STARTPAUSE BUTTON_PLAY | ||
389 | #define BTN_QUIT BUTTON_POWER | ||
390 | #define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER) | ||
391 | |||
383 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 392 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
384 | #define BTN_DIR_UP BUTTON_PREV | 393 | #define BTN_DIR_UP BUTTON_PREV |
385 | #define BTN_DIR_DOWN BUTTON_NEXT | 394 | #define BTN_DIR_DOWN BUTTON_NEXT |
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index 5ed1fbb612..94161c683d 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c | |||
@@ -342,6 +342,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
342 | #define DOWN BUTTON_OPTION | 342 | #define DOWN BUTTON_OPTION |
343 | #define PAUSE BUTTON_PLAY | 343 | #define PAUSE BUTTON_PLAY |
344 | 344 | ||
345 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
346 | |||
347 | #define QUIT BUTTON_POWER | ||
348 | #define LEFT BUTTON_PREV | ||
349 | #define RIGHT BUTTON_NEXT | ||
350 | #define UP BUTTON_HOME | ||
351 | #define DOWN BUTTON_OPTION | ||
352 | #define PAUSE BUTTON_PLAY | ||
353 | |||
345 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 354 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
346 | 355 | ||
347 | #define QUIT BUTTON_POWER | 356 | #define QUIT BUTTON_POWER |
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h index 967b979883..eae20e7976 100644 --- a/apps/plugins/zxbox/keymaps.h +++ b/apps/plugins/zxbox/keymaps.h | |||
@@ -282,6 +282,14 @@ | |||
282 | #define ZX_UP BUTTON_HOME | 282 | #define ZX_UP BUTTON_HOME |
283 | #define ZX_DOWN BUTTON_OPTION | 283 | #define ZX_DOWN BUTTON_OPTION |
284 | 284 | ||
285 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
286 | #define ZX_SELECT BUTTON_PLAY | ||
287 | #define ZX_MENU BUTTON_POWER | ||
288 | #define ZX_LEFT BUTTON_PREV | ||
289 | #define ZX_RIGHT BUTTON_NEXT | ||
290 | #define ZX_UP BUTTON_HOME | ||
291 | #define ZX_DOWN BUTTON_OPTION | ||
292 | |||
285 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 293 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
286 | #define ZX_SELECT BUTTON_PLAY | 294 | #define ZX_SELECT BUTTON_PLAY |
287 | #define ZX_MENU BUTTON_POWER | 295 | #define ZX_MENU BUTTON_POWER |
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c index 4dc50e2ae8..c16c3cd20a 100644 --- a/apps/plugins/zxbox/zxbox_keyb.c +++ b/apps/plugins/zxbox/zxbox_keyb.c | |||
@@ -275,6 +275,15 @@ | |||
275 | #define KBD_UP BUTTON_HOME | 275 | #define KBD_UP BUTTON_HOME |
276 | #define KBD_DOWN BUTTON_OPTION | 276 | #define KBD_DOWN BUTTON_OPTION |
277 | 277 | ||
278 | #elif CONFIG_KEYPAD == FIIO_M3K_PAD | ||
279 | |||
280 | #define KBD_SELECT BUTTON_PLAY | ||
281 | #define KBD_ABORT BUTTON_POWER | ||
282 | #define KBD_LEFT BUTTON_PREV | ||
283 | #define KBD_RIGHT BUTTON_NEXT | ||
284 | #define KBD_UP BUTTON_HOME | ||
285 | #define KBD_DOWN BUTTON_OPTION | ||
286 | |||
278 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 287 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
279 | 288 | ||
280 | #define KBD_SELECT BUTTON_PLAY | 289 | #define KBD_SELECT BUTTON_PLAY |
diff --git a/apps/settings_list.c b/apps/settings_list.c index 41c20c7809..0ad638746a 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -845,7 +845,10 @@ const struct settings_list settings[] = { | |||
845 | 845 | ||
846 | #ifdef AUDIOHW_HAVE_FILTER_ROLL_OFF | 846 | #ifdef AUDIOHW_HAVE_FILTER_ROLL_OFF |
847 | CHOICE_SETTING(F_SOUNDSETTING, roll_off, LANG_FILTER_ROLL_OFF, 0, | 847 | CHOICE_SETTING(F_SOUNDSETTING, roll_off, LANG_FILTER_ROLL_OFF, 0, |
848 | #ifndef AUDIOHW_HAVE_SHORT_ROLL_OFF | 848 | #if defined(AUDIOHW_HAVE_SHORT2_ROLL_OFF) |
849 | "roll_off", "sharp,slow,short sharp,short slow", sound_set_filter_roll_off, | ||
850 | 4, ID2P(LANG_FILTER_SHARP), ID2P(LANG_FILTER_SLOW), ID2P(LANG_FILTER_SHORT_SHARP), ID2P(LANG_FILTER_SHORT_SLOW)), | ||
851 | #elif defined(AUDIOHW_HAVE_SHORT_ROLL_OFF) | ||
849 | "roll_off", "sharp,slow", sound_set_filter_roll_off, | 852 | "roll_off", "sharp,slow", sound_set_filter_roll_off, |
850 | 2, ID2P(LANG_FILTER_SHARP), ID2P(LANG_FILTER_SLOW)), | 853 | 2, ID2P(LANG_FILTER_SHARP), ID2P(LANG_FILTER_SLOW)), |
851 | #else | 854 | #else |
diff --git a/bootloader/SOURCES b/bootloader/SOURCES index b0d3e26e07..e52c6e782a 100644 --- a/bootloader/SOURCES +++ b/bootloader/SOURCES | |||
@@ -76,7 +76,7 @@ show_logo.c | |||
76 | mpio_hd200_hd300.c | 76 | mpio_hd200_hd300.c |
77 | #elif defined(SONY_NWZ_LINUX) | 77 | #elif defined(SONY_NWZ_LINUX) |
78 | nwz_linux.c | 78 | nwz_linux.c |
79 | #elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) | 79 | #elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) |
80 | rocker_linux.c | 80 | rocker_linux.c |
81 | #elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) \ | 81 | #elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) \ |
82 | || defined(MA9) || defined(MA9C) || defined(MA8) || defined(MA8C) \ | 82 | || defined(MA9) || defined(MA9C) || defined(MA8) || defined(MA8C) \ |
diff --git a/bootloader/rocker_linux.c b/bootloader/rocker_linux.c index e3985ce100..4abc88c413 100644 --- a/bootloader/rocker_linux.c +++ b/bootloader/rocker_linux.c | |||
@@ -51,23 +51,42 @@ | |||
51 | #define ICON_WIDTH 70 | 51 | #define ICON_WIDTH 70 |
52 | #define ICON_HEIGHT 70 | 52 | #define ICON_HEIGHT 70 |
53 | #define RBFILE "rockbox.rocker" | 53 | #define RBFILE "rockbox.rocker" |
54 | #define ICON_NAME bm_hibyicon | ||
55 | #define OF_NAME "HIBY PLAYER" | ||
56 | #include "bitmaps/hibyicon.h" | ||
54 | #elif defined(XDUOO_X3II) | 57 | #elif defined(XDUOO_X3II) |
55 | #define ICON_WIDTH 130 | 58 | #define ICON_WIDTH 130 |
56 | #define ICON_HEIGHT 130 | 59 | #define ICON_HEIGHT 130 |
57 | #define RBFILE "rockbox.x3ii" | 60 | #define RBFILE "rockbox.x3ii" |
61 | #define ICON_NAME bm_hibyicon | ||
62 | #define OF_NAME "HIBY PLAYER" | ||
63 | #include "bitmaps/hibyicon.h" | ||
58 | #elif defined(XDUOO_X20) | 64 | #elif defined(XDUOO_X20) |
59 | #define ICON_WIDTH 130 | 65 | #define ICON_WIDTH 130 |
60 | #define ICON_HEIGHT 130 | 66 | #define ICON_HEIGHT 130 |
61 | #define RBFILE "rockbox.x20" | 67 | #define RBFILE "rockbox.x20" |
68 | #define ICON_NAME bm_hibyicon | ||
69 | #define OF_NAME "HIBY PLAYER" | ||
70 | #include "bitmaps/hibyicon.h" | ||
71 | #elif defined(FIIO_M3K) | ||
72 | #define ICON_WIDTH 130 | ||
73 | #define ICON_HEIGHT 130 | ||
74 | #define RBFILE "rockbox.fiiom3k" | ||
75 | #define ICON_NAME bm_fiioicon | ||
76 | #define OF_NAME "FIIO PLAYER" | ||
77 | #include "bitmaps/fiioicon.h" | ||
62 | #else | 78 | #else |
63 | #error "must define ICON_WIDTH/HEIGHT" | 79 | #error "must define ICON_WIDTH/HEIGHT" |
64 | #endif | 80 | #endif |
65 | 81 | ||
82 | #ifdef FIIO_M3K | ||
83 | #define BASE_DIR "/mnt" | ||
84 | #else | ||
66 | #define BASE_DIR "/mnt/sd_0" | 85 | #define BASE_DIR "/mnt/sd_0" |
86 | #endif | ||
67 | 87 | ||
68 | /* images */ | 88 | /* images */ |
69 | #include "bitmaps/rockboxicon.h" | 89 | #include "bitmaps/rockboxicon.h" |
70 | #include "bitmaps/hibyicon.h" | ||
71 | #include "bitmaps/toolsicon.h" | 90 | #include "bitmaps/toolsicon.h" |
72 | 91 | ||
73 | /* don't issue an error when parsing the file for dependencies */ | 92 | /* don't issue an error when parsing the file for dependencies */ |
@@ -79,6 +98,10 @@ | |||
79 | BMPHEIGHT_hibyicon != ICON_HEIGHT) | 98 | BMPHEIGHT_hibyicon != ICON_HEIGHT) |
80 | #error hibyicon has the wrong resolution | 99 | #error hibyicon has the wrong resolution |
81 | #endif | 100 | #endif |
101 | #if defined(BMPWIDTH_fiioicon) && (BMPWIDTH_fiioicon != ICON_WIDTH || \ | ||
102 | BMPHEIGHT_fiioicon != ICON_HEIGHT) | ||
103 | #error fiioicon has the wrong resolution | ||
104 | #endif | ||
82 | #if defined(BMPWIDTH_toolsicon) && (BMPWIDTH_toolsicon != ICON_WIDTH || \ | 105 | #if defined(BMPWIDTH_toolsicon) && (BMPWIDTH_toolsicon != ICON_WIDTH || \ |
83 | BMPHEIGHT_toolsicon != ICON_HEIGHT) | 106 | BMPHEIGHT_toolsicon != ICON_HEIGHT) |
84 | #error toolsicon has the wrong resolution | 107 | #error toolsicon has the wrong resolution |
@@ -148,6 +171,8 @@ static int get_inactivity_tmo(void) | |||
148 | else | 171 | else |
149 | #endif | 172 | #endif |
150 | return 10 * HZ; /* Inactivity timeout when not on hold */ | 173 | return 10 * HZ; /* Inactivity timeout when not on hold */ |
174 | |||
175 | // XXX if booting the last selection, use a short timeout? | ||
151 | } | 176 | } |
152 | 177 | ||
153 | /* return action on idle timeout */ | 178 | /* return action on idle timeout */ |
@@ -229,11 +254,11 @@ static enum boot_mode get_boot_mode(void) | |||
229 | } | 254 | } |
230 | lcd_set_foreground(LCD_RGBPACK(255, 201, 0)); | 255 | lcd_set_foreground(LCD_RGBPACK(255, 201, 0)); |
231 | /* display icon */ | 256 | /* display icon */ |
232 | const struct bitmap *icon = (mode == BOOT_OF) ? &bm_hibyicon : | 257 | const struct bitmap *icon = (mode == BOOT_OF) ? &ICON_NAME : |
233 | (mode == BOOT_ROCKBOX) ? &bm_rockboxicon : &bm_toolsicon; | 258 | (mode == BOOT_ROCKBOX) ? &bm_rockboxicon : &bm_toolsicon; |
234 | lcd_bmp(icon, (LCD_WIDTH - ICON_WIDTH) / 2, get_icon_y()); | 259 | lcd_bmp(icon, (LCD_WIDTH - ICON_WIDTH) / 2, get_icon_y()); |
235 | /* display bottom description */ | 260 | /* display bottom description */ |
236 | const char *desc = (mode == BOOT_OF) ? "HIBY PLAYER" : | 261 | const char *desc = (mode == BOOT_OF) ? OF_NAME : |
237 | (mode == BOOT_ROCKBOX) ? "ROCKBOX" : "TOOLS"; | 262 | (mode == BOOT_ROCKBOX) ? "ROCKBOX" : "TOOLS"; |
238 | 263 | ||
239 | int desc_height; | 264 | int desc_height; |
diff --git a/firmware/SOURCES b/firmware/SOURCES index 1471eb7b94..42677725fc 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -111,7 +111,7 @@ target/hosted/sonynwz/nvp-nwz.c | |||
111 | target/hosted/sonynwz/nwz-db.c | 111 | target/hosted/sonynwz/nwz-db.c |
112 | #endif | 112 | #endif |
113 | 113 | ||
114 | #if ((defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) && !defined(SIMULATOR)) | 114 | #if ((defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K)) && !defined(SIMULATOR)) |
115 | drivers/lcd-memframe.c | 115 | drivers/lcd-memframe.c |
116 | target/hosted/alsa-controls.c | 116 | target/hosted/alsa-controls.c |
117 | target/hosted/pcm-alsa.c | 117 | target/hosted/pcm-alsa.c |
@@ -133,15 +133,24 @@ target/hosted/agptek/powermgmt-agptek.c | |||
133 | target/hosted/agptek/usb-agptek.c | 133 | target/hosted/agptek/usb-agptek.c |
134 | #endif | 134 | #endif |
135 | 135 | ||
136 | #if ((defined(XDUOO_X3II)||defined(XDUOO_X20)) && !defined(SIMULATOR)) | 136 | #if (defined(XDUOO_X3II) || defined(XDUOO_X20)) && !defined(SIMULATOR) |
137 | target/hosted/xduoo/button-xduoo.c | 137 | target/hosted/xduoo/button-xduoo.c |
138 | target/hosted/xduoo/debug-xduoo.c | 138 | target/hosted/xduoo/debug-xduoo.c |
139 | |||
140 | target/hosted/xduoo/power-xduoo.c | 139 | target/hosted/xduoo/power-xduoo.c |
141 | target/hosted/xduoo/powermgmt-xduoo.c | 140 | target/hosted/xduoo/powermgmt-xduoo.c |
142 | target/hosted/xduoo/usb-xduoo.c | 141 | target/hosted/xduoo/usb-xduoo.c |
143 | #endif | 142 | #endif |
144 | 143 | ||
144 | #if (defined(FIIO_M3K)) && !defined(SIMULATOR) | ||
145 | target/hosted/fiio/buttonlight-fiio.c | ||
146 | target/hosted/fiio/button-fiio.c | ||
147 | target/hosted/fiio/debug-fiio.c | ||
148 | target/hosted/fiio/power-fiio.c | ||
149 | target/hosted/fiio/powermgmt-fiio.c | ||
150 | target/hosted/fiio/system-fiio.c | ||
151 | target/hosted/fiio/usb-fiio.c | ||
152 | #endif | ||
153 | |||
145 | #if defined(SAMSUNG_YPR0) && !defined(SIMULATOR) | 154 | #if defined(SAMSUNG_YPR0) && !defined(SIMULATOR) |
146 | drivers/adc-as3514.c | 155 | drivers/adc-as3514.c |
147 | #if (CONFIG_RTC == RTC_AS3514) | 156 | #if (CONFIG_RTC == RTC_AS3514) |
@@ -498,6 +507,8 @@ target/hosted/pcm-alsa.c | |||
498 | drivers/audio/rocker_codec.c | 507 | drivers/audio/rocker_codec.c |
499 | #elif defined(HAVE_XDUOO_LINUX_CODEC) && !defined(SIMULATOR) | 508 | #elif defined(HAVE_XDUOO_LINUX_CODEC) && !defined(SIMULATOR) |
500 | drivers/audio/xduoolinux_codec.c | 509 | drivers/audio/xduoolinux_codec.c |
510 | #elif defined(HAVE_FIIO_LINUX_CODEC) && !defined(SIMULATOR) | ||
511 | drivers/audio/fiiolinux_codec.c | ||
501 | #elif defined(HAVE_SDL_AUDIO) | 512 | #elif defined(HAVE_SDL_AUDIO) |
502 | drivers/audio/sdl.c | 513 | drivers/audio/sdl.c |
503 | 514 | ||
diff --git a/firmware/asm/SOURCES b/firmware/asm/SOURCES index 085b6351a5..e93f77c770 100644 --- a/firmware/asm/SOURCES +++ b/firmware/asm/SOURCES | |||
@@ -15,7 +15,8 @@ mempcpy.c | |||
15 | defined(CREATIVE_ZVx) || defined(SANSA_CONNECT) || defined(SANSA_FUZEPLUS) || \ | 15 | defined(CREATIVE_ZVx) || defined(SANSA_CONNECT) || defined(SANSA_FUZEPLUS) || \ |
16 | defined(COWON_D2) || defined(MINI2440) || defined(SAMSUNG_YPR0) || \ | 16 | defined(COWON_D2) || defined(MINI2440) || defined(SAMSUNG_YPR0) || \ |
17 | defined(SAMSUNG_YPR1) || defined(DX50) || defined(DX90) || (defined(MROBE_500) && !defined(LCD_USE_DMA)) || \ | 17 | defined(SAMSUNG_YPR1) || defined(DX50) || defined(DX90) || (defined(MROBE_500) && !defined(LCD_USE_DMA)) || \ |
18 | defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) && \ | 18 | defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || \ |
19 | defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K)) && \ | ||
19 | !defined(SIMULATOR) | 20 | !defined(SIMULATOR) |
20 | #if LCD_DEPTH >= 24 | 21 | #if LCD_DEPTH >= 24 |
21 | lcd-as-memframe-24bit.c | 22 | lcd-as-memframe-24bit.c |
diff --git a/firmware/drivers/audio/fiiolinux_codec.c b/firmware/drivers/audio/fiiolinux_codec.c new file mode 100644 index 0000000000..d8024e3c32 --- /dev/null +++ b/firmware/drivers/audio/fiiolinux_codec.c | |||
@@ -0,0 +1,154 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * | ||
11 | * Copyright (c) 2018 Marcin Bukat | ||
12 | * Copyright (c) 2019 Roman Stolyarov | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or | ||
15 | * modify it under the terms of the GNU General Public License | ||
16 | * as published by the Free Software Foundation; either version 2 | ||
17 | * of the License, or (at your option) any later version. | ||
18 | * | ||
19 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
20 | * KIND, either express or implied. | ||
21 | * | ||
22 | ****************************************************************************/ | ||
23 | |||
24 | #include "config.h" | ||
25 | #include "audio.h" | ||
26 | #include "audiohw.h" | ||
27 | #include "system.h" | ||
28 | #include "kernel.h" | ||
29 | #include "panic.h" | ||
30 | #include "sysfs.h" | ||
31 | #include "alsa-controls.h" | ||
32 | #include "pcm-alsa.h" | ||
33 | #include <sys/ioctl.h> | ||
34 | |||
35 | static int fd_hw; | ||
36 | static int ak_hw; | ||
37 | |||
38 | static int vol_sw[2] = {0}; | ||
39 | static long int vol_hw[2] = {0}; | ||
40 | |||
41 | static void hw_open(void) | ||
42 | { | ||
43 | fd_hw = open("/dev/snd/controlC0", O_RDWR); | ||
44 | if(fd_hw < 0) | ||
45 | panicf("Cannot open '/dev/snd/controlC0'"); | ||
46 | |||
47 | ak_hw = open("/dev/ak4376", O_RDWR); | ||
48 | if(ak_hw < 0) | ||
49 | panicf("Cannot open '/dev/ak4376'"); | ||
50 | |||
51 | if(ioctl(ak_hw, 0x20003424, 0) < 0) | ||
52 | { | ||
53 | panicf("Call cmd AK4376_POWER_ON fail"); | ||
54 | } | ||
55 | } | ||
56 | |||
57 | static void hw_close(void) | ||
58 | { | ||
59 | if(ioctl(ak_hw, 0x20003425, 0) < 0) | ||
60 | { | ||
61 | panicf("Call cmd AK4376_POWER_OFF fail"); | ||
62 | } | ||
63 | close(ak_hw); | ||
64 | |||
65 | close(fd_hw); | ||
66 | } | ||
67 | |||
68 | void audiohw_preinit(void) | ||
69 | { | ||
70 | alsa_controls_init(); | ||
71 | hw_open(); | ||
72 | } | ||
73 | |||
74 | void audiohw_postinit(void) | ||
75 | { | ||
76 | } | ||
77 | |||
78 | void audiohw_close(void) | ||
79 | { | ||
80 | hw_close(); | ||
81 | alsa_controls_close(); | ||
82 | } | ||
83 | |||
84 | void audiohw_set_frequency(int fsel) | ||
85 | { | ||
86 | (void)fsel; | ||
87 | } | ||
88 | |||
89 | void audiohw_set_volume(int vol_l, int vol_r) | ||
90 | { | ||
91 | int vol[2]; | ||
92 | |||
93 | vol[0] = vol_l / 20; | ||
94 | vol[1] = vol_r / 20; | ||
95 | |||
96 | for (int i = 0; i < 2; i++) | ||
97 | { | ||
98 | if (vol[i] > -56) | ||
99 | { | ||
100 | if (vol[i] < -12) | ||
101 | { | ||
102 | vol_hw[i] = 1; | ||
103 | vol_sw[i] = vol[i] + 12; | ||
104 | } | ||
105 | else | ||
106 | { | ||
107 | vol_hw[i] = 25 - (-vol[i] * 2); | ||
108 | vol_sw[i] = 0; | ||
109 | } | ||
110 | } | ||
111 | else | ||
112 | { | ||
113 | // Mute | ||
114 | vol_hw[i] = 0; | ||
115 | vol_sw[i] = 0; | ||
116 | } | ||
117 | } | ||
118 | |||
119 | alsa_controls_set_ints("DACL Playback Volume", 1, &vol_hw[0]); | ||
120 | alsa_controls_set_ints("DACR Playback Volume", 1, &vol_hw[1]); | ||
121 | pcm_alsa_set_digital_volume(vol_sw[0], vol_sw[1]); | ||
122 | } | ||
123 | |||
124 | void audiohw_mute(int mute) | ||
125 | { | ||
126 | long int vol0 = 0; | ||
127 | |||
128 | if(mute) | ||
129 | { | ||
130 | alsa_controls_set_ints("DACL Playback Volume", 1, &vol0); | ||
131 | alsa_controls_set_ints("DACR Playback Volume", 1, &vol0); | ||
132 | pcm_alsa_set_digital_volume(0, 0); | ||
133 | } | ||
134 | else | ||
135 | { | ||
136 | alsa_controls_set_ints("DACL Playback Volume", 1, &vol_hw[0]); | ||
137 | alsa_controls_set_ints("DACR Playback Volume", 1, &vol_hw[1]); | ||
138 | pcm_alsa_set_digital_volume(vol_sw[0], vol_sw[1]); | ||
139 | } | ||
140 | } | ||
141 | |||
142 | void audiohw_set_filter_roll_off(int value) | ||
143 | { | ||
144 | /* 0 = Sharp; | ||
145 | 1 = Slow; | ||
146 | 2 = Short Sharp | ||
147 | 3 = Short Slow */ | ||
148 | #if defined(FIIO_M3K) | ||
149 | long int value_hw = value; | ||
150 | alsa_controls_set_ints("AK4376 Digital Filter", 1, &value_hw); | ||
151 | #else | ||
152 | (void)value; | ||
153 | #endif | ||
154 | } | ||
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index 31be0555f8..1ff220e403 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h | |||
@@ -224,6 +224,8 @@ struct sound_settings_info | |||
224 | #include "rocker_codec.h" | 224 | #include "rocker_codec.h" |
225 | #elif defined(HAVE_XDUOO_LINUX_CODEC) | 225 | #elif defined(HAVE_XDUOO_LINUX_CODEC) |
226 | #include "xduoolinux_codec.h" | 226 | #include "xduoolinux_codec.h" |
227 | #elif defined(HAVE_FIIO_LINUX_CODEC) | ||
228 | #include "fiiolinux_codec.h" | ||
227 | #endif | 229 | #endif |
228 | 230 | ||
229 | /* convert caps into defines */ | 231 | /* convert caps into defines */ |
diff --git a/firmware/export/config.h b/firmware/export/config.h index 7c57d9a120..a9753e3cf8 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h | |||
@@ -161,6 +161,7 @@ | |||
161 | #define IHIFI_800_PAD 68 | 161 | #define IHIFI_800_PAD 68 |
162 | #define XDUOO_X3II_PAD 69 | 162 | #define XDUOO_X3II_PAD 69 |
163 | #define XDUOO_X20_PAD 70 | 163 | #define XDUOO_X20_PAD 70 |
164 | #define FIIO_M3K_PAD 71 | ||
164 | 165 | ||
165 | /* CONFIG_REMOTE_KEYPAD */ | 166 | /* CONFIG_REMOTE_KEYPAD */ |
166 | #define H100_REMOTE 1 | 167 | #define H100_REMOTE 1 |
@@ -599,6 +600,8 @@ Lyre prototype 1 */ | |||
599 | #include "config/xduoox3ii.h" | 600 | #include "config/xduoox3ii.h" |
600 | #elif defined(XDUOO_X20) | 601 | #elif defined(XDUOO_X20) |
601 | #include "config/xduoox20.h" | 602 | #include "config/xduoox20.h" |
603 | #elif defined(FIIO_M3K) | ||
604 | #include "config/fiiom3k.h" | ||
602 | #else | 605 | #else |
603 | //#error "unknown hwardware platform!" | 606 | //#error "unknown hwardware platform!" |
604 | #endif | 607 | #endif |
diff --git a/firmware/export/config/fiiom3k.h b/firmware/export/config/fiiom3k.h new file mode 100644 index 0000000000..5b68f3738e --- /dev/null +++ b/firmware/export/config/fiiom3k.h | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * This config file is for the FiiO M3K | ||
3 | */ | ||
4 | |||
5 | /* For Rolo and boot loader */ | ||
6 | #define MODEL_NUMBER 112 | ||
7 | |||
8 | #define MODEL_NAME "FiiO M3K" | ||
9 | |||
10 | /* LCD dimensions */ | ||
11 | #define LCD_WIDTH 240 | ||
12 | #define LCD_HEIGHT 320 | ||
13 | /* sqrt(240^2 + 320^2) / 2.0 = 200 */ | ||
14 | #define LCD_DPI 200 | ||
15 | |||
16 | #ifndef SIMULATOR | ||
17 | #define CONFIG_PLATFORM (PLATFORM_HOSTED) | ||
18 | #endif | ||
19 | |||
20 | #define HW_SAMPR_CAPS (SAMPR_CAP_44 | SAMPR_CAP_48 | SAMPR_CAP_88 | SAMPR_CAP_96 | SAMPR_CAP_176 | SAMPR_CAP_192) | ||
21 | |||
22 | /* define this if you have a bitmap LCD display */ | ||
23 | #define HAVE_LCD_BITMAP | ||
24 | |||
25 | /* define this if you have a colour LCD */ | ||
26 | #define HAVE_LCD_COLOR | ||
27 | |||
28 | #define HAVE_LCD_ENABLE | ||
29 | |||
30 | /* define this if you want album art for this target */ | ||
31 | #define HAVE_ALBUMART | ||
32 | |||
33 | /* define this to enable bitmap scaling */ | ||
34 | #define HAVE_BMP_SCALING | ||
35 | |||
36 | /* define this to enable JPEG decoding */ | ||
37 | #define HAVE_JPEG | ||
38 | |||
39 | /* define this if you have access to the quickscreen */ | ||
40 | #define HAVE_QUICKSCREEN | ||
41 | |||
42 | /* define this if you would like tagcache to build on this target */ | ||
43 | #define HAVE_TAGCACHE | ||
44 | |||
45 | #define LCD_DEPTH 16 | ||
46 | /* Check that but should not matter */ | ||
47 | #define LCD_PIXELFORMAT RGB565 | ||
48 | |||
49 | #define HAVE_BACKLIGHT | ||
50 | #define HAVE_BACKLIGHT_BRIGHTNESS | ||
51 | |||
52 | /* define this if you have a light associated with the buttons */ | ||
53 | #define HAVE_BUTTON_LIGHT | ||
54 | #define HAVE_BUTTONLIGHT_BRIGHTNESS | ||
55 | |||
56 | /* Main LCD backlight brightness range and defaults: the backlight driver | ||
57 | * has levels from 0 to 32. But 0 is off so start at 1. | ||
58 | */ | ||
59 | #define MIN_BRIGHTNESS_SETTING 1 | ||
60 | #define MAX_BRIGHTNESS_SETTING 255 | ||
61 | #define BRIGHTNESS_STEP 5 | ||
62 | #define DEFAULT_BRIGHTNESS_SETTING 70 | ||
63 | |||
64 | /* Which backlight fading type? */ | ||
65 | #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING | ||
66 | |||
67 | /* define this if you have a real-time clock */ | ||
68 | #define CONFIG_RTC APPLICATION | ||
69 | |||
70 | /* The number of bytes reserved for loadable codecs */ | ||
71 | #define CODEC_SIZE 0x80000 | ||
72 | |||
73 | /* The number of bytes reserved for loadable plugins */ | ||
74 | #define PLUGIN_BUFFER_SIZE 0x100000 | ||
75 | |||
76 | #define HAVE_HEADPHONE_DETECTION | ||
77 | |||
78 | /* KeyPad configuration for plugins */ | ||
79 | #define CONFIG_KEYPAD FIIO_M3K_PAD | ||
80 | |||
81 | /* Define this if a programmable hotkey is mapped */ | ||
82 | #define HAVE_HOTKEY | ||
83 | |||
84 | /* define this if the target has volume keys which can be used in the lists */ | ||
85 | #define HAVE_VOLUME_IN_LIST | ||
86 | |||
87 | #ifndef SIMULATOR | ||
88 | /* We have usb power and can detect usb but it is handled by Linux */ | ||
89 | #define HAVE_USB_POWER | ||
90 | |||
91 | #endif | ||
92 | |||
93 | #define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE | ||
94 | |||
95 | /* Linux controlls charging, we can monitor */ | ||
96 | #define CONFIG_CHARGING CHARGING_MONITOR | ||
97 | |||
98 | /* define this if the hardware can be powered off while charging */ | ||
99 | #define HAVE_POWEROFF_WHILE_CHARGING | ||
100 | |||
101 | /* same dimensions as gigabeats */ | ||
102 | #define CONFIG_LCD LCD_INGENIC_LINUX | ||
103 | |||
104 | /* Define this if you have a software controlled poweroff */ | ||
105 | #define HAVE_SW_POWEROFF | ||
106 | |||
107 | /* Define this to the CPU frequency */ | ||
108 | #define CPU_FREQ 1008000000 | ||
109 | |||
110 | /* No special storage */ | ||
111 | #define CONFIG_STORAGE STORAGE_HOSTFS | ||
112 | #define HAVE_STORAGE_FLUSH | ||
113 | |||
114 | /* Battery */ | ||
115 | #define BATTERY_TYPES_COUNT 1 | ||
116 | |||
117 | /* Audio codec */ | ||
118 | #define HAVE_FIIO_LINUX_CODEC | ||
119 | |||
120 | /* We don't have hardware controls */ | ||
121 | #define HAVE_SW_TONE_CONTROLS | ||
122 | |||
123 | /* Battery */ | ||
124 | #define BATTERY_CAPACITY_DEFAULT 1100 /* default battery capacity */ | ||
125 | #define BATTERY_CAPACITY_MIN 1100 /* min. capacity selectable */ | ||
126 | #define BATTERY_CAPACITY_MAX 1100 /* max. capacity selectable */ | ||
127 | #define BATTERY_CAPACITY_INC 0 /* capacity increment */ | ||
diff --git a/firmware/export/fiiolinux_codec.h b/firmware/export/fiiolinux_codec.h index 22c2263046..118a0928d7 100644 --- a/firmware/export/fiiolinux_codec.h +++ b/firmware/export/fiiolinux_codec.h | |||
@@ -2,8 +2,11 @@ | |||
2 | #define __FIIOLINUX_CODEC__ | 2 | #define __FIIOLINUX_CODEC__ |
3 | 3 | ||
4 | #define AUDIOHW_CAPS (FILTER_ROLL_OFF_CAP) | 4 | #define AUDIOHW_CAPS (FILTER_ROLL_OFF_CAP) |
5 | #define AUDIOHW_HAVE_SHORT2_ROLL_OFF | ||
5 | AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -100, 0, -30) | 6 | AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -100, 0, -30) |
6 | AUDIOHW_SETTING(FILTER_ROLL_OFF, "", 0, 1, 0, 4, 0) | 7 | AUDIOHW_SETTING(FILTER_ROLL_OFF, "", 0, 1, 0, 4, 0) |
7 | #endif | 8 | #endif |
8 | 9 | ||
10 | #define AUDIOHW_MUTE_ON_PAUSE | ||
11 | |||
9 | void audiohw_mute(int mute); | 12 | void audiohw_mute(int mute); |
diff --git a/firmware/export/rbpaths.h b/firmware/export/rbpaths.h index 87a6dd91ff..6b686eec0e 100644 --- a/firmware/export/rbpaths.h +++ b/firmware/export/rbpaths.h | |||
@@ -42,7 +42,7 @@ | |||
42 | 42 | ||
43 | #if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ | 43 | #if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ |
44 | defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \ | 44 | defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \ |
45 | defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) | 45 | defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) |
46 | 46 | ||
47 | #if defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) | 47 | #if defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) |
48 | #define HOME_DIR "/mnt/media0" | 48 | #define HOME_DIR "/mnt/media0" |
@@ -53,6 +53,8 @@ | |||
53 | #define HOME_DIR "/mnt/sdcard" | 53 | #define HOME_DIR "/mnt/sdcard" |
54 | #elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) | 54 | #elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) |
55 | #define HOME_DIR "/mnt/sd_0" | 55 | #define HOME_DIR "/mnt/sd_0" |
56 | #elif defined(FIIO_M3K) | ||
57 | #define HOME_DIR "/mnt" | ||
56 | #else | 58 | #else |
57 | #define HOME_DIR "/" | 59 | #define HOME_DIR "/" |
58 | #endif | 60 | #endif |
diff --git a/firmware/target/hosted/backlight-target.h b/firmware/target/hosted/backlight-target.h index e3b8a7bd78..261af09d72 100644 --- a/firmware/target/hosted/backlight-target.h +++ b/firmware/target/hosted/backlight-target.h | |||
@@ -21,16 +21,20 @@ | |||
21 | #ifndef _BACKLIGHT_TARGET_H_ | 21 | #ifndef _BACKLIGHT_TARGET_H_ |
22 | #define _BACKLIGHT_TARGET_H_ | 22 | #define _BACKLIGHT_TARGET_H_ |
23 | 23 | ||
24 | |||
25 | #include <stdbool.h> | 24 | #include <stdbool.h> |
26 | 25 | ||
27 | |||
28 | /* See backlight.c */ | 26 | /* See backlight.c */ |
29 | bool backlight_hw_init(void); | 27 | bool backlight_hw_init(void); |
30 | void backlight_hw_on(void); | 28 | void backlight_hw_on(void); |
31 | void backlight_hw_off(void); | 29 | void backlight_hw_off(void); |
32 | void backlight_hw_brightness(int brightness); | 30 | void backlight_hw_brightness(int brightness); |
33 | 31 | ||
34 | 32 | #ifdef HAVE_BUTTON_LIGHT | |
33 | void buttonlight_hw_on(void); | ||
34 | void buttonlight_hw_off(void); | ||
35 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | ||
36 | void buttonlight_hw_brightness(int brightness); | ||
37 | #endif | ||
35 | #endif | 38 | #endif |
36 | 39 | ||
40 | #endif | ||
diff --git a/firmware/target/hosted/fiio/adc-target.h b/firmware/target/hosted/fiio/adc-target.h new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/firmware/target/hosted/fiio/adc-target.h | |||
diff --git a/firmware/target/hosted/fiio/button-fiio.c b/firmware/target/hosted/fiio/button-fiio.c new file mode 100644 index 0000000000..fcc7480e11 --- /dev/null +++ b/firmware/target/hosted/fiio/button-fiio.c | |||
@@ -0,0 +1,308 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___ | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 Marcin Bukat | ||
10 | * Copyright (C) 2019 Roman Stolyarov | ||
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 | #include <poll.h> | ||
22 | //#include <dir.h> | ||
23 | #include <errno.h> | ||
24 | #include <unistd.h> | ||
25 | #include <sys/types.h> | ||
26 | #include <linux/input.h> | ||
27 | #include <fcntl.h> | ||
28 | #include <string.h> | ||
29 | #include <stdlib.h> | ||
30 | |||
31 | #include "sysfs.h" | ||
32 | #include "button.h" | ||
33 | #include "button-target.h" | ||
34 | #include "panic.h" | ||
35 | |||
36 | #include "kernel.h" | ||
37 | #include "backlight.h" | ||
38 | #include "backlight-target.h" | ||
39 | |||
40 | static int key_enter_delay = 0; | ||
41 | static int key_right_delay = 0; | ||
42 | static int key_left_delay = 0; | ||
43 | static int key_power_delay = 0; | ||
44 | static int key_home_delay = 0; | ||
45 | static int key_backspace_delay = 0; | ||
46 | static int key_leftbrace_delay = 0; | ||
47 | static int key_rightbrace_delay = 0; | ||
48 | static int key_up_delay = 0; | ||
49 | static int key_down_delay = 0; | ||
50 | static int key_f12_delay = 0; | ||
51 | |||
52 | #define NR_POLL_DESC 2 | ||
53 | static struct pollfd poll_fds[NR_POLL_DESC]; | ||
54 | |||
55 | #define DEF_DELAY 5 | ||
56 | |||
57 | static int button_map_on(int keycode) | ||
58 | { | ||
59 | switch(keycode) | ||
60 | { | ||
61 | case KEY_ENTER: | ||
62 | key_enter_delay = DEF_DELAY; | ||
63 | return BUTTON_PLAY; | ||
64 | case KEY_F10: | ||
65 | key_enter_delay = 0; | ||
66 | return BUTTON_PLAY; | ||
67 | |||
68 | case KEY_RIGHT: | ||
69 | key_right_delay = DEF_DELAY; | ||
70 | return BUTTON_VOL_DOWN; | ||
71 | case KEY_F7: | ||
72 | key_right_delay = 0; | ||
73 | return BUTTON_VOL_DOWN; | ||
74 | |||
75 | case KEY_LEFT: | ||
76 | key_left_delay = DEF_DELAY; | ||
77 | return BUTTON_VOL_UP; | ||
78 | case KEY_F6: | ||
79 | key_left_delay = 0; | ||
80 | return BUTTON_VOL_UP; | ||
81 | |||
82 | case KEY_POWER: | ||
83 | key_power_delay = DEF_DELAY; | ||
84 | return BUTTON_POWER; | ||
85 | case KEY_F8: | ||
86 | key_power_delay = 0; | ||
87 | return BUTTON_POWER; | ||
88 | |||
89 | case KEY_HOME: | ||
90 | key_home_delay = DEF_DELAY; | ||
91 | return BUTTON_OPTION; | ||
92 | case KEY_F9: | ||
93 | key_home_delay = 0; | ||
94 | return BUTTON_OPTION; | ||
95 | |||
96 | case KEY_BACKSPACE: | ||
97 | key_backspace_delay = DEF_DELAY; | ||
98 | return BUTTON_HOME; | ||
99 | case KEY_NUMLOCK: | ||
100 | key_backspace_delay = 0; | ||
101 | return BUTTON_HOME; | ||
102 | |||
103 | case KEY_LEFTBRACE: | ||
104 | key_leftbrace_delay = DEF_DELAY; | ||
105 | return BUTTON_PREV; | ||
106 | case KEY_F5: | ||
107 | key_leftbrace_delay = 0; | ||
108 | return BUTTON_PREV; | ||
109 | |||
110 | case KEY_RIGHTBRACE: | ||
111 | key_rightbrace_delay = DEF_DELAY; | ||
112 | return BUTTON_NEXT; | ||
113 | case KEY_F4: | ||
114 | key_rightbrace_delay = 0; | ||
115 | return BUTTON_NEXT; | ||
116 | |||
117 | case KEY_UP: | ||
118 | if (!key_up_delay) key_up_delay = DEF_DELAY; | ||
119 | return BUTTON_UP; | ||
120 | |||
121 | case KEY_DOWN: | ||
122 | if (!key_down_delay) key_down_delay = DEF_DELAY; | ||
123 | return BUTTON_DOWN; | ||
124 | |||
125 | case KEY_F12: | ||
126 | key_f12_delay = DEF_DELAY; | ||
127 | //return BUTTON_UNLOCK; | ||
128 | return 0; | ||
129 | |||
130 | default: | ||
131 | return 0; | ||
132 | } | ||
133 | } | ||
134 | |||
135 | static int button_map_off(int keycode) | ||
136 | { | ||
137 | switch(keycode) | ||
138 | { | ||
139 | case KEY_F10: | ||
140 | return BUTTON_PLAY; | ||
141 | |||
142 | case KEY_F7: | ||
143 | return BUTTON_VOL_DOWN; | ||
144 | |||
145 | case KEY_F6: | ||
146 | return BUTTON_VOL_UP; | ||
147 | |||
148 | case KEY_F8: | ||
149 | return BUTTON_POWER; | ||
150 | |||
151 | case KEY_F9: | ||
152 | return BUTTON_OPTION; | ||
153 | |||
154 | case KEY_NUMLOCK: | ||
155 | return BUTTON_HOME; | ||
156 | |||
157 | case KEY_F5: | ||
158 | return BUTTON_PREV; | ||
159 | |||
160 | case KEY_F4: | ||
161 | return BUTTON_NEXT; | ||
162 | |||
163 | default: | ||
164 | return 0; | ||
165 | } | ||
166 | } | ||
167 | |||
168 | static int button_map_timer(void) | ||
169 | { | ||
170 | int map = 0; | ||
171 | |||
172 | if (key_enter_delay) | ||
173 | { | ||
174 | if (--key_enter_delay == 0) map |= BUTTON_PLAY; | ||
175 | } | ||
176 | if (key_right_delay) | ||
177 | { | ||
178 | if (--key_right_delay == 0) map |= BUTTON_VOL_DOWN; | ||
179 | } | ||
180 | if (key_left_delay) | ||
181 | { | ||
182 | if (--key_left_delay == 0) map |= BUTTON_VOL_UP; | ||
183 | } | ||
184 | if (key_power_delay) | ||
185 | { | ||
186 | if (--key_power_delay == 0) map |= BUTTON_POWER; | ||
187 | } | ||
188 | if (key_home_delay) | ||
189 | { | ||
190 | if (--key_home_delay == 0) map |= BUTTON_OPTION; | ||
191 | } | ||
192 | if (key_backspace_delay) | ||
193 | { | ||
194 | if (--key_backspace_delay == 0) map |= BUTTON_HOME; | ||
195 | } | ||
196 | if (key_leftbrace_delay) | ||
197 | { | ||
198 | if (--key_leftbrace_delay == 0) map |= BUTTON_PREV; | ||
199 | } | ||
200 | if (key_rightbrace_delay) | ||
201 | { | ||
202 | if (--key_rightbrace_delay == 0) map |= BUTTON_NEXT; | ||
203 | } | ||
204 | if (key_up_delay) | ||
205 | { | ||
206 | if (--key_up_delay == 0) map |= BUTTON_UP; | ||
207 | } | ||
208 | if (key_down_delay) | ||
209 | { | ||
210 | if (--key_down_delay == 0) map |= BUTTON_DOWN; | ||
211 | } | ||
212 | if (key_f12_delay) | ||
213 | { | ||
214 | if (--key_f12_delay == 0) map |= 0; //BUTTON_UNLOCK | ||
215 | } | ||
216 | |||
217 | return map; | ||
218 | } | ||
219 | |||
220 | void button_init_device(void) | ||
221 | { | ||
222 | const char * const input_devs[] = { | ||
223 | "/dev/input/event0", | ||
224 | "/dev/input/event1", | ||
225 | }; | ||
226 | |||
227 | for(int i = 0; i < NR_POLL_DESC; i++) | ||
228 | { | ||
229 | int fd = open(input_devs[i], O_RDWR); | ||
230 | |||
231 | if(fd < 0) | ||
232 | { | ||
233 | panicf("Cannot open input device: %s\n", input_devs[i]); | ||
234 | } | ||
235 | |||
236 | poll_fds[i].fd = fd; | ||
237 | poll_fds[i].events = POLLIN; | ||
238 | poll_fds[i].revents = 0; | ||
239 | } | ||
240 | } | ||
241 | |||
242 | int button_read_device(void) | ||
243 | { | ||
244 | static int button_bitmap = 0; | ||
245 | static int map; | ||
246 | struct input_event event; | ||
247 | |||
248 | /* check if there are any events pending and process them */ | ||
249 | while(poll(poll_fds, NR_POLL_DESC, 0)) | ||
250 | { | ||
251 | for(int i = 0; i < NR_POLL_DESC; i++) | ||
252 | { | ||
253 | /* read only if non-blocking */ | ||
254 | if(poll_fds[i].revents & POLLIN) | ||
255 | { | ||
256 | int size = read(poll_fds[i].fd, &event, sizeof(event)); | ||
257 | if(size == (int)sizeof(event)) | ||
258 | { | ||
259 | if(event.type == EV_KEY) | ||
260 | { | ||
261 | int keycode = event.code; | ||
262 | |||
263 | /* event.value == 1 means press | ||
264 | * event.value == 0 means release | ||
265 | */ | ||
266 | bool press = event.value ? true : false; | ||
267 | |||
268 | if(press) | ||
269 | { | ||
270 | map = button_map_on(keycode); | ||
271 | if(map) button_bitmap |= map; | ||
272 | } | ||
273 | else | ||
274 | { | ||
275 | map = button_map_off(keycode); | ||
276 | if(map) button_bitmap &= ~map; | ||
277 | } | ||
278 | } | ||
279 | } | ||
280 | } | ||
281 | } | ||
282 | } | ||
283 | |||
284 | map = button_map_timer(); | ||
285 | if(map) button_bitmap &= ~map; | ||
286 | |||
287 | return button_bitmap; | ||
288 | } | ||
289 | |||
290 | bool headphones_inserted(void) | ||
291 | { | ||
292 | int status = 0; | ||
293 | const char * const sysfs_hs_switch = "/sys/class/misc/axp173/headset_state"; | ||
294 | |||
295 | sysfs_get_int(sysfs_hs_switch, &status); | ||
296 | if (status) return true; | ||
297 | |||
298 | return false; | ||
299 | } | ||
300 | |||
301 | void button_close_device(void) | ||
302 | { | ||
303 | /* close descriptors */ | ||
304 | for(int i = 0; i < NR_POLL_DESC; i++) | ||
305 | { | ||
306 | close(poll_fds[i].fd); | ||
307 | } | ||
308 | } | ||
diff --git a/firmware/target/hosted/fiio/button-target.h b/firmware/target/hosted/fiio/button-target.h new file mode 100644 index 0000000000..8ed3b7ba0f --- /dev/null +++ b/firmware/target/hosted/fiio/button-target.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2019 by Roman Stolyarov | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #ifndef _BUTTON_TARGET_H_ | ||
21 | #define _BUTTON_TARGET_H_ | ||
22 | |||
23 | /* Main unit's buttons */ | ||
24 | #define BUTTON_POWER 0x00000001 | ||
25 | #define BUTTON_HOME 0x00000002 | ||
26 | #define BUTTON_OPTION 0x00000004 | ||
27 | #define BUTTON_PREV 0x00000008 | ||
28 | #define BUTTON_NEXT 0x00000010 | ||
29 | #define BUTTON_PLAY 0x00000020 | ||
30 | #define BUTTON_VOL_UP 0x00000040 | ||
31 | #define BUTTON_VOL_DOWN 0x00000080 | ||
32 | #define BUTTON_UP 0x00000100 | ||
33 | #define BUTTON_DOWN 0x00000200 | ||
34 | |||
35 | #define BUTTON_LEFT 0 | ||
36 | #define BUTTON_RIGHT 0 | ||
37 | |||
38 | #define BUTTON_MAIN (BUTTON_POWER | BUTTON_HOME | BUTTON_OPTION | BUTTON_PREV | \ | ||
39 | BUTTON_NEXT | BUTTON_PLAY | BUTTON_VOL_UP | BUTTON_VOL_DOWN | \ | ||
40 | BUTTON_UP | BUTTON_DOWN) | ||
41 | |||
42 | #define BUTTON_LEFT BUTTON_PREV | ||
43 | #define BUTTON_RIGHT BUTTON_NEXT | ||
44 | |||
45 | /* Software power-off */ | ||
46 | #define POWEROFF_BUTTON BUTTON_POWER | ||
47 | #define POWEROFF_COUNT 25 | ||
48 | |||
49 | #endif /* _BUTTON_TARGET_H_ */ | ||
50 | |||
diff --git a/firmware/target/hosted/fiio/buttonlight-fiio.c b/firmware/target/hosted/fiio/buttonlight-fiio.c new file mode 100644 index 0000000000..37961f7b63 --- /dev/null +++ b/firmware/target/hosted/fiio/buttonlight-fiio.c | |||
@@ -0,0 +1,57 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___ | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 Marcin Bukat | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #include <sys/types.h> | ||
21 | #include <sys/stat.h> | ||
22 | #include <fcntl.h> | ||
23 | #include <stdbool.h> | ||
24 | #include <unistd.h> | ||
25 | #include <string.h> | ||
26 | #include <stdio.h> | ||
27 | #include "config.h" | ||
28 | #include "backlight-target.h" | ||
29 | #include "sysfs.h" | ||
30 | #include "panic.h" | ||
31 | #include "lcd.h" | ||
32 | |||
33 | static const char * const sysfs_kb_brightness = | ||
34 | "/sys/class/jz_pwm_dev/jz_pwm_dev4/duty_ratio"; | ||
35 | |||
36 | static const char * const sysfs_kb_power = | ||
37 | "/sys/class/jz_pwm_dev/jz_pwm_dev4/enable"; | ||
38 | |||
39 | void buttonlight_hw_on(void) | ||
40 | { | ||
41 | sysfs_set_int(sysfs_kb_power, 1); | ||
42 | } | ||
43 | |||
44 | void buttonlight_hw_off(void) | ||
45 | { | ||
46 | sysfs_set_int(sysfs_kb_power, 0); | ||
47 | } | ||
48 | |||
49 | void buttonlight_hw_brightness(int brightness) | ||
50 | { | ||
51 | if (brightness > MAX_BRIGHTNESS_SETTING) | ||
52 | brightness = MAX_BRIGHTNESS_SETTING; | ||
53 | if (brightness < MIN_BRIGHTNESS_SETTING) | ||
54 | brightness = MIN_BRIGHTNESS_SETTING; | ||
55 | |||
56 | sysfs_set_int(sysfs_kb_brightness, brightness); | ||
57 | } | ||
diff --git a/firmware/target/hosted/fiio/debug-fiio.c b/firmware/target/hosted/fiio/debug-fiio.c new file mode 100644 index 0000000000..9812b8f8b9 --- /dev/null +++ b/firmware/target/hosted/fiio/debug-fiio.c | |||
@@ -0,0 +1 @@ | |||
#include "../agptek/debug-agptek.c" | |||
diff --git a/firmware/target/hosted/fiio/fiio.make b/firmware/target/hosted/fiio/fiio.make new file mode 100644 index 0000000000..d159db77f3 --- /dev/null +++ b/firmware/target/hosted/fiio/fiio.make | |||
@@ -0,0 +1,49 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | INCLUDES += -I$(FIRMDIR)/include -I$(FIRMDIR)/export $(TARGET_INC) -I$(BUILDDIR) -I$(APPSDIR) | ||
11 | |||
12 | SIMFLAGS += $(INCLUDES) $(DEFINES) -DHAVE_CONFIG_H $(GCCOPTS) | ||
13 | |||
14 | # bootloader build is sligtly different | ||
15 | ifneq (,$(findstring bootloader,$(APPSDIR))) | ||
16 | |||
17 | SRC += $(call preprocess, $(APPSDIR)/SOURCES) | ||
18 | CLEANOBJS += $(BUILDDIR)/bootloader.* | ||
19 | |||
20 | endif #bootloader | ||
21 | |||
22 | .SECONDEXPANSION: # $$(OBJ) is not populated until after this | ||
23 | |||
24 | ifneq (,$(findstring bootloader,$(APPSDIR))) | ||
25 | # bootloader build | ||
26 | |||
27 | $(BUILDDIR)/bootloader.elf : $$(OBJ) $(FIRMLIB) $(CORE_LIBS) | ||
28 | $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -o $@ $(OBJ) \ | ||
29 | -L$(BUILDDIR)/firmware -lfirmware \ | ||
30 | -L$(BUILDDIR)/lib $(call a2lnk,$(CORE_LIBS)) \ | ||
31 | $(LDOPTS) $(GLOBAL_LDOPTS) -Wl,--gc-sections -Wl,-Map,$(BUILDDIR)/bootloader.map | ||
32 | |||
33 | $(BUILDDIR)/$(BINARY): $(BUILDDIR)/bootloader.elf | ||
34 | $(call PRINTS,OC $(@F))$(call objcopy,$^,$@) | ||
35 | |||
36 | else | ||
37 | # rockbox app build | ||
38 | |||
39 | $(BUILDDIR)/rockbox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS) | ||
40 | $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -o $@ $(OBJ) \ | ||
41 | -L$(BUILDDIR)/firmware -lfirmware \ | ||
42 | -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \ | ||
43 | -L$(BUILDDIR)/lib $(call a2lnk,$(CORE_LIBS)) \ | ||
44 | $(LDOPTS) $(GLOBAL_LDOPTS) -Wl,-Map,$(BUILDDIR)/rockbox.map | ||
45 | |||
46 | $(BUILDDIR)/$(BINARY): $(BUILDDIR)/rockbox.elf | ||
47 | $(call PRINTS,OC $(@F))$(call objcopy,$^,$@) | ||
48 | |||
49 | endif | ||
diff --git a/firmware/target/hosted/fiio/lcd-target.h b/firmware/target/hosted/fiio/lcd-target.h new file mode 100644 index 0000000000..be5427322e --- /dev/null +++ b/firmware/target/hosted/fiio/lcd-target.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2016 Amaury Pouly | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #ifndef __LCD_TARGET_H__ | ||
22 | #define __LCD_TARGET_H__ | ||
23 | |||
24 | /* needs special ioctl() to redraw updated framebuffer content */ | ||
25 | #define LCD_OPTIMIZED_UPDATE | ||
26 | #define LCD_OPTIMIZED_UPDATE_RECT | ||
27 | |||
28 | extern fb_data *framebuffer; /* see lcd-fiio.c */ | ||
29 | #define LCD_FRAMEBUF_ADDR(col, row) (framebuffer + (row)*LCD_WIDTH + (col)) | ||
30 | |||
31 | extern void lcd_set_active(bool active); | ||
32 | #endif /* __LCD_TARGET_H__ */ | ||
diff --git a/firmware/target/hosted/fiio/power-fiio.c b/firmware/target/hosted/fiio/power-fiio.c new file mode 100644 index 0000000000..a2b19ce550 --- /dev/null +++ b/firmware/target/hosted/fiio/power-fiio.c | |||
@@ -0,0 +1,78 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 by Marcin Bukat | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #include <sys/types.h> | ||
21 | #include <fcntl.h> | ||
22 | #include <string.h> | ||
23 | #include <unistd.h> | ||
24 | #include <stdio.h> | ||
25 | |||
26 | #include "system.h" | ||
27 | #include "power.h" | ||
28 | #include "panic.h" | ||
29 | #include "sysfs.h" | ||
30 | #include "usb.h" | ||
31 | |||
32 | #include "power-fiio.h" | ||
33 | |||
34 | const char * const sysfs_bat_voltage = | ||
35 | "/sys/class/power_supply/battery/voltage_now"; | ||
36 | |||
37 | const char * const sysfs_bat_capacity = | ||
38 | "/sys/class/power_supply/battery/capacity"; | ||
39 | |||
40 | const char * const sysfs_bat_status = | ||
41 | "/sys/class/power_supply/battery/status"; | ||
42 | |||
43 | const char * const sysfs_pow_supply = | ||
44 | "/sys/class/power_supply/ac/online"; | ||
45 | |||
46 | unsigned int fiio_power_input_status(void) | ||
47 | { | ||
48 | int present = 0; | ||
49 | sysfs_get_int(sysfs_pow_supply, &present); | ||
50 | |||
51 | usb_enable(present ? true : false); | ||
52 | |||
53 | return present ? POWER_INPUT_USB_CHARGER : POWER_INPUT_NONE; | ||
54 | } | ||
55 | |||
56 | bool fiio_power_charging_status(void) | ||
57 | { | ||
58 | char buf[12] = {0}; | ||
59 | sysfs_get_string(sysfs_bat_status, buf, sizeof(buf)); | ||
60 | |||
61 | return (strncmp(buf, "Charging", 8) == 0); | ||
62 | } | ||
63 | |||
64 | unsigned int fiio_power_get_battery_voltage(void) | ||
65 | { | ||
66 | int battery_voltage; | ||
67 | sysfs_get_int(sysfs_bat_voltage, &battery_voltage); | ||
68 | |||
69 | return battery_voltage; | ||
70 | } | ||
71 | |||
72 | unsigned int fiio_power_get_battery_capacity(void) | ||
73 | { | ||
74 | int battery_capacity; | ||
75 | sysfs_get_int(sysfs_bat_capacity, &battery_capacity); | ||
76 | |||
77 | return battery_capacity * 20; | ||
78 | } | ||
diff --git a/firmware/target/hosted/fiio/power-fiio.h b/firmware/target/hosted/fiio/power-fiio.h new file mode 100644 index 0000000000..c3085e9569 --- /dev/null +++ b/firmware/target/hosted/fiio/power-fiio.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 by Marcin Bukat | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #ifndef _POWER_FIIO_H_ | ||
21 | #define _POWER_FIIO_H_ | ||
22 | |||
23 | #include <stdbool.h> | ||
24 | #include "config.h" | ||
25 | |||
26 | unsigned int fiio_power_input_status(void); | ||
27 | bool fiio_power_charging_status(void); | ||
28 | unsigned int fiio_power_get_battery_voltage(void); | ||
29 | unsigned int fiio_power_get_battery_capacity(void); | ||
30 | #endif /* _POWER_FIIO_H_ */ | ||
31 | |||
diff --git a/firmware/target/hosted/fiio/powermgmt-fiio.c b/firmware/target/hosted/fiio/powermgmt-fiio.c new file mode 100644 index 0000000000..b7c1b5fde2 --- /dev/null +++ b/firmware/target/hosted/fiio/powermgmt-fiio.c | |||
@@ -0,0 +1,68 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 Marcin Bukat | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #include "powermgmt.h" | ||
21 | #include "power.h" | ||
22 | #include "power-fiio.h" | ||
23 | |||
24 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | ||
25 | { | ||
26 | 3470 | ||
27 | }; | ||
28 | |||
29 | /* the OF shuts down at this voltage */ | ||
30 | const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = | ||
31 | { | ||
32 | 3400 | ||
33 | }; | ||
34 | |||
35 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ | ||
36 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | ||
37 | { | ||
38 | { 3400, 3639, 3697, 3723, 3757, 3786, 3836, 3906, 3980, 4050, 4159 } | ||
39 | }; | ||
40 | |||
41 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ | ||
42 | const unsigned short const percent_to_volt_charge[11] = | ||
43 | { | ||
44 | 3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196 | ||
45 | }; | ||
46 | |||
47 | unsigned int power_input_status(void) | ||
48 | { | ||
49 | /* POWER_INPUT_USB_CHARGER, POWER_INPUT_NONE */ | ||
50 | return fiio_power_input_status(); | ||
51 | } | ||
52 | |||
53 | int _battery_voltage(void) | ||
54 | { | ||
55 | return fiio_power_get_battery_voltage(); | ||
56 | } | ||
57 | |||
58 | #if 0 | ||
59 | int _battery_level(void) | ||
60 | { | ||
61 | return fiio_power_get_battery_capacity(); | ||
62 | } | ||
63 | #endif | ||
64 | |||
65 | bool charging_state(void) | ||
66 | { | ||
67 | return fiio_power_charging_status(); | ||
68 | } | ||
diff --git a/firmware/target/hosted/fiio/system-fiio.c b/firmware/target/hosted/fiio/system-fiio.c new file mode 100644 index 0000000000..5e638989a1 --- /dev/null +++ b/firmware/target/hosted/fiio/system-fiio.c | |||
@@ -0,0 +1,205 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 Marcin Bukat | ||
10 | * Copyright (C) 2016 Amaury Pouly | ||
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 | #include <unistd.h> | ||
22 | #include <signal.h> | ||
23 | #include <string.h> | ||
24 | #include <ucontext.h> | ||
25 | #include <backtrace.h> | ||
26 | |||
27 | #include "system.h" | ||
28 | #include "mv.h" | ||
29 | #include "font.h" | ||
30 | #include "power.h" | ||
31 | #include "button.h" | ||
32 | #include "backlight-target.h" | ||
33 | #include "lcd.h" | ||
34 | |||
35 | #include "panic.h" | ||
36 | #include <fcntl.h> | ||
37 | #include <sys/ioctl.h> | ||
38 | |||
39 | /* to make thread-internal.h happy */ | ||
40 | uintptr_t *stackbegin; | ||
41 | uintptr_t *stackend; | ||
42 | |||
43 | static void sig_handler(int sig, siginfo_t *siginfo, void *context) | ||
44 | { | ||
45 | /* safe guard variable - we call backtrace() only on first | ||
46 | * UIE call. This prevent endless loop if backtrace() touches | ||
47 | * memory regions which cause abort | ||
48 | */ | ||
49 | static bool triggered = false; | ||
50 | |||
51 | lcd_set_backdrop(NULL); | ||
52 | lcd_set_drawmode(DRMODE_SOLID); | ||
53 | lcd_set_foreground(LCD_BLACK); | ||
54 | lcd_set_background(LCD_WHITE); | ||
55 | unsigned line = 0; | ||
56 | |||
57 | lcd_setfont(FONT_SYSFIXED); | ||
58 | lcd_set_viewport(NULL); | ||
59 | lcd_clear_display(); | ||
60 | |||
61 | /* get context info */ | ||
62 | ucontext_t *uc = (ucontext_t *)context; | ||
63 | unsigned long pc = uc->uc_mcontext.pc; | ||
64 | unsigned long sp = uc->uc_mcontext.gregs[29]; | ||
65 | |||
66 | lcd_putsf(0, line++, "%s at %08x", strsignal(sig), pc); | ||
67 | |||
68 | if(sig == SIGILL || sig == SIGFPE || sig == SIGSEGV || sig == SIGBUS || sig == SIGTRAP) | ||
69 | lcd_putsf(0, line++, "address 0x%08x", siginfo->si_addr); | ||
70 | |||
71 | if(!triggered) | ||
72 | { | ||
73 | triggered = true; | ||
74 | rb_backtrace(pc, sp, &line); | ||
75 | } | ||
76 | |||
77 | #ifdef ROCKBOX_HAS_LOGF | ||
78 | lcd_putsf(0, line++, "logf:"); | ||
79 | logf_panic_dump(&line); | ||
80 | #endif | ||
81 | |||
82 | lcd_update(); | ||
83 | |||
84 | system_exception_wait(); /* If this returns, try to reboot */ | ||
85 | |||
86 | backlight_hw_off(); | ||
87 | system_reboot(); | ||
88 | while (1); /* halt */ | ||
89 | } | ||
90 | |||
91 | static int axp_hw; | ||
92 | |||
93 | void power_off(void) | ||
94 | { | ||
95 | backlight_hw_off(); | ||
96 | |||
97 | axp_hw = open("/dev/axp173", O_RDWR); | ||
98 | if(axp_hw < 0) | ||
99 | panicf("Cannot open '/dev/axp173'"); | ||
100 | |||
101 | if(ioctl(axp_hw, 0x20003323, 0) < 0) | ||
102 | { | ||
103 | panicf("Call AXP173_SHUTDOWN fail"); | ||
104 | } | ||
105 | |||
106 | close(axp_hw); | ||
107 | } | ||
108 | |||
109 | void system_init(void) | ||
110 | { | ||
111 | int *s; | ||
112 | /* fake stack, to make thread-internal.h happy */ | ||
113 | stackbegin = stackend = (uintptr_t*)&s; | ||
114 | /* catch some signals for easier debugging */ | ||
115 | struct sigaction sa; | ||
116 | sigfillset(&sa.sa_mask); | ||
117 | sa.sa_flags = SA_SIGINFO; | ||
118 | sa.sa_sigaction = &sig_handler; | ||
119 | sigaction(SIGILL, &sa, NULL); | ||
120 | sigaction(SIGABRT, &sa, NULL); | ||
121 | sigaction(SIGFPE, &sa, NULL); | ||
122 | sigaction(SIGSEGV, &sa, NULL); | ||
123 | sigaction(SIGPIPE, &sa, NULL); | ||
124 | sigaction(SIGTERM, &sa, NULL); | ||
125 | sigaction(SIGBUS, &sa, NULL); | ||
126 | sigaction(SIGTERM, &sa, NULL); | ||
127 | } | ||
128 | |||
129 | void system_reboot(void) | ||
130 | { | ||
131 | backlight_hw_off(); | ||
132 | system("/sbin/reboot"); | ||
133 | while (1); /* halt */ | ||
134 | } | ||
135 | |||
136 | void system_exception_wait(void) | ||
137 | { | ||
138 | backlight_hw_on(); | ||
139 | backlight_hw_brightness(DEFAULT_BRIGHTNESS_SETTING); | ||
140 | /* wait until button press and release */ | ||
141 | while(button_read_device() != 0) {} | ||
142 | while(button_read_device() == 0) {} | ||
143 | while(button_read_device() != 0) {} | ||
144 | while(button_read_device() == 0) {} | ||
145 | } | ||
146 | |||
147 | bool hostfs_removable(IF_MD_NONVOID(int drive)) | ||
148 | { | ||
149 | #ifdef HAVE_MULTIDRIVE | ||
150 | if (drive > 0) /* Active LOW */ | ||
151 | return true; | ||
152 | else | ||
153 | #endif | ||
154 | return false; /* internal: always present */ | ||
155 | } | ||
156 | |||
157 | bool hostfs_present(IF_MD_NONVOID(int drive)) | ||
158 | { | ||
159 | #ifdef HAVE_MULTIDRIVE | ||
160 | if (drive > 0) /* Active LOW */ | ||
161 | return true; //FIXME | ||
162 | else | ||
163 | #endif | ||
164 | return true; /* internal: always present */ | ||
165 | } | ||
166 | |||
167 | #ifdef HAVE_MULTIDRIVE | ||
168 | int volume_drive(int drive) | ||
169 | { | ||
170 | return drive; | ||
171 | } | ||
172 | #endif /* HAVE_MULTIDRIVE */ | ||
173 | |||
174 | #ifdef CONFIG_STORAGE_MULTI | ||
175 | int hostfs_driver_type(int drive) | ||
176 | { | ||
177 | return drive > 0 ? STORAGE_SD_NUM : STORAGE_HOSTFS_NUM; | ||
178 | } | ||
179 | #endif /* CONFIG_STORAGE_MULTI */ | ||
180 | |||
181 | int hostfs_init(void) | ||
182 | { | ||
183 | return 0; | ||
184 | } | ||
185 | |||
186 | int hostfs_flush(void) | ||
187 | { | ||
188 | sync(); | ||
189 | return 0; | ||
190 | } | ||
191 | |||
192 | #ifdef HAVE_HOTSWAP | ||
193 | bool volume_removable(int volume) | ||
194 | { | ||
195 | /* don't support more than one partition yet, so volume == drive */ | ||
196 | return hostfs_removable(volume); | ||
197 | } | ||
198 | |||
199 | bool volume_present(int volume) | ||
200 | { | ||
201 | /* don't support more than one partition yet, so volume == drive */ | ||
202 | return hostfs_present(volume); | ||
203 | } | ||
204 | #endif | ||
205 | |||
diff --git a/firmware/target/hosted/fiio/system-target.h b/firmware/target/hosted/fiio/system-target.h new file mode 100644 index 0000000000..830f19fde4 --- /dev/null +++ b/firmware/target/hosted/fiio/system-target.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2017 Marcin Bukat | ||
10 | * Copyright (C) 2016 Amaury Pouly | ||
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 | #ifndef __SYSTEM_TARGET_H__ | ||
22 | #define __SYSTEM_TARGET_H__ | ||
23 | |||
24 | #include "kernel-unix.h" | ||
25 | #include "system-hosted.h" | ||
26 | |||
27 | #define NEED_GENERIC_BYTESWAPS | ||
28 | #endif /* __SYSTEM_TARGET_H__ */ | ||
diff --git a/firmware/target/hosted/fiio/usb-fiio.c b/firmware/target/hosted/fiio/usb-fiio.c new file mode 100644 index 0000000000..76a0ec5a2b --- /dev/null +++ b/firmware/target/hosted/fiio/usb-fiio.c | |||
@@ -0,0 +1,81 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___ | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2018 by Marcin Bukat | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include <stdlib.h> | ||
22 | #include <sys/mount.h> | ||
23 | #include <string.h> | ||
24 | #include "config.h" | ||
25 | #include "disk.h" | ||
26 | #include "usb.h" | ||
27 | #include "sysfs.h" | ||
28 | #include "power.h" | ||
29 | #include "power-fiio.h" | ||
30 | |||
31 | const char * const sysfs_usb_online = | ||
32 | "/sys/class/power_supply/usb/online"; | ||
33 | |||
34 | int usb_detect(void) | ||
35 | { | ||
36 | int present = 0; | ||
37 | sysfs_get_int(sysfs_usb_online, &present); | ||
38 | |||
39 | return present ? USB_INSERTED : USB_EXTRACTED; | ||
40 | } | ||
41 | |||
42 | void usb_enable(bool on) | ||
43 | { | ||
44 | if (on) | ||
45 | { | ||
46 | system ("insmod /lib/modules/3.10.14/kernel/driver/usb/gadget/libcomposite.ko"); | ||
47 | system ("insmod /lib/modules/3.10.14/kernel/driver/usb/gadget/usb_f_mass_storage.ko"); | ||
48 | system ("insmod /lib/modules/3.10.14/kernel/driver/usb/gadget/g_mass_storage.ko file=/dev/mmcblk0 removable=1"); | ||
49 | } | ||
50 | else | ||
51 | { | ||
52 | system ("rmmod g_mass_storage"); | ||
53 | system ("rmmod usb_f_mass_storage"); | ||
54 | system ("rmmod libcomposite"); | ||
55 | } | ||
56 | } | ||
57 | |||
58 | /* This is called by usb thread after usb extract in order to return | ||
59 | * regular FS access | ||
60 | * | ||
61 | * returns the # of successful mounts | ||
62 | */ | ||
63 | int disk_mount_all(void) | ||
64 | { | ||
65 | return 1; | ||
66 | } | ||
67 | |||
68 | /* This is called by usb thread after all threads ACKs usb inserted message | ||
69 | * | ||
70 | * returns the # of successful unmounts | ||
71 | */ | ||
72 | int disk_unmount_all(void) | ||
73 | { | ||
74 | return 1; | ||
75 | } | ||
76 | |||
77 | void usb_init_device(void) | ||
78 | { | ||
79 | system ("insmod /lib/modules/3.10.14/kernel/driver/staging/dwc2/dwc2.ko"); | ||
80 | usb_enable(true); | ||
81 | } | ||
diff --git a/firmware/target/hosted/filesystem-app.c b/firmware/target/hosted/filesystem-app.c index 57f9b47282..f291ece06d 100644 --- a/firmware/target/hosted/filesystem-app.c +++ b/firmware/target/hosted/filesystem-app.c | |||
@@ -36,9 +36,14 @@ | |||
36 | #include "rbpaths.h" | 36 | #include "rbpaths.h" |
37 | #include "logf.h" | 37 | #include "logf.h" |
38 | 38 | ||
39 | #if (defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) && !(defined(BOOTLOADER) || defined(CHECKWPS) || defined(SIMULATOR)) | 39 | #if !(defined(BOOTLOADER) || defined(CHECKWPS) || defined(SIMULATOR)) |
40 | #define PIVOT_ROOT HOME_DIR | 40 | #if (defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) |
41 | #define PIVOT_ROOT "/mnt/sd_0" | ||
42 | #elif defined(FIIO_M3K) | ||
43 | #define PIVOT_ROOT "/mnt" // XXX check this! | ||
44 | #else | ||
41 | #endif | 45 | #endif |
46 | #endif // !(BOOTLOADER|WPS|SIM) | ||
42 | 47 | ||
43 | #if (CONFIG_PLATFORM & PLATFORM_ANDROID) | 48 | #if (CONFIG_PLATFORM & PLATFORM_ANDROID) |
44 | static const char rbhome[] = "/sdcard"; | 49 | static const char rbhome[] = "/sdcard"; |
@@ -52,7 +57,7 @@ static const char rbhome[] = HOME_DIR; | |||
52 | 57 | ||
53 | #if !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || defined(DX50) || \ | 58 | #if !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || defined(DX50) || \ |
54 | defined(SONY_NWZ_LINUX) || defined(DX90) || defined(AGPTEK_ROCKER) || \ | 59 | defined(SONY_NWZ_LINUX) || defined(DX90) || defined(AGPTEK_ROCKER) || \ |
55 | defined(XDUOO_X3II) || defined(XDUOO_X20)) && \ | 60 | defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) || defined(FIIO_M3K_PRO)) && \ |
56 | !defined(__PCTOOL__) | 61 | !defined(__PCTOOL__) |
57 | /* Special dirs are user-accessible (and user-writable) dirs which take priority | 62 | /* Special dirs are user-accessible (and user-writable) dirs which take priority |
58 | * over the ones where Rockbox is installed to. Classic example would be | 63 | * over the ones where Rockbox is installed to. Classic example would be |
diff --git a/tools/builds.pm b/tools/builds.pm index d46aa83495..6f0c4d0445 100644 --- a/tools/builds.pm +++ b/tools/builds.pm | |||
@@ -444,6 +444,10 @@ $releasenotes="/wiki/ReleaseNotes315"; | |||
444 | name => 'xDuoo X20', | 444 | name => 'xDuoo X20', |
445 | status => 2, | 445 | status => 2, |
446 | }, | 446 | }, |
447 | 'fiiom3k' => { | ||
448 | name => 'FiiO M3K', | ||
449 | status => 1, | ||
450 | }, | ||
447 | 'ihifi770' => { | 451 | 'ihifi770' => { |
448 | name => 'Xuelin iHIFI 770', | 452 | name => 'Xuelin iHIFI 770', |
449 | status => 2, | 453 | status => 2, |
@@ -671,5 +675,4 @@ sub voicesforlang($) { | |||
671 | return @list; | 675 | return @list; |
672 | } | 676 | } |
673 | 677 | ||
674 | |||
675 | 1; | 678 | 1; |
diff --git a/tools/configure b/tools/configure index 9e29d84ed8..f5fb6351c0 100755 --- a/tools/configure +++ b/tools/configure | |||
@@ -1588,7 +1588,8 @@ cat <<EOF | |||
1588 | 251) 770 226) NWZ-A10 series | 1588 | 251) 770 226) NWZ-A10 series |
1589 | ==AgpTek== 252) 800 227) NW-A20 series | 1589 | ==AgpTek== 252) 800 227) NW-A20 series |
1590 | 240) Rocker 228) NWZ-A860 series | 1590 | 240) Rocker 228) NWZ-A860 series |
1591 | 229) NWZ-S750 series | 1591 | ==FiiO== 229) NWZ-S750 series |
1592 | 244) M3K | ||
1592 | 1593 | ||
1593 | EOF | 1594 | EOF |
1594 | 1595 | ||
@@ -4055,6 +4056,7 @@ fi | |||
4055 | t_cpu="hosted" | 4056 | t_cpu="hosted" |
4056 | t_manufacturer="xduoo" | 4057 | t_manufacturer="xduoo" |
4057 | t_model="xduoo_x3ii" | 4058 | t_model="xduoo_x3ii" |
4059 | # sysfont="20-Terminus-Bold" | ||
4058 | ;; | 4060 | ;; |
4059 | 4061 | ||
4060 | 243|xduoox20) | 4062 | 243|xduoox20) |
@@ -4077,6 +4079,30 @@ fi | |||
4077 | t_cpu="hosted" | 4079 | t_cpu="hosted" |
4078 | t_manufacturer="xduoo" | 4080 | t_manufacturer="xduoo" |
4079 | t_model="xduoo_x20" | 4081 | t_model="xduoo_x20" |
4082 | # sysfont="20-Terminus-Bold" | ||
4083 | ;; | ||
4084 | |||
4085 | 244|fiiom3k) | ||
4086 | application="yes" | ||
4087 | app_type="fiio" | ||
4088 | target_id=112 | ||
4089 | modelname="fiiom3k" | ||
4090 | target="FIIO_M3K" | ||
4091 | memory=16 # XXX Can probably go over 32? | ||
4092 | tool="cp " | ||
4093 | boottool="cp " | ||
4094 | bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" | ||
4095 | bmp2rb_native="$rootdir/tools/bmp2rb -f 4" | ||
4096 | output="rockbox.m3k" | ||
4097 | bootoutput="bootloader.m3k" | ||
4098 | appextra="recorder:gui:hosted" | ||
4099 | plugins="yes" | ||
4100 | # architecture, manufacturer and model for the target-tree build | ||
4101 | t_cpu="hosted" | ||
4102 | t_manufacturer="fiio" | ||
4103 | t_model="m3k" | ||
4104 | mipsellinuxcc | ||
4105 | # sysfont="20-Terminus-Bold" | ||
4080 | ;; | 4106 | ;; |
4081 | 4107 | ||
4082 | 250|ihifi770c) | 4108 | 250|ihifi770c) |
diff --git a/tools/root.make b/tools/root.make index b588e0f8b1..fd42f9b6b2 100644 --- a/tools/root.make +++ b/tools/root.make | |||
@@ -104,6 +104,8 @@ ifneq (,$(findstring bootloader,$(APPSDIR))) | |||
104 | include $(ROOTDIR)/firmware/target/hosted/agptek/rocker.make | 104 | include $(ROOTDIR)/firmware/target/hosted/agptek/rocker.make |
105 | else ifneq (,$(findstring xduoo,$(APP_TYPE))) | 105 | else ifneq (,$(findstring xduoo,$(APP_TYPE))) |
106 | include $(ROOTDIR)/firmware/target/hosted/xduoo/xduoo.make | 106 | include $(ROOTDIR)/firmware/target/hosted/xduoo/xduoo.make |
107 | else ifneq (,$(findstring fiio,$(APP_TYPE))) | ||
108 | include $(ROOTDIR)/firmware/target/hosted/fiio/fiio.make | ||
107 | else | 109 | else |
108 | include $(APPSDIR)/bootloader.make | 110 | include $(APPSDIR)/bootloader.make |
109 | endif | 111 | endif |
@@ -150,6 +152,10 @@ else # core | |||
150 | include $(ROOTDIR)/firmware/target/hosted/xduoo/xduoo.make | 152 | include $(ROOTDIR)/firmware/target/hosted/xduoo/xduoo.make |
151 | endif | 153 | endif |
152 | 154 | ||
155 | ifneq (,$(findstring fiio,$(APP_TYPE))) | ||
156 | include $(ROOTDIR)/firmware/target/hosted/fiio/fiio.make | ||
157 | endif | ||
158 | |||
153 | ifneq (,$(findstring android_ndk, $(APP_TYPE))) | 159 | ifneq (,$(findstring android_ndk, $(APP_TYPE))) |
154 | include $(ROOTDIR)/firmware/target/hosted/ibasso/android_ndk.make | 160 | include $(ROOTDIR)/firmware/target/hosted/ibasso/android_ndk.make |
155 | else | 161 | else |