Last active
May 7, 2022 03:26
-
-
Save Stanley00/6d9b121ccfca7b8f70a75991d0264b31 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/apps/SOURCES b/apps/SOURCES | |
index 4ae04a4..af32441 100644 | |
--- a/apps/SOURCES | |
+++ b/apps/SOURCES | |
@@ -302,6 +302,8 @@ keymaps/keymap-xduoox3ii.c | |
keymaps/keymap-xduoox20.c | |
#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
keymaps/keymap-fiiom3k.c | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+keymaps/keymap-fiiom5.c | |
#elif CONFIG_KEYPAD == EROSQ_PAD | |
keymaps/keymap-erosq.c | |
#endif | |
diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES | |
index 1d1fcd4..14a56ef 100644 | |
--- a/apps/bitmaps/native/SOURCES | |
+++ b/apps/bitmaps/native/SOURCES | |
@@ -50,7 +50,7 @@ toolsicon.70x70x16.bmp | |
hibyicon.130x130x16.bmp | |
rockboxicon.130x130x16.bmp | |
toolsicon.130x130x16.bmp | |
-#elif defined(FIIO_M3K) | |
+#elif defined(FIIO_M3K) || defined(FIIO_M5) | |
fiioicon.130x130x16.bmp | |
rockboxicon.130x130x16.bmp | |
toolsicon.130x130x16.bmp | |
diff --git a/apps/keymaps/keymap-fiiom5.c b/apps/keymaps/keymap-fiiom5.c | |
new file mode 100644 | |
index 0000000..4fa97e9 | |
--- /dev/null | |
+++ b/apps/keymaps/keymap-fiiom5.c | |
@@ -0,0 +1,224 @@ | |
+/*************************************************************************** | |
+ * __________ __ ___. | |
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | |
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | |
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | |
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | |
+ * \/ \/ \/ \/ \/ | |
+ * $Id$ | |
+ * | |
+ * Copyright (C) 2019 by Roman Stolyarov | |
+ * | |
+ * This program is free software; you can redistribute it and/or | |
+ * modify it under the terms of the GNU General Public License | |
+ * as published by the Free Software Foundation; either version 2 | |
+ * of the License, or (at your option) any later version. | |
+ * | |
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |
+ * KIND, either express or implied. | |
+ * | |
+ ****************************************************************************/ | |
+ | |
+/* Button Code Definitions for FiiO M3K target */ | |
+ | |
+#include "config.h" | |
+#include "action.h" | |
+#include "button.h" | |
+#include "settings.h" | |
+ | |
+/* {Action Code, Button code, Prereq button code } */ | |
+ | |
+/* | |
+ * The format of the list is as follows | |
+ * { Action Code, Button code, Prereq button code } | |
+ * if there's no need to check the previous button's value, use BUTTON_NONE | |
+ * Insert LAST_ITEM_IN_LIST at the end of each mapping | |
+ */ | |
+static const struct button_mapping button_context_standard[] = { | |
+ { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE }, | |
+ { ACTION_STD_PREV, BUTTON_PREV, BUTTON_NONE }, | |
+ { ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, | |
+ { ACTION_STD_NEXT, BUTTON_NEXT, BUTTON_NONE }, | |
+ { ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | |
+ { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | |
+ { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | |
+ { ACTION_STD_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, | |
+ | |
+ LAST_ITEM_IN_LIST | |
+}; /* button_context_standard */ | |
+ | |
+static const struct button_mapping button_context_wps[] = { | |
+ { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | |
+// { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | |
+ { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, | |
+ { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT }, | |
+ { ACTION_WPS_SKIPNEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT }, | |
+ { ACTION_WPS_SEEKFWD, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_WPS_STOPSEEK, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT|BUTTON_REPEAT }, | |
+ { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | |
+ { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | |
+ { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_WPS_BROWSE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | |
+ { ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | |
+ { ACTION_WPS_MENU, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, | |
+ { ACTION_WPS_QUICKSCREEN, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION }, | |
+ { ACTION_WPS_HOTKEY, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, | |
+ | |
+// XXX BUTTON_UP and BUTTON_DOWN aren't on here. | |
+ | |
+ { ACTION_STD_KEYLOCK, BUTTON_POWER, BUTTON_NONE }, | |
+ | |
+ LAST_ITEM_IN_LIST | |
+}; /* button_context_wps */ | |
+ | |
+static const struct button_mapping button_context_list[] = { | |
+ { ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | |
+ { ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | |
+ { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | |
+}; /* button_context_list */ | |
+ | |
+/** Bookmark Screen **/ | |
+static const struct button_mapping button_context_bmark[] = { | |
+ { ACTION_BMS_DELETE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | |
+}; /* button_context_bmark */ | |
+ | |
+/** Keyboard **/ | |
+static const struct button_mapping button_context_keyboard[] = { | |
+ { ACTION_KBD_LEFT, BUTTON_PREV, BUTTON_NONE }, | |
+ { ACTION_KBD_LEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_KBD_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | |
+ { ACTION_KBD_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | |
+ { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_UP, BUTTON_NONE }, | |
+ { ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_DOWN, BUTTON_NONE }, | |
+ { ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_KBD_BACKSPACE, BUTTON_HOME, BUTTON_NONE }, | |
+ { ACTION_KBD_BACKSPACE, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_KBD_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | |
+ { ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | |
+ { ACTION_KBD_ABORT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | |
+ | |
+ LAST_ITEM_IN_LIST | |
+}; /* button_context_keyboard */ | |
+ | |
+/** Pitchscreen **/ | |
+static const struct button_mapping button_context_pitchscreen[] = { | |
+ { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE }, | |
+ { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE }, | |
+ { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_PS_NUDGE_LEFT, BUTTON_PREV, BUTTON_NONE }, | |
+ { ACTION_PS_NUDGE_LEFTOFF, BUTTON_PREV|BUTTON_REL, BUTTON_NONE }, | |
+ { ACTION_PS_NUDGE_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | |
+ { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, | |
+ { ACTION_PS_TOGGLE_MODE, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE }, | |
+ { ACTION_PS_RESET, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | |
+ { ACTION_PS_EXIT, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | |
+ { ACTION_PS_SLOWER, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_PS_FASTER, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | |
+}; /* button_context_pitchscreen */ | |
+ | |
+/** Quickscreen **/ | |
+static const struct button_mapping button_context_quickscreen[] = { | |
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, | |
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE }, | |
+ { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_QS_LEFT, BUTTON_PREV, BUTTON_NONE }, | |
+ { ACTION_QS_LEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_QS_RIGHT, BUTTON_NEXT, BUTTON_NONE }, | |
+ { ACTION_QS_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | |
+}; /* button_context_quickscreen */ | |
+ | |
+/** Settings - General Mappings **/ | |
+static const struct button_mapping button_context_settings[] = { | |
+ { ACTION_SETTINGS_RESET, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | |
+ { ACTION_STD_PREV, BUTTON_PREV, BUTTON_NONE }, | |
+ { ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_STD_NEXT, BUTTON_NEXT, BUTTON_NONE }, | |
+ { ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | |
+ { ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | |
+}; /* button_context_settings */ | |
+ | |
+static const struct button_mapping button_context_settings_vol_is_inc[] = { | |
+ { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_INCREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, | |
+ { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | |
+}; /* button_context_settings_right_is_inc */ | |
+ | |
+/** Tree **/ | |
+static const struct button_mapping button_context_tree[] = { | |
+ { ACTION_TREE_WPS, BUTTON_OPTION|BUTTON_REL, BUTTON_OPTION }, | |
+ { ACTION_TREE_HOTKEY, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME }, | |
+ { ACTION_STD_MENU, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_OPTION }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | |
+}; /* button_context_tree */ | |
+ | |
+/** Yes/No Screen **/ | |
+static const struct button_mapping button_context_yesnoscreen[] = { | |
+ { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE }, | |
+ | |
+ LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | |
+}; /* button_context_settings_yesnoscreen */ | |
+ | |
+/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | |
+const struct button_mapping* get_context_mapping(int context) | |
+{ | |
+ switch (context) | |
+ { | |
+ case CONTEXT_LIST: | |
+ return button_context_list; | |
+ case CONTEXT_STD: | |
+ return button_context_standard; | |
+ case CONTEXT_BOOKMARKSCREEN: | |
+ return button_context_bmark; | |
+ case CONTEXT_KEYBOARD: | |
+ return button_context_keyboard; | |
+ case CONTEXT_PITCHSCREEN: | |
+ return button_context_pitchscreen; | |
+ case CONTEXT_QUICKSCREEN: | |
+ return button_context_quickscreen; | |
+ case CONTEXT_SETTINGS: | |
+ return button_context_settings; | |
+ case CONTEXT_SETTINGS_TIME: | |
+ case CONTEXT_SETTINGS_COLOURCHOOSER: | |
+ case CONTEXT_SETTINGS_EQ: | |
+ case CONTEXT_SETTINGS_RECTRIGGER: | |
+ return button_context_settings_vol_is_inc; | |
+ case CONTEXT_TREE: | |
+ case CONTEXT_MAINMENU: | |
+ return button_context_tree; | |
+ case CONTEXT_WPS: | |
+ return button_context_wps; | |
+ case CONTEXT_YESNOSCREEN: | |
+ return button_context_yesnoscreen; | |
+ } | |
+ return button_context_standard; | |
+} | |
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c | |
index deee281..7d43cba 100644 | |
--- a/apps/plugins/battery_bench.c | |
+++ b/apps/plugins/battery_bench.c | |
@@ -92,6 +92,7 @@ | |
CONFIG_KEYPAD == XDUOO_X3II_PAD || \ | |
CONFIG_KEYPAD == XDUOO_X20_PAD || \ | |
CONFIG_KEYPAD == FIIO_M3K_PAD || \ | |
+ CONFIG_KEYPAD == FIIO_M5_PAD || \ | |
CONFIG_KEYPAD == EROSQ_PAD) | |
#define BATTERY_ON BUTTON_PLAY | |
diff --git a/apps/plugins/bitmaps/mono/SOURCES b/apps/plugins/bitmaps/mono/SOURCES | |
index e6a24b2..c99781c 100644 | |
--- a/apps/plugins/bitmaps/mono/SOURCES | |
+++ b/apps/plugins/bitmaps/mono/SOURCES | |
@@ -19,7 +19,7 @@ bubbles_bubble.138x110x1.bmp | |
((LCD_WIDTH == 176) && (LCD_HEIGHT == 220)) | |
bubbles_bubble.220x176x1.bmp | |
#elif ((LCD_WIDTH == 320) && (LCD_HEIGHT == 240)) || \ | |
- ((LCD_WIDTH == 240) && (LCD_HEIGHT >= 320)) | |
+ ((LCD_WIDTH == 240) && (LCD_HEIGHT >= 240)) | |
bubbles_bubble.320x240x1.bmp | |
#elif ((LCD_WIDTH == 640) && (LCD_HEIGHT == 480)) || \ | |
((LCD_WIDTH == 480) && (LCD_HEIGHT == 640)) | |
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES | |
index 48eb18d..e72c630 100644 | |
--- a/apps/plugins/bitmaps/native/SOURCES | |
+++ b/apps/plugins/bitmaps/native/SOURCES | |
@@ -453,7 +453,7 @@ jewels.160x128x16.bmp | |
jewels.220x176x16.bmp | |
#elif (LCD_WIDTH == 176) && (LCD_HEIGHT == 220) | |
jewels.220x176x16.bmp | |
-#elif (LCD_WIDTH == 240) && (LCD_HEIGHT >= 320) | |
+#elif (LCD_WIDTH == 240) && (LCD_HEIGHT >= 240) | |
jewels.320x240x16.bmp | |
#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240) | |
jewels.320x240x16.bmp | |
@@ -550,6 +550,8 @@ rockblox_background.640x480x16.bmp | |
rockblox_background.320x240x16.bmp | |
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT >= 320) | |
rockblox_background.240x320x16.bmp | |
+#elif (LCD_WIDTH == 240) && (LCD_HEIGHT == 240) | |
+rockblox_background.240x240x16.bmp | |
#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176) | |
rockblox_background.220x176x16.bmp | |
#elif (LCD_WIDTH == 176) && (LCD_HEIGHT == 220) | |
@@ -838,7 +840,7 @@ sudoku_inverse.220x176x16.bmp | |
sudoku_start.320x240x16.bmp | |
sudoku_normal.320x240x16.bmp | |
sudoku_inverse.320x240x16.bmp | |
-#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240) && (LCD_DEPTH >= 16) | |
+#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT == 240) && (LCD_DEPTH >= 16) | |
sudoku_start.320x240x16.bmp | |
sudoku_normal.320x240x16.bmp | |
sudoku_inverse.320x240x16.bmp | |
@@ -873,7 +875,7 @@ superdom_boarditems.220x176x16.bmp | |
superdom_boarditems.176x132x16.bmp | |
#elif (LCD_WIDTH == 320 && LCD_HEIGHT == 240) | |
superdom_boarditems.320x240x16.bmp | |
-#elif ((LCD_WIDTH == 240) && (LCD_HEIGHT == 320)) || \ | |
+#elif ((LCD_WIDTH == 240) && (LCD_HEIGHT >= 240)) || \ | |
((LCD_WIDTH == 240) && (LCD_HEIGHT == 400)) | |
superdom_boarditems.240x320x16.bmp | |
#elif (LCD_WIDTH == 480 && LCD_HEIGHT == 640) | |
diff --git a/apps/plugins/bitmaps/native/rockblox_background.240x240x16.bmp b/apps/plugins/bitmaps/native/rockblox_background.240x240x16.bmp | |
new file mode 100644 | |
index 0000000..7e1706d | |
Binary files /dev/null and b/apps/plugins/bitmaps/native/rockblox_background.240x240x16.bmp differ | |
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c | |
index b5e58c5..bd9bd2e 100644 | |
--- a/apps/plugins/blackjack.c | |
+++ b/apps/plugins/blackjack.c | |
@@ -559,7 +559,7 @@ enum { | |
#define BJACK_RIGHT BUTTON_NEXT | |
#define BJACK_LEFT BUTTON_PREV | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
#define BJACK_SELECT_NAME "PLAY" | |
#define BJACK_STAY_NAME "NEXT" | |
#define BJACK_QUIT_NAME "POWER" | |
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c | |
index 4f4ffc8..af874d5 100644 | |
--- a/apps/plugins/brickmania.c | |
+++ b/apps/plugins/brickmania.c | |
@@ -314,7 +314,7 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD | |
#define UP BUTTON_HOME | |
#define DOWN BUTTON_OPTION | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD|| CONFIG_KEYPAD==FIIO_M5_PAD | |
#define QUIT BUTTON_POWER | |
#define LEFT BUTTON_PREV | |
#define RIGHT BUTTON_NEXT | |
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c | |
index 50de10f..80a9ddd 100644 | |
--- a/apps/plugins/bubbles.c | |
+++ b/apps/plugins/bubbles.c | |
@@ -125,6 +125,10 @@ enum { | |
#define XOFS 72 | |
#define MAX_FPS 40 | |
+#elif (LCD_HEIGHT == 240) && (LCD_WIDTH == 240) | |
+#define XOFS 64 | |
+#define MAX_FPS 30 | |
+ | |
/* 22x22 bubbles (Gigabeat, Onda VX747) */ | |
#elif ((LCD_HEIGHT == 320) || (LCD_HEIGHT == 400)) && (LCD_WIDTH == 240) | |
#define XOFS 64 | |
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c | |
index 77f79f9..0bb45d6 100644 | |
--- a/apps/plugins/calculator.c | |
+++ b/apps/plugins/calculator.c | |
@@ -515,6 +515,16 @@ F3: equal to "=" | |
#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) | |
#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define CALCULATOR_LEFT BUTTON_LEFT | |
+#define CALCULATOR_RIGHT BUTTON_RIGHT | |
+#define CALCULATOR_UP BUTTON_UP | |
+#define CALCULATOR_DOWN BUTTON_DOWN | |
+#define CALCULATOR_QUIT BUTTON_POWER | |
+#define CALCULATOR_INPUT BUTTON_PLAY | |
+#define CALCULATOR_CALC BUTTON_HOME | |
+#define CALCULATOR_CLEAR (BUTTON_OPTION|BUTTON_REPEAT) | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define CALCULATOR_LEFT BUTTON_HOME | |
#define CALCULATOR_RIGHT BUTTON_VOL_DOWN | |
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c | |
index 59aba94..f0b5345 100644 | |
--- a/apps/plugins/calendar.c | |
+++ b/apps/plugins/calendar.c | |
@@ -401,6 +401,16 @@ | |
#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP | |
#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN | |
+#elif CONFIG_KEYPAD==FIIO_M5_PAD | |
+#define CALENDAR_QUIT BUTTON_POWER | |
+#define CALENDAR_SELECT BUTTON_PLAY | |
+#define CALENDAR_NEXT_WEEK BUTTON_DOWN | |
+#define CALENDAR_PREV_WEEK BUTTON_UP | |
+#define CALENDAR_NEXT_DAY BUTTON_RIGHT | |
+#define CALENDAR_PREV_DAY BUTTON_LEFT | |
+#define CALENDAR_NEXT_MONTH BUTTON_NEXT | |
+#define CALENDAR_PREV_MONTH BUTTON_PREV | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define CALENDAR_QUIT BUTTON_POWER | |
#define CALENDAR_SELECT BUTTON_PLAY | |
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h | |
index e9b6678..3c292c7 100644 | |
--- a/apps/plugins/chessbox/chessbox_pgn.h | |
+++ b/apps/plugins/chessbox/chessbox_pgn.h | |
@@ -553,6 +553,20 @@ | |
#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) | |
#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define CB_SELECT BUTTON_PLAY | |
+#define CB_UP BUTTON_UP | |
+#define CB_DOWN BUTTON_DOWN | |
+#define CB_LEFT BUTTON_LEFT | |
+#define CB_RIGHT BUTTON_RIGHT | |
+#define CB_PLAY BUTTON_NEXT | |
+#define CB_MENU BUTTON_OPTION | |
+#define CB_LEVEL BUTTON_HOME | |
+#define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT) | |
+#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT) | |
+#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT) | |
+#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT) | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define CB_SELECT BUTTON_PLAY | |
#define CB_UP BUTTON_PREV | |
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c | |
index 27b3990..6e405f4 100644 | |
--- a/apps/plugins/chessclock.c | |
+++ b/apps/plugins/chessclock.c | |
@@ -376,7 +376,7 @@ | |
#define CHC_SETTINGS_OK BUTTON_PLAY | |
#define CHC_SETTINGS_CANCEL BUTTON_POWER | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == FIIO_M5_PAD | |
#define CHC_QUIT BUTTON_POWER | |
#define CHC_STARTSTOP BUTTON_PLAY | |
#define CHC_RESET BUTTON_OPTION | |
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c | |
index 84e8e70..5fc9a6b 100644 | |
--- a/apps/plugins/chip8.c | |
+++ b/apps/plugins/chip8.c | |
@@ -1259,7 +1259,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define CHIP8_KEY6 BUTTON_NEXT | |
#define CHIP8_KEY8 BUTTON_OPTION | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
#define CHIP8_OFF BUTTON_POWER | |
#define CHIP8_KEY2 BUTTON_HOME | |
#define CHIP8_KEY4 BUTTON_PREV | |
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c | |
index 35c80a9..ca56f87 100644 | |
--- a/apps/plugins/chopper.c | |
+++ b/apps/plugins/chopper.c | |
@@ -198,7 +198,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define ACTION BUTTON_SELECT | |
#define ACTIONTEXT "Select" | |
-#elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD || CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD || CONFIG_KEYPAD == EROSQ_PAD | |
+#elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD || CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD || CONFIG_KEYPAD == EROSQ_PAD || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
#define QUIT BUTTON_POWER | |
#define ACTION BUTTON_PLAY | |
#define ACTIONTEXT "PLAY" | |
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c | |
index 08264e8..3a5241e 100644 | |
--- a/apps/plugins/clix.c | |
+++ b/apps/plugins/clix.c | |
@@ -300,6 +300,14 @@ | |
#define CLIX_BUTTON_RIGHT BUTTON_NEXT | |
#define CLIX_BUTTON_CLICK BUTTON_PLAY | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define CLIX_BUTTON_QUIT BUTTON_POWER | |
+#define CLIX_BUTTON_UP BUTTON_UP | |
+#define CLIX_BUTTON_DOWN BUTTON_DOWN | |
+#define CLIX_BUTTON_LEFT BUTTON_LEFT | |
+#define CLIX_BUTTON_RIGHT BUTTON_RIGHT | |
+#define CLIX_BUTTON_CLICK BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define CLIX_BUTTON_QUIT BUTTON_POWER | |
#define CLIX_BUTTON_UP BUTTON_PREV | |
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c | |
index 416bf11..65eab59 100644 | |
--- a/apps/plugins/cube.c | |
+++ b/apps/plugins/cube.c | |
@@ -380,7 +380,7 @@ | |
#define CUBE_PAUSE BUTTON_HOME | |
#define CUBE_HIGHSPEED BUTTON_PLAY | |
-#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | |
+#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) || CONFIG_KEYPAD == FIIO_M5_PAD | |
#define CUBE_QUIT BUTTON_POWER | |
#define CUBE_NEXT BUTTON_NEXT | |
#define CUBE_PREV BUTTON_PREV | |
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c | |
index 1fb913f..6e4f89d 100644 | |
--- a/apps/plugins/doom/i_video.c | |
+++ b/apps/plugins/doom/i_video.c | |
@@ -588,6 +588,17 @@ void I_ShutdownGraphics(void) | |
#define DOOMBUTTON_ENTER BUTTON_PLAY | |
#define DOOMBUTTON_WEAPON BUTTON_VOL_UP | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define DOOMBUTTON_UP BUTTON_UP | |
+#define DOOMBUTTON_DOWN BUTTON_DOWN | |
+#define DOOMBUTTON_LEFT BUTTON_LEFT | |
+#define DOOMBUTTON_RIGHT BUTTON_RIGHT | |
+#define DOOMBUTTON_SHOOT BUTTON_PLAY | |
+#define DOOMBUTTON_OPEN BUTTON_OPTION | |
+#define DOOMBUTTON_ESC BUTTON_HOME | |
+#define DOOMBUTTON_ENTER BUTTON_PLAY | |
+#define DOOMBUTTON_WEAPON BUTTON_VOL_UP | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define DOOMBUTTON_UP BUTTON_PREV | |
#define DOOMBUTTON_DOWN BUTTON_NEXT | |
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c | |
index 4719446..f8f8027 100644 | |
--- a/apps/plugins/fft/fft.c | |
+++ b/apps/plugins/fft/fft.c | |
@@ -343,9 +343,9 @@ GREY_INFO_STRUCT | |
# define FFT_AMP_SCALE BUTTON_PLAY | |
# define FFT_QUIT BUTTON_POWER | |
-#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | |
-# define FFT_PREV_GRAPH BUTTON_PREV | |
-# define FFT_NEXT_GRAPH BUTTON_NEXT | |
+#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+# define FFT_PREV_GRAPH BUTTON_NEXT | |
+# define FFT_NEXT_GRAPH BUTTON_PREV | |
# define FFT_ORIENTATION BUTTON_HOME | |
# define FFT_FREQ_SCALE BUTTON_OPTION | |
# define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER) | |
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c | |
index a4d59ff..f185df4 100644 | |
--- a/apps/plugins/flipit.c | |
+++ b/apps/plugins/flipit.c | |
@@ -448,7 +448,7 @@ | |
#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY) | |
#define FLIPIT_TOGGLE BUTTON_PLAY | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD==FIIO_M5_PAD | |
#define FLIPIT_LEFT BUTTON_PREV | |
#define FLIPIT_RIGHT BUTTON_NEXT | |
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h | |
index d4d0135..87c65ba 100644 | |
--- a/apps/plugins/fractals/fractal.h | |
+++ b/apps/plugins/fractals/fractal.h | |
@@ -482,6 +482,18 @@ | |
#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) | |
#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define FRACTAL_QUIT BUTTON_POWER | |
+#define FRACTAL_UP BUTTON_UP | |
+#define FRACTAL_DOWN BUTTON_DOWN | |
+#define FRACTAL_LEFT BUTTON_LEFT | |
+#define FRACTAL_RIGHT BUTTON_RIGHT | |
+#define FRACTAL_ZOOM_IN BUTTON_VOL_UP | |
+#define FRACTAL_ZOOM_OUT BUTTON_VOL_DOWN | |
+#define FRACTAL_PRECISION_INC BUTTON_NEXT | |
+#define FRACTAL_PRECISION_DEC BUTTON_PREV | |
+#define FRACTAL_RESET BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define FRACTAL_QUIT BUTTON_POWER | |
#define FRACTAL_UP BUTTON_PREV | |
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h | |
index db70216..ee68390 100644 | |
--- a/apps/plugins/goban/goban.h | |
+++ b/apps/plugins/goban/goban.h | |
@@ -467,6 +467,18 @@ | |
#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT | |
#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+#define GBN_BUTTON_UP BUTTON_UP | |
+#define GBN_BUTTON_DOWN BUTTON_DOWN | |
+#define GBN_BUTTON_LEFT BUTTON_LEFT | |
+#define GBN_BUTTON_RIGHT BUTTON_RIGHT | |
+#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN | |
+#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP | |
+#define GBN_BUTTON_MENU BUTTON_OPTION | |
+#define GBN_BUTTON_PLAY BUTTON_PLAY | |
+#define GBN_BUTTON_CONTEXT BUTTON_OPTION | BUTTON_REPEAT | |
+#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | |
+ | |
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD) | |
#define GBN_BUTTON_UP BUTTON_PREV | |
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h | |
index 4559a7b..223db15 100644 | |
--- a/apps/plugins/imageviewer/imageviewer_button.h | |
+++ b/apps/plugins/imageviewer/imageviewer_button.h | |
@@ -506,6 +506,21 @@ | |
#define IMGVIEW_MENU BUTTON_POWER | |
#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define IMGVIEW_ZOOM_PRE BUTTON_HOME | |
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP | BUTTON_REPEAT | |
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN | BUTTON_REPEAT | |
+#define IMGVIEW_UP BUTTON_UP | |
+#define IMGVIEW_DOWN BUTTON_DOWN | |
+#define IMGVIEW_LEFT BUTTON_LEFT | |
+#define IMGVIEW_RIGHT BUTTON_RIGHT | |
+#define IMGVIEW_NEXT BUTTON_NEXT | |
+#define IMGVIEW_NEXT_REPEAT (BUTTON_NEXT|BUTTON_REPEAT) | |
+#define IMGVIEW_PREVIOUS BUTTON_PREV | |
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_PREV|BUTTON_REPEAT) | |
+#define IMGVIEW_MENU BUTTON_OPTION | |
+#define IMGVIEW_SLIDE_SHOW BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define IMGVIEW_ZOOM_PRE BUTTON_PLAY | |
#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) | |
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c | |
index 57d6fab..bb828a5 100644 | |
--- a/apps/plugins/invadrox.c | |
+++ b/apps/plugins/invadrox.c | |
@@ -282,6 +282,13 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define RIGHT BUTTON_VOL_DOWN | |
#define FIRE BUTTON_VOL_UP | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+ | |
+#define QUIT BUTTON_POWER | |
+#define LEFT BUTTON_LEFT | |
+#define RIGHT BUTTON_RIGHT | |
+#define FIRE BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define QUIT BUTTON_POWER | |
@@ -571,7 +578,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define MAX_Y 18 | |
-#elif (LCD_WIDTH == 240) && ((LCD_HEIGHT == 320) || (LCD_HEIGHT == 400)) | |
+#elif (LCD_WIDTH == 240) && ((LCD_HEIGHT == 240) || (LCD_HEIGHT == 320) || (LCD_HEIGHT == 400)) | |
/* Gigabeat: 240x320x16 | |
* ====================== | |
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c | |
index b58c47d..611402f 100644 | |
--- a/apps/plugins/jewels.c | |
+++ b/apps/plugins/jewels.c | |
@@ -367,6 +367,18 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define HK_SELECT "PLAY" | |
#define HK_CANCEL "POWER" | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define JEWELS_UP BUTTON_UP | |
+#define JEWELS_DOWN BUTTON_DOWN | |
+#define JEWELS_LEFT BUTTON_LEFT | |
+#define JEWELS_RIGHT BUTTON_RIGHT | |
+#define JEWELS_SELECT BUTTON_PLAY | |
+#define JEWELS_CANCEL BUTTON_POWER | |
+#define HK_SELECT "PLAY" | |
+#define HK_CANCEL "POWER" | |
+ | |
+ | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define JEWELS_UP BUTTON_PREV | |
#define JEWELS_DOWN BUTTON_NEXT | |
diff --git a/apps/plugins/lib/keymaps.h b/apps/plugins/lib/keymaps.h | |
index 7c1b998..b19f174 100644 | |
--- a/apps/plugins/lib/keymaps.h | |
+++ b/apps/plugins/lib/keymaps.h | |
@@ -61,6 +61,7 @@ | |
(CONFIG_KEYPAD == IRIVER_H300_PAD) || \ | |
(CONFIG_KEYPAD == HM801_PAD) || \ | |
(CONFIG_KEYPAD == HM60X_PAD) || \ | |
+ (CONFIG_KEYPAD == FIIO_M5_PAD) || \ | |
(CONFIG_KEYPAD == AGPTEK_ROCKER_PAD) | |
#define BTN_UP BUTTON_UP | |
#define BTN_DOWN BUTTON_DOWN | |
@@ -89,6 +90,11 @@ | |
#define BTN_PAUSE BUTTON_POWER | |
#endif | |
+#if (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+#define BTN_FIRE BUTTON_PLAY | |
+#define BTN_PAUSE BUTTON_POWER | |
+#endif | |
+ | |
#if (CONFIG_KEYPAD == HM60X_PAD) | |
#define BTN_FIRE BUTTON_POWER | |
#define BTN_PAUSE BUTTON_SELECT | |
@@ -231,6 +237,10 @@ | |
#define BTN_FIRE BUTTON_PLAY | |
#define BTN_PAUSE BUTTON_POWER | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+#define BTN_FIRE BUTTON_PLAY | |
+#define BTN_PAUSE BUTTON_POWER | |
+ | |
#elif (CONFIG_KEYPAD == EROSQ_PAD) | |
#define BTN_UP BUTTON_PREV | |
#define BTN_DOWN BUTTON_NEXT | |
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c | |
index 4d2a08c..d20f808 100644 | |
--- a/apps/plugins/lib/pluginlib_actions.c | |
+++ b/apps/plugins/lib/pluginlib_actions.c | |
@@ -242,6 +242,15 @@ const struct button_mapping pla_main_ctx[] = | |
{ PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE }, | |
{ PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, | |
{ PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+ { PLA_UP, BUTTON_UP, BUTTON_NONE }, | |
+ { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE }, | |
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE }, | |
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | |
+ { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | |
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | |
#elif (CONFIG_KEYPAD == EROSQ_PAD) | |
{ PLA_UP, BUTTON_NEXT, BUTTON_NONE }, | |
{ PLA_DOWN, BUTTON_PREV, BUTTON_NONE }, | |
@@ -488,6 +497,12 @@ const struct button_mapping pla_main_ctx[] = | |
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, | |
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, | |
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+ {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, | |
+ {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE}, | |
+ {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, | |
+ {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, | |
+ {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | |
#elif (CONFIG_KEYPAD == EROSQ_PAD) | |
{PLA_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK}, | |
{PLA_EXIT, BUTTON_POWER, BUTTON_NONE}, | |
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c | |
index 641991c..3a5e29e 100644 | |
--- a/apps/plugins/midi/midiplay.c | |
+++ b/apps/plugins/midi/midiplay.c | |
@@ -301,7 +301,7 @@ | |
#define MIDI_VOL_DOWN BUTTON_VOL_DOWN | |
#define MIDI_PLAYPAUSE BUTTON_PLAY | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == FIIO_M5_PAD | |
#define MIDI_QUIT BUTTON_POWER | |
#define MIDI_FFWD BUTTON_NEXT | |
#define MIDI_REWIND BUTTON_PREV | |
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c | |
index 11c0e86..6f00fcc 100644 | |
--- a/apps/plugins/minesweeper.c | |
+++ b/apps/plugins/minesweeper.c | |
@@ -408,6 +408,19 @@ CONFIG_KEYPAD == MROBE500_PAD | |
# define MINESWP_DISCOVER2 BUTTON_VOL_UP | |
# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+# define MINESWP_LEFT BUTTON_LEFT | |
+# define MINESWP_RIGHT BUTTON_RIGHT | |
+# define MINESWP_UP BUTTON_UP | |
+# define MINESWP_DOWN BUTTON_DOWN | |
+# define MINESWP_QUIT BUTTON_POWER | |
+# define MINESWP_TOGGLE_PRE BUTTON_PLAY | |
+# define MINESWP_TOGGLE (BUTTON_PLAY | BUTTON_REL) | |
+# define MINESWP_TOGGLE2 BUTTON_VOL_DOWN | |
+# define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT) | |
+# define MINESWP_DISCOVER2 BUTTON_VOL_UP | |
+# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) | |
+ | |
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD) | |
# define MINESWP_LEFT BUTTON_HOME | |
# define MINESWP_RIGHT BUTTON_VOL_DOWN | |
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c | |
index 1778355..6a6d8a8 100644 | |
--- a/apps/plugins/mp3_encoder.c | |
+++ b/apps/plugins/mp3_encoder.c | |
@@ -2562,7 +2562,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define MP3ENC_DONE BUTTON_POWER | |
#define MP3ENC_SELECT BUTTON_PLAY | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD==FIIO_M5_PAD | |
#define MP3ENC_PREV BUTTON_HOME | |
#define MP3ENC_NEXT BUTTON_OPTION | |
#define MP3ENC_DONE BUTTON_POWER | |
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c | |
index 1bc7d4d..834d6b5 100644 | |
--- a/apps/plugins/mpegplayer/mpeg_settings.c | |
+++ b/apps/plugins/mpegplayer/mpeg_settings.c | |
@@ -336,6 +336,16 @@ struct mpeg_settings settings; | |
#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN | |
#define MPEG_START_TIME_EXIT BUTTON_POWER | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define MPEG_START_TIME_SELECT BUTTON_PLAY | |
+#define MPEG_START_TIME_LEFT BUTTON_LEFT | |
+#define MPEG_START_TIME_RIGHT BUTTON_RIGHT | |
+#define MPEG_START_TIME_UP BUTTON_UP | |
+#define MPEG_START_TIME_DOWN BUTTON_DOWN | |
+#define MPEG_START_TIME_LEFT2 BUTTON_PREV | |
+#define MPEG_START_TIME_RIGHT2 BUTTON_NEXT | |
+#define MPEG_START_TIME_EXIT BUTTON_POWER | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define MPEG_START_TIME_SELECT BUTTON_PLAY | |
#define MPEG_START_TIME_LEFT BUTTON_HOME | |
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c | |
index f86a6e5..3996237 100644 | |
--- a/apps/plugins/mpegplayer/mpegplayer.c | |
+++ b/apps/plugins/mpegplayer/mpegplayer.c | |
@@ -459,7 +459,7 @@ CONFIG_KEYPAD == SANSA_M200_PAD | |
#define MPEG_RW BUTTON_PREV | |
#define MPEG_FF BUTTON_NEXT | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == FIIO_M5_PAD | |
#define MPEG_MENU BUTTON_PLAY | |
#define MPEG_STOP BUTTON_POWER | |
#define MPEG_PAUSE BUTTON_HOME | |
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c | |
index d8bef0a..b14c27a 100644 | |
--- a/apps/plugins/oscilloscope.c | |
+++ b/apps/plugins/oscilloscope.c | |
@@ -498,7 +498,7 @@ | |
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN | |
#define NEED_LASTBUTTON | |
-#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | |
+#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
#define OSCILLOSCOPE_QUIT BUTTON_POWER | |
#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY | |
#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL) | |
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h | |
index 39583ed..51a49ed 100644 | |
--- a/apps/plugins/pacbox/pacbox.h | |
+++ b/apps/plugins/pacbox/pacbox.h | |
@@ -382,6 +382,15 @@ | |
#define PACMAN_1UP BUTTON_VOL_UP | |
#define PACMAN_COIN BUTTON_PLAY | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define PACMAN_UP BUTTON_UP | |
+#define PACMAN_DOWN BUTTON_DOWN | |
+#define PACMAN_LEFT BUTTON_LEFT | |
+#define PACMAN_RIGHT BUTTON_RIGHT | |
+#define PACMAN_MENU BUTTON_OPTION | |
+#define PACMAN_1UP BUTTON_NEXT | |
+#define PACMAN_COIN BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define PACMAN_UP BUTTON_PREV | |
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c | |
index a84b687..3fbe8d5 100644 | |
--- a/apps/plugins/pegbox.c | |
+++ b/apps/plugins/pegbox.c | |
@@ -660,6 +660,23 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define LVL_UP_TEXT "VOL+" | |
#define LVL_DOWN_TEXT "VOL-" | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define PEGBOX_SELECT BUTTON_PLAY | |
+#define PEGBOX_QUIT BUTTON_POWER | |
+#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME) | |
+#define PEGBOX_LVL_UP BUTTON_VOL_UP | |
+#define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN | |
+#define PEGBOX_UP BUTTON_UP | |
+#define PEGBOX_DOWN BUTTON_DOWN | |
+#define PEGBOX_RIGHT BUTTON_LEFT | |
+#define PEGBOX_LEFT BUTTON_RIGHT | |
+ | |
+#define SELECT_TEXT "PLAY" | |
+#define QUIT_TEXT "POWER" | |
+#define RESTART_TEXT "HOME" | |
+#define LVL_UP_TEXT "VOL+" | |
+#define LVL_DOWN_TEXT "VOL-" | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define PEGBOX_SELECT BUTTON_PLAY | |
#define PEGBOX_QUIT BUTTON_POWER | |
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c | |
index d5952aa..be94601 100644 | |
--- a/apps/plugins/pong.c | |
+++ b/apps/plugins/pong.c | |
@@ -309,6 +309,14 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define PONG_RIGHT_UP BUTTON_HOME | |
#define PONG_RIGHT_DOWN BUTTON_NEXT | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define PONG_QUIT BUTTON_POWER | |
+#define PONG_PAUSE BUTTON_PLAY | |
+#define PONG_LEFT_UP BUTTON_OPTION | |
+#define PONG_LEFT_DOWN BUTTON_PREV | |
+#define PONG_RIGHT_UP BUTTON_HOME | |
+#define PONG_RIGHT_DOWN BUTTON_NEXT | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define PONG_QUIT BUTTON_POWER | |
#define PONG_PAUSE BUTTON_PREV | |
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h | |
index 0a2348a..f527f8a 100644 | |
--- a/apps/plugins/reversi/reversi-gui.h | |
+++ b/apps/plugins/reversi/reversi-gui.h | |
@@ -341,6 +341,15 @@ | |
#define REVERSI_BUTTON_MENU BUTTON_PLAY | |
#define REVERSI_BUTTON_MENU_LONGPRESS | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define REVERSI_BUTTON_QUIT BUTTON_POWER | |
+#define REVERSI_BUTTON_UP BUTTON_UP | |
+#define REVERSI_BUTTON_DOWN BUTTON_DOWN | |
+#define REVERSI_BUTTON_LEFT BUTTON_LEFT | |
+#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT | |
+#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY | |
+#define REVERSI_BUTTON_MENU BUTTON_OPTION | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define REVERSI_BUTTON_QUIT BUTTON_POWER | |
#define REVERSI_BUTTON_UP BUTTON_PREV | |
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c | |
index 6a8b50a..1a2ece3 100644 | |
--- a/apps/plugins/rockblox.c | |
+++ b/apps/plugins/rockblox.c | |
@@ -443,7 +443,7 @@ | |
#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) | |
#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == FIIO_M5_PAD | |
#define ROCKBLOX_OFF BUTTON_POWER | |
#define ROCKBLOX_ROTATE_CCW BUTTON_HOME | |
@@ -546,7 +546,7 @@ | |
#define LEVEL_Y 142 | |
#define LINES_Y 218 | |
-#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240) | |
+#elif ((LCD_WIDTH == 320) || (LCD_WIDTH==240))&& (LCD_HEIGHT == 240) | |
#define BLOCK_WIDTH 12 | |
#define BLOCK_HEIGHT 12 | |
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c | |
index 75de523..7e6c987 100644 | |
--- a/apps/plugins/rockboy/rockboy.c | |
+++ b/apps/plugins/rockboy/rockboy.c | |
@@ -445,6 +445,18 @@ static void setoptions (void) | |
options.SELECT = BUTTON_VOL_UP; | |
options.MENU = BUTTON_POWER; | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+ options.UP = BUTTON_UP; | |
+ options.DOWN = BUTTON_DOWN; | |
+ options.LEFT = BUTTON_LEFT; | |
+ options.RIGHT = BUTTON_RIGHT; | |
+ | |
+ options.START = BUTTON_HOME; | |
+ options.MENU = BUTTON_OPTION; | |
+ options.SELECT = BUTTON_PLAY; | |
+ options.A = BUTTON_NEXT; | |
+ options.B = BUTTON_PREV; | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
options.UP = BUTTON_PREV; | |
options.DOWN = BUTTON_NEXT; | |
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c | |
index f28fbdf..800df96 100644 | |
--- a/apps/plugins/rockpaint.c | |
+++ b/apps/plugins/rockpaint.c | |
@@ -34,6 +34,7 @@ | |
#include "pluginbitmaps/rockpaint.h" | |
#include "pluginbitmaps/rockpaint_hsvrgb.h" | |
+#include "lib/pluginlib_actions.h" | |
/*********************************************************************** | |
@@ -360,16 +361,16 @@ | |
#define ROCKPAINT_LEFT BUTTON_PREV | |
#define ROCKPAINT_RIGHT BUTTON_NEXT | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD==FIIO_M5_PAD | |
#define ROCKPAINT_QUIT BUTTON_POWER | |
#define ROCKPAINT_DRAW BUTTON_PLAY | |
#define ROCKPAINT_MENU (BUTTON_HOME | BUTTON_POWER) | |
#define ROCKPAINT_TOOLBAR BUTTON_VOL_UP | |
#define ROCKPAINT_TOOLBAR2 BUTTON_VOL_DOWN | |
-#define ROCKPAINT_UP BUTTON_HOME | |
-#define ROCKPAINT_DOWN BUTTON_OPTION | |
-#define ROCKPAINT_LEFT BUTTON_PREV | |
-#define ROCKPAINT_RIGHT BUTTON_NEXT | |
+#define ROCKPAINT_UP PLA_UP | |
+#define ROCKPAINT_DOWN PLA_DOWN | |
+#define ROCKPAINT_LEFT PLA_LEFT | |
+#define ROCKPAINT_RIGHT PLA_RIGHT | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD | |
#define ROCKPAINT_QUIT BUTTON_POWER | |
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c | |
index 8c70f6b..dcf1b34 100644 | |
--- a/apps/plugins/sliding_puzzle.c | |
+++ b/apps/plugins/sliding_puzzle.c | |
@@ -330,6 +330,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) | |
#define PUZZLE_PICTURE BUTTON_PLAY | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+#define PUZZLE_QUIT BUTTON_POWER | |
+#define PUZZLE_LEFT BUTTON_LEFT | |
+#define PUZZLE_RIGHT BUTTON_RIGHT | |
+#define PUZZLE_UP BUTTON_UP | |
+#define PUZZLE_DOWN BUTTON_DOWN | |
+#define PUZZLE_SHUFFLE BUTTON_OPTION | |
+#define PUZZLE_PICTURE BUTTON_PLAY | |
+ | |
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD) | |
#define PUZZLE_QUIT BUTTON_POWER | |
#define PUZZLE_LEFT BUTTON_HOME | |
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c | |
index 0f2bcdc..3479243 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; | |
#define SNAKE_DOWN BUTTON_OPTION | |
#define SNAKE_PLAYPAUSE BUTTON_PLAY | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define SNAKE_QUIT BUTTON_POWER | |
+#define SNAKE_LEFT BUTTON_LEFT | |
+#define SNAKE_RIGHT BUTTON_RIGHT | |
+#define SNAKE_UP BUTTON_UP | |
+#define SNAKE_DOWN BUTTON_DOWN | |
+#define SNAKE_PLAYPAUSE BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define SNAKE_QUIT BUTTON_POWER | |
#define SNAKE_LEFT BUTTON_HOME | |
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c | |
index 464af41..625d6e5 100644 | |
--- a/apps/plugins/snake2.c | |
+++ b/apps/plugins/snake2.c | |
@@ -419,6 +419,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define SNAKE2_PLAYPAUSE BUTTON_PLAY | |
#define SNAKE2_PLAYPAUSE_TEXT "PLAY" | |
+#elif (CONFIG_KEYPAD == FIIO_M5_PAD) | |
+#define SNAKE2_LEFT BUTTON_LEFT | |
+#define SNAKE2_RIGHT BUTTON_RIGHT | |
+#define SNAKE2_UP BUTTON_UP | |
+#define SNAKE2_DOWN BUTTON_DOWN | |
+#define SNAKE2_QUIT BUTTON_POWER | |
+#define SNAKE2_PLAYPAUSE BUTTON_PLAY | |
+#define SNAKE2_PLAYPAUSE_TEXT "PLAY" | |
+ | |
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD) | |
#define SNAKE2_LEFT BUTTON_HOME | |
#define SNAKE2_RIGHT BUTTON_VOL_DOWN | |
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c | |
index e779722..368e7c2 100644 | |
--- a/apps/plugins/sokoban.c | |
+++ b/apps/plugins/sokoban.c | |
@@ -663,6 +663,22 @@ | |
#define BUTTON_SAVE BUTTON_PLAY | |
#define BUTTON_SAVE_NAME "PLAY" | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define SOKOBAN_LEFT BUTTON_LEFT | |
+#define SOKOBAN_RIGHT BUTTON_RIGHT | |
+#define SOKOBAN_UP BUTTON_UP | |
+#define SOKOBAN_DOWN BUTTON_DOWN | |
+#define SOKOBAN_MENU BUTTON_POWER | |
+#define SOKOBAN_UNDO_PRE BUTTON_PLAY | |
+#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL) | |
+#define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY) | |
+#define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN | |
+#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_NEXT) | |
+#define SOKOBAN_LEVEL_UP BUTTON_VOL_UP | |
+#define SOKOBAN_PAUSE BUTTON_PLAY | |
+#define BUTTON_SAVE BUTTON_PLAY | |
+#define BUTTON_SAVE_NAME "PLAY" | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define SOKOBAN_LEFT BUTTON_HOME | |
#define SOKOBAN_RIGHT BUTTON_VOL_DOWN | |
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c | |
index 6c49666..e0c507d 100644 | |
--- a/apps/plugins/solitaire.c | |
+++ b/apps/plugins/solitaire.c | |
@@ -684,6 +684,25 @@ CONFIG_KEYPAD == MROBE500_PAD | |
# define HK_CUR2STACK "DBL PLAY" | |
# define HK_REM2STACK "NEXT" | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+# define SOL_QUIT BUTTON_POWER | |
+# define SOL_UP BUTTON_UP | |
+# define SOL_DOWN BUTTON_DOWN | |
+# define SOL_LEFT BUTTON_LEFT | |
+# define SOL_RIGHT BUTTON_RIGHT | |
+# define SOL_MOVE_PRE BUTTON_PLAY | |
+# define SOL_MOVE (BUTTON_PLAY | BUTTON_REL) | |
+# define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT) | |
+# define SOL_REM2CUR BUTTON_VOL_DOWN | |
+# define SOL_CUR2STACK_PRE BUTTON_PLAY | |
+# define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT) | |
+# define SOL_REM2STACK BUTTON_VOL_UP | |
+# define HK_MOVE "PLAY" | |
+# define HK_DRAW "DBL HOME" | |
+# define HK_REM2CUR "PREV" | |
+# define HK_CUR2STACK "DBL PLAY" | |
+# define HK_REM2STACK "NEXT" | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
# define SOL_QUIT BUTTON_POWER | |
# define SOL_UP BUTTON_PREV | |
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c | |
index 6781612..6facda0 100644 | |
--- a/apps/plugins/spacerocks.c | |
+++ b/apps/plugins/spacerocks.c | |
@@ -336,7 +336,7 @@ | |
#define AST_RIGHT BUTTON_NEXT | |
#define AST_FIRE BUTTON_PLAY | |
-#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | |
+#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
#define AST_PAUSE BUTTON_VOL_UP | |
#define AST_QUIT BUTTON_POWER | |
#define AST_THRUST BUTTON_HOME | |
diff --git a/apps/plugins/star.c b/apps/plugins/star.c | |
index e44c867..7404741 100644 | |
--- a/apps/plugins/star.c | |
+++ b/apps/plugins/star.c | |
@@ -620,6 +620,22 @@ | |
#define STAR_LEVEL_DOWN_NAME "PLAY + PREV" | |
#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define STAR_QUIT BUTTON_POWER | |
+#define STAR_LEFT BUTTON_LEFT | |
+#define STAR_RIGHT BUTTON_RIGHT | |
+#define STAR_UP BUTTON_UP | |
+#define STAR_DOWN BUTTON_DOWN | |
+#define STAR_TOGGLE_CONTROL BUTTON_PLAY | |
+#define STAR_LEVEL_UP (BUTTON_NEXT) | |
+#define STAR_LEVEL_DOWN (BUTTON_PREV) | |
+#define STAR_LEVEL_REPEAT (BUTTON_OPTION) | |
+#define STAR_TOGGLE_CONTROL_NAME "PLAY" | |
+#define STAR_QUIT_NAME "POWER" | |
+#define STAR_LEVEL_UP_NAME "PLAY + NEXT" | |
+#define STAR_LEVEL_DOWN_NAME "PLAY + PREV" | |
+#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define STAR_QUIT BUTTON_POWER | |
#define STAR_LEFT BUTTON_HOME | |
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c | |
index db9cfd5..bd5eb9d 100644 | |
--- a/apps/plugins/stopwatch.c | |
+++ b/apps/plugins/stopwatch.c | |
@@ -285,7 +285,7 @@ | |
#define STOPWATCH_SCROLL_UP BUTTON_HOME | |
#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == FIIO_M5_PAD | |
#define STOPWATCH_QUIT BUTTON_POWER | |
#define STOPWATCH_START_STOP BUTTON_NEXT | |
#define STOPWATCH_RESET_TIMER BUTTON_PREV | |
diff --git a/apps/plugins/sudoku/sudoku.c b/apps/plugins/sudoku/sudoku.c | |
index 34a1f6d..7438d69 100644 | |
--- a/apps/plugins/sudoku/sudoku.c | |
+++ b/apps/plugins/sudoku/sudoku.c | |
@@ -141,7 +141,7 @@ static const char default_game[9][9] = | |
#define MARK_SPACE 1 /* Pixels between two marks */ | |
#define MARK_SIZE 4 /* Mark width and height */ | |
-#elif (LCD_HEIGHT==240) && (LCD_WIDTH==320) | |
+#elif (LCD_HEIGHT==240) && (LCD_WIDTH>=240) | |
/* iPod Video - 320x240, 9 cells @ 24x24 with 14 border lines */ | |
#define MARK_OFFS 1 /* Pixels between border and mark */ | |
#define MARK_SPACE 2 /* Pixels between two marks */ | |
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h | |
index 36f47a3..36f2224 100644 | |
--- a/apps/plugins/sudoku/sudoku.h | |
+++ b/apps/plugins/sudoku/sudoku.h | |
@@ -432,6 +432,19 @@ | |
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) | |
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER | |
+#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) | |
+#define SUDOKU_BUTTON_UP BUTTON_UP | |
+#define SUDOKU_BUTTON_DOWN BUTTON_DOWN | |
+#define SUDOKU_BUTTON_LEFT BUTTON_LEFT | |
+#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT | |
+#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_NEXT | |
+#define SUDOKU_BUTTON_TOGGLE BUTTON_PREV | |
+#define SUDOKU_BUTTON_MENU_PRE BUTTON_OPTION | |
+#define SUDOKU_BUTTON_MENU (BUTTON_OPTION | BUTTON_REPEAT) | |
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_HOME | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER | |
#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 cf3a2b7..4493d2f 100644 | |
--- a/apps/plugins/text_viewer/tv_button.h | |
+++ b/apps/plugins/text_viewer/tv_button.h | |
@@ -545,6 +545,18 @@ | |
#define TV_LINE_DOWN BUTTON_OPTION | |
#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define TV_QUIT BUTTON_POWER | |
+#define TV_SCROLL_UP BUTTON_HOME | |
+#define TV_SCROLL_DOWN BUTTON_NEXT | |
+#define TV_SCREEN_LEFT BUTTON_LEFT | |
+#define TV_SCREEN_RIGHT BUTTON_RIGHT | |
+#define TV_MENU BUTTON_OPTION | |
+#define TV_AUTOSCROLL BUTTON_PLAY | |
+#define TV_LINE_UP BUTTON_UP | |
+#define TV_LINE_DOWN BUTTON_DOWN | |
+#define TV_BOOKMARK BUTTON_PREV | |
+ | |
#elif CONFIG_KEYPAD == EROSQ_PAD | |
#define TV_MENU BUTTON_MENU | |
#define TV_SCROLL_UP BUTTON_SCROLL_BACK | |
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c | |
index 80e1960..d6953a1 100644 | |
--- a/apps/plugins/vu_meter.c | |
+++ b/apps/plugins/vu_meter.c | |
@@ -408,7 +408,7 @@ | |
#define LABEL_MENU "PLAY" | |
#define LABEL_VOLUME "VOL UP/DN" | |
-#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) | |
+#elif (CONFIG_KEYPAD == FIIO_M3K_PAD) || (CONFIG_KEYPAD == FIIO_M5_PAD) | |
#define VUMETER_QUIT BUTTON_POWER | |
#define VUMETER_HELP BUTTON_HOME | |
#define VUMETER_MENU BUTTON_PLAY | |
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c | |
index e4286f3..190cfbe 100644 | |
--- a/apps/plugins/wormlet.c | |
+++ b/apps/plugins/wormlet.c | |
@@ -380,6 +380,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define BTN_QUIT BUTTON_POWER | |
#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER) | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define BTN_DIR_UP BUTTON_UP | |
+#define BTN_DIR_DOWN BUTTON_DOWN | |
+#define BTN_DIR_LEFT BUTTON_LEFT | |
+#define BTN_DIR_RIGHT BUTTON_RIGHT | |
+#define BTN_STARTPAUSE BUTTON_PLAY | |
+#define BTN_QUIT BUTTON_POWER | |
+#define BTN_STOPRESET BUTTON_HOME | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define BTN_DIR_UP BUTTON_PREV | |
#define BTN_DIR_DOWN BUTTON_NEXT | |
@@ -482,8 +491,8 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define ARGH_SIZE 6 | |
#define SPEED 4 | |
#define MAX_WORM_SEGMENTS 512 | |
-#elif ((LCD_WIDTH == 320) && (LCD_HEIGHT == 240)) || \ | |
- ((LCD_WIDTH == 240) && ((LCD_HEIGHT == 320) || (LCD_HEIGHT == 400))) | |
+#elif ((LCD_WIDTH >= 240) && (LCD_HEIGHT == 240)) || \ | |
+ ((LCD_WIDTH == 240) && ((LCD_HEIGHT >= 240) || (LCD_HEIGHT == 400))) | |
#define FOOD_SIZE 7 | |
#define ARGH_SIZE 8 | |
#define SPEED 4 | |
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c | |
index 55a1dc4..d46a112 100644 | |
--- a/apps/plugins/xobox.c | |
+++ b/apps/plugins/xobox.c | |
@@ -324,7 +324,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define DOWN BUTTON_OPTION | |
#define PAUSE BUTTON_PLAY | |
-#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
+#elif CONFIG_KEYPAD == FIIO_M3K_PAD | |
#define QUIT BUTTON_POWER | |
#define LEFT BUTTON_PREV | |
@@ -333,6 +333,15 @@ CONFIG_KEYPAD == MROBE500_PAD | |
#define DOWN BUTTON_OPTION | |
#define PAUSE BUTTON_PLAY | |
+#elif CONFIG_KEYPAD==FIIO_M5_PAD | |
+ | |
+#define QUIT BUTTON_POWER | |
+#define LEFT BUTTON_LEFT | |
+#define RIGHT BUTTON_RIGHT | |
+#define UP BUTTON_UP | |
+#define DOWN BUTTON_DOWN | |
+#define PAUSE BUTTON_PLAY | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define QUIT BUTTON_POWER | |
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h | |
index 6c0fac6..0267360 100644 | |
--- a/apps/plugins/zxbox/keymaps.h | |
+++ b/apps/plugins/zxbox/keymaps.h | |
@@ -282,6 +282,14 @@ | |
#define ZX_UP BUTTON_HOME | |
#define ZX_DOWN BUTTON_OPTION | |
+#elif CONFIG_KEYPAD == FIIO_M5_PAD | |
+#define ZX_SELECT BUTTON_PLAY | |
+#define ZX_MENU BUTTON_OPTION | |
+#define ZX_LEFT BUTTON_LEFT | |
+#define ZX_RIGHT BUTTON_RIGHT | |
+#define ZX_UP BUTTON_UP | |
+#define ZX_DOWN BUTTON_DOWN | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define ZX_SELECT BUTTON_PLAY | |
#define ZX_MENU BUTTON_POWER | |
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c | |
index f77ce53..6137c7b 100644 | |
--- a/apps/plugins/zxbox/zxbox_keyb.c | |
+++ b/apps/plugins/zxbox/zxbox_keyb.c | |
@@ -275,6 +275,14 @@ | |
#define KBD_UP BUTTON_HOME | |
#define KBD_DOWN BUTTON_OPTION | |
+#elif (CONFIG_KEYPAD==FIIO_M5_PAD) | |
+#define KBD_SELECT BUTTON_PLAY | |
+#define KBD_ABORT BUTTON_POWER | |
+#define KBD_LEFT BUTTON_LEFT | |
+#define KBD_RIGHT BUTTON_RIGHT | |
+#define KBD_UP BUTTON_UP | |
+#define KBD_DOWN BUTTON_DOWN | |
+ | |
#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD | |
#define KBD_SELECT BUTTON_PLAY | |
diff --git a/bootloader/SOURCES b/bootloader/SOURCES | |
index 849ed17..ee62ff3 100644 | |
--- a/bootloader/SOURCES | |
+++ b/bootloader/SOURCES | |
@@ -76,7 +76,7 @@ show_logo.c | |
mpio_hd200_hd300.c | |
#elif defined(SONY_NWZ_LINUX) | |
nwz_linux.c | |
-#elif defined(HIBY_LINUX) || defined(FIIO_M3K) | |
+#elif defined(HIBY_LINUX) || defined(FIIO_M3K) || defined(FIIO_M5) | |
rocker_linux.c | |
#elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) \ | |
|| defined(MA9) || defined(MA9C) || defined(MA8) || defined(MA8C) \ | |
diff --git a/bootloader/rocker_linux.c b/bootloader/rocker_linux.c | |
index fc633d5..f2ece73 100644 | |
--- a/bootloader/rocker_linux.c | |
+++ b/bootloader/rocker_linux.c | |
@@ -78,7 +78,16 @@ | |
#define ICON_NAME bm_fiioicon | |
#define BUTTON_LEFT BUTTON_PREV | |
#define BUTTON_RIGHT BUTTON_NEXT | |
-#define BUTTON_SELECT BUTTON_PLAY | |
+#define BUTTON_SELECT BUTTON_PLAY | |
+#define OF_NAME "FIIO PLAYER" | |
+#include "bitmaps/fiioicon.h" | |
+#elif defined(FIIO_M5) | |
+#define ICON_WIDTH 130 | |
+#define ICON_HEIGHT 130 | |
+#define ICON_NAME bm_fiioicon | |
+#define BUTTON_LEFT BUTTON_VOL_DOWN | |
+#define BUTTON_RIGHT BUTTON_VOL_UP | |
+#define BUTTON_SELECT BUTTON_POWER | |
#define OF_NAME "FIIO PLAYER" | |
#include "bitmaps/fiioicon.h" | |
#elif defined(EROS_Q) | |
@@ -474,6 +483,18 @@ static void adb(int start) | |
lcd_putsf(0, 1, "ADB not supported!"); | |
sleep(2*HZ); | |
(void)start; | |
+#elif defined(FIIO_M5) | |
+ if (start){ | |
+ system("start-stop-daemon -b -S -m -q -p /var/run/klogd.pid --exec /sbin/adbd"); | |
+ system("echo 0 > /sys/devices/virtual/android_usb/android0/enable"); | |
+ system("echo mtp,mass_storage,adb > /sys/devices/virtual/android_usb/android0/functions"); | |
+ system("echo 1 > /sys/devices/virtual/android_usb/android0/enable"); | |
+ } | |
+ else{ | |
+ if (system("start-stop-daemon -K -q -p /var/run/klogd.pid")) | |
+ system("killall adbd"); | |
+ } | |
+ adb_running = start; | |
#else | |
pid_t pid = fork(); | |
if(pid == 0) | |
@@ -624,6 +645,10 @@ int main(int argc, char **argv) | |
/* boot OF */ | |
#if defined(FIIO_M3K) | |
execvp("/usr/project/bin/player_daemon", argv); | |
+#elif defined(FIIO_M5) | |
+ /* touch screen wont work with execvp */ | |
+ /* Return error code here and let startup script handle */ | |
+ return 1; | |
#else | |
execvp("/usr/bin/hiby_player", argv); | |
#endif | |
@@ -638,6 +663,16 @@ int main(int argc, char **argv) | |
{ | |
fflush(stdout); | |
mount_storage(true); | |
+ | |
+#ifdef FIIO_M5 | |
+/* Need to load sound driver manually */ | |
+ system("insmod /lib/modules/3.10.14/kernel/sound/soc/ingenic/snd-soc-phoenix-icdc.ko"); | |
+ system("insmod /lib/modules/3.10.14/kernel/sound/soc/ingenic/snd-asoc-icdc-d3.ko"); | |
+ system("insmod /lib/modules/3.10.14/kernel/sound/soc/ingenic/snd-asoc-aic-v12.ko"); | |
+ system("insmod /lib/modules/3.10.14/kernel/sound/soc/ingenic/snd-asoc-dma-v13.ko"); | |
+ system("insmod /lib/modules/3.10.14/kernel/sound/soc/ingenic/snd-asoc-i2s-v13.ko"); | |
+#endif | |
+ | |
system("/bin/cp " BASE_DIR "/.rockbox/" BOOTFILE " /tmp"); | |
system("/bin/chmod +x /tmp/" BOOTFILE); | |
execl("/tmp/" BOOTFILE, BOOTFILE, NULL); | |
diff --git a/firmware/SOURCES b/firmware/SOURCES | |
index 7f08e48..dfd3d5c 100644 | |
--- a/firmware/SOURCES | |
+++ b/firmware/SOURCES | |
@@ -115,7 +115,7 @@ target/hosted/sonynwz/nvp-nwz.c | |
target/hosted/sonynwz/nwz-db.c | |
#endif | |
-#if ((defined(HIBY_LINUX) || defined(FIIO_M3K)) && !defined(SIMULATOR)) | |
+#if ((defined(HIBY_LINUX) || defined(FIIO_M3K) || defined(FIIO_M5)) && !defined(SIMULATOR)) | |
drivers/lcd-memframe.c | |
target/hosted/alsa-controls.c | |
target/hosted/pcm-alsa.c | |
@@ -147,7 +147,7 @@ target/hosted/xduoo/powermgmt-xduoo.c | |
target/hosted/usb-hiby.c | |
#endif | |
-#if (defined(FIIO_M3K)) && !defined(SIMULATOR) | |
+#if defined(FIIO_M3K) && !defined(SIMULATOR) | |
target/hosted/fiio/buttonlight-fiio.c | |
target/hosted/fiio/button-fiio.c | |
target/hosted/fiio/debug-fiio.c | |
@@ -157,6 +157,15 @@ target/hosted/fiio/system-fiio.c | |
target/hosted/fiio/usb-fiio.c | |
#endif | |
+#if defined(FIIO_M5) && !defined(SIMULATOR) | |
+target/hosted/fiio/button-fiiom5.c | |
+target/hosted/fiio/debug-fiio.c | |
+target/hosted/fiio/power-fiio.c | |
+target/hosted/fiio/powermgmt-fiio.c | |
+target/hosted/fiio/system-fiio.c | |
+target/hosted/usb-hiby.c | |
+#endif | |
+ | |
#if (defined(EROS_Q)) && !defined(SIMULATOR) | |
target/hosted/aigo/button-erosq.c | |
target/hosted/aigo/debug-erosq.c | |
diff --git a/firmware/asm/SOURCES b/firmware/asm/SOURCES | |
index 2b18ea2..f946577 100644 | |
--- a/firmware/asm/SOURCES | |
+++ b/firmware/asm/SOURCES | |
@@ -16,7 +16,7 @@ mempcpy.c | |
defined(COWON_D2) || defined(MINI2440) || defined(SAMSUNG_YPR0) || \ | |
defined(SAMSUNG_YPR1) || defined(DX50) || defined(DX90) || (defined(MROBE_500) && !defined(LCD_USE_DMA)) || \ | |
defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || \ | |
- defined(FIIO_M3K)) && \ | |
+ defined(FIIO_M3K) || defined(FIIO_M5)) && \ | |
!defined(SIMULATOR) | |
#if LCD_DEPTH >= 24 | |
lcd-as-memframe-24bit.c | |
diff --git a/firmware/drivers/audio/fiiolinux_codec.c b/firmware/drivers/audio/fiiolinux_codec.c | |
index d23e023..4db277c 100644 | |
--- a/firmware/drivers/audio/fiiolinux_codec.c | |
+++ b/firmware/drivers/audio/fiiolinux_codec.c | |
@@ -38,19 +38,25 @@ static int ak_hw = -1; | |
static int vol_sw[2] = {0}; | |
static long int vol_hw[2] = {0}; | |
+#ifdef FIIO_M3K | |
+#define AK_HW "/dev/ak4376" | |
+#elif defined(FIIO_M5) | |
+#define AK_HW "/dev/ak4377" | |
+#endif | |
+ | |
static void hw_open(void) | |
{ | |
fd_hw = open("/dev/snd/controlC0", O_RDWR); | |
if(fd_hw < 0) | |
panicf("Cannot open '/dev/snd/controlC0'"); | |
- ak_hw = open("/dev/ak4376", O_RDWR); | |
+ ak_hw = open(AK_HW, O_RDWR); | |
if(ak_hw < 0) | |
- panicf("Cannot open '/dev/ak4376'"); | |
+ panicf("Cannot open '"AK_HW"'"); | |
if(ioctl(ak_hw, 0x20003424, 0) < 0) | |
{ | |
- panicf("Call cmd AK4376_POWER_ON fail"); | |
+ panicf("Call cmd AK437x_POWER_ON fail"); | |
} | |
} | |
@@ -58,7 +64,7 @@ static void hw_close(void) | |
{ | |
if(ioctl(ak_hw, 0x20003425, 0) < 0) | |
{ | |
- panicf("Call cmd AK4376_POWER_OFF fail"); | |
+ panicf("Call cmd AK437x_POWER_OFF fail"); | |
} | |
close(ak_hw); | |
close(fd_hw); | |
diff --git a/firmware/export/config.h b/firmware/export/config.h | |
index 7e8d751..b9e533f 100644 | |
--- a/firmware/export/config.h | |
+++ b/firmware/export/config.h | |
@@ -163,6 +163,8 @@ | |
#define XDUOO_X20_PAD 70 | |
#define FIIO_M3K_PAD 71 | |
#define EROSQ_PAD 72 | |
+#define FIIO_M5_PAD 73 | |
+ | |
/* CONFIG_REMOTE_KEYPAD */ | |
#define H100_REMOTE 1 | |
@@ -603,6 +605,8 @@ Lyre prototype 1 */ | |
#include "config/xduoox20.h" | |
#elif defined(FIIO_M3K) | |
#include "config/fiiom3k.h" | |
+#elif defined(FIIO_M5) | |
+#include "config/fiiom5.h" | |
#elif defined(EROS_Q) | |
#include "config/aigoerosq.h" | |
#else | |
diff --git a/firmware/export/config/fiiom5.h b/firmware/export/config/fiiom5.h | |
new file mode 100644 | |
index 0000000..d362f68 | |
--- /dev/null | |
+++ b/firmware/export/config/fiiom5.h | |
@@ -0,0 +1,130 @@ | |
+/* | |
+ * This config file is for the FiiO M3K | |
+ */ | |
+ | |
+/* For Rolo and boot loader */ | |
+#define MODEL_NUMBER 127 | |
+ | |
+#define MODEL_NAME "FiiO M5" | |
+ | |
+/* LCD dimensions */ | |
+#define LCD_WIDTH 240 | |
+#define LCD_HEIGHT 240 | |
+/* sqrt(240^2 + 240^2) / 1.5 = 226 */ | |
+#define LCD_DPI 226 | |
+ | |
+#ifndef SIMULATOR | |
+#define CONFIG_PLATFORM (PLATFORM_HOSTED) | |
+#define PIVOT_ROOT "/mnt/sd_0" | |
+#endif | |
+ | |
+#define HAVE_FPU | |
+ | |
+#define HW_SAMPR_CAPS (SAMPR_CAP_44 | SAMPR_CAP_48 | SAMPR_CAP_88 | SAMPR_CAP_96 | SAMPR_CAP_176 | SAMPR_CAP_192) | |
+ | |
+/* define this if you have a bitmap LCD display */ | |
+#define HAVE_LCD_BITMAP | |
+ | |
+/* define this if you have a colour LCD */ | |
+#define HAVE_LCD_COLOR | |
+ | |
+/* define this if you want album art for this target */ | |
+#define HAVE_ALBUMART | |
+ | |
+/* define this to enable bitmap scaling */ | |
+#define HAVE_BMP_SCALING | |
+ | |
+/* define this to enable JPEG decoding */ | |
+#define HAVE_JPEG | |
+ | |
+/* define this if you have access to the quickscreen */ | |
+#define HAVE_QUICKSCREEN | |
+ | |
+/* define this if you would like tagcache to build on this target */ | |
+#define HAVE_TAGCACHE | |
+ | |
+#define LCD_DEPTH 16 | |
+/* Check that but should not matter */ | |
+#define LCD_PIXELFORMAT RGB565 | |
+ | |
+#define HAVE_BACKLIGHT | |
+#define HAVE_BACKLIGHT_BRIGHTNESS | |
+ | |
+/* Main LCD backlight brightness range and defaults: the backlight driver | |
+ * has levels from 0 to 32. But 0 is off so start at 1. | |
+ */ | |
+#define MIN_BRIGHTNESS_SETTING 1 | |
+#define MAX_BRIGHTNESS_SETTING 255 | |
+#define BRIGHTNESS_STEP 5 | |
+#define DEFAULT_BRIGHTNESS_SETTING 70 | |
+ | |
+/* Which backlight fading type? */ | |
+#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING | |
+ | |
+/* define this if you have a real-time clock */ | |
+#define CONFIG_RTC APPLICATION | |
+ | |
+/* The number of bytes reserved for loadable codecs */ | |
+#define CODEC_SIZE 0x80000 | |
+ | |
+/* The number of bytes reserved for loadable plugins */ | |
+#define PLUGIN_BUFFER_SIZE 0x100000 | |
+ | |
+#define HAVE_HEADPHONE_DETECTION | |
+ | |
+/* KeyPad configuration for plugins */ | |
+//STAN: FIX later | |
+#define CONFIG_KEYPAD FIIO_M5_PAD | |
+ | |
+/* Define this if a programmable hotkey is mapped */ | |
+#define HAVE_HOTKEY | |
+ | |
+/* define this if the target has volume keys which can be used in the lists */ | |
+#define HAVE_VOLUME_IN_LIST | |
+ | |
+#ifndef SIMULATOR | |
+/* We have usb power and can detect usb but it is handled by Linux */ | |
+#define HAVE_USB_POWER | |
+ | |
+#endif | |
+ | |
+#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE | |
+ | |
+/* Linux controlls charging, we can monitor */ | |
+#define CONFIG_CHARGING CHARGING_MONITOR | |
+ | |
+/* define this if the hardware can be powered off while charging */ | |
+#define HAVE_POWEROFF_WHILE_CHARGING | |
+ | |
+/* same dimensions as gigabeats */ | |
+#define CONFIG_LCD LCD_INGENIC_LINUX | |
+ | |
+/* Define this if you have a software controlled poweroff */ | |
+#define HAVE_SW_POWEROFF | |
+ | |
+/* Define this to the CPU frequency */ | |
+#define CPU_FREQ 1008000000 | |
+ | |
+/* No special storage */ | |
+#define CONFIG_STORAGE STORAGE_HOSTFS | |
+#define HAVE_STORAGE_FLUSH | |
+ | |
+/* Battery */ | |
+#define BATTERY_TYPES_COUNT 1 | |
+ | |
+/* Audio codec */ | |
+#define HAVE_FIIO_LINUX_CODEC | |
+ | |
+/* We don't have hardware controls */ | |
+#define HAVE_SW_TONE_CONTROLS | |
+ | |
+/* Battery */ | |
+#define BATTERY_CAPACITY_DEFAULT 5 /* default battery capacity */ | |
+#define BATTERY_CAPACITY_MIN 5 /* min. capacity selectable */ | |
+#define BATTERY_CAPACITY_MAX 5 /* max. capacity selectable */ | |
+#define BATTERY_CAPACITY_INC 0 /* capacity increment */ | |
+ | |
+/* ROLO */ | |
+#define BOOTFILE_EXT "m5" | |
+#define BOOTFILE "rockbox." BOOTFILE_EXT | |
+#define BOOTDIR "/.rockbox" | |
diff --git a/firmware/export/rbpaths.h b/firmware/export/rbpaths.h | |
index da5a2fb..870f178 100644 | |
--- a/firmware/export/rbpaths.h | |
+++ b/firmware/export/rbpaths.h | |
@@ -43,7 +43,7 @@ | |
/* NOTE: target-specific hosted HOME_DIR resides in filesystem-app.c */ | |
#if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ | |
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \ | |
- defined(HIBY_LINUX) || defined(FIIO_M3K) | |
+ defined(HIBY_LINUX) || defined(FIIO_M3K) || defined(FIIO_M5) | |
#define HOME_DIR "/" | |
@@ -80,7 +80,7 @@ | |
#if defined(APPLICATION) && \ | |
!(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ | |
- defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K)) | |
+ defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K) || defined(FIIO_M5)) | |
#define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data" | |
#define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR | |
diff --git a/firmware/target/hosted/fiio/button-fiiom5.c b/firmware/target/hosted/fiio/button-fiiom5.c | |
new file mode 100644 | |
index 0000000..9aa0fea | |
--- /dev/null | |
+++ b/firmware/target/hosted/fiio/button-fiiom5.c | |
@@ -0,0 +1,307 @@ | |
+/*************************************************************************** | |
+ * __________ __ ___ | |
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | |
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | |
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | |
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | |
+ * \/ \/ \/ \/ \/ | |
+ * | |
+ * Copyright (C) 2017 Marcin Bukat | |
+ * Copyright (C) 2019 Roman Stolyarov | |
+ * | |
+ * This program is free software; you can redistribute it and/or | |
+ * modify it under the terms of the GNU General Public License | |
+ * as published by the Free Software Foundation; either version 2 | |
+ * of the License, or (at your option) any later version. | |
+ * | |
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |
+ * KIND, either express or implied. | |
+ * | |
+ ****************************************************************************/ | |
+#include <poll.h> | |
+//#include <dir.h> | |
+#include <errno.h> | |
+#include <unistd.h> | |
+#include <sys/types.h> | |
+#include <linux/input.h> | |
+#include <fcntl.h> | |
+#include <string.h> | |
+#include <stdlib.h> | |
+ | |
+#include "sysfs.h" | |
+#include "button.h" | |
+#include "button-target.h" | |
+#include "panic.h" | |
+ | |
+#include "kernel.h" | |
+#include "backlight.h" | |
+#include "backlight-target.h" | |
+ | |
+static int key_enter_delay = 0; | |
+static int key_right_delay = 0; | |
+static int key_left_delay = 0; | |
+static int key_power_delay = 0; | |
+static int key_home_delay = 0; | |
+static int key_backspace_delay = 0; | |
+static int key_leftbrace_delay = 0; | |
+static int key_rightbrace_delay = 0; | |
+static int key_up_delay = 0; | |
+static int key_down_delay = 0; | |
+static int key_f12_delay = 0; | |
+ | |
+static void reset_all_delay(){ | |
+ key_enter_delay = 0; | |
+ key_right_delay = 0; | |
+ key_left_delay = 0; | |
+ key_power_delay = 0; | |
+ key_home_delay = 0; | |
+ key_backspace_delay = 0; | |
+ key_leftbrace_delay = 0; | |
+ key_rightbrace_delay = 0; | |
+ key_up_delay = 0; | |
+ key_down_delay = 0; | |
+ key_f12_delay = 0; | |
+} | |
+ | |
+static struct touch_state{ | |
+ int x; | |
+ int y; | |
+ int touch; | |
+ int last_x; | |
+ int last_y; | |
+} touch_ts = {0}; | |
+ | |
+static const int TOUCH_MAP[3][3]={ | |
+ {BUTTON_OPTION, BUTTON_UP, BUTTON_HOME}, | |
+ {BUTTON_LEFT, BUTTON_PLAY, BUTTON_RIGHT}, | |
+ {BUTTON_PREV, BUTTON_DOWN, BUTTON_NEXT} | |
+}; | |
+ | |
+static int clamp(int v, int a, int b){ | |
+ if (v<a) return a; | |
+ if (v>b) return b; | |
+ return v; | |
+} | |
+ | |
+static int touch_to_key(int x, int y){ | |
+ x = clamp(x, 0, 239); | |
+ y = clamp(y, 0, 239); | |
+ return TOUCH_MAP[y/80][x/80]; | |
+} | |
+ | |
+#define NR_POLL_DESC 2 | |
+static struct pollfd poll_fds[NR_POLL_DESC]; | |
+ | |
+#define DEF_DELAY 5 | |
+ | |
+static int button_map_on(int keycode) | |
+{ | |
+ switch(keycode) | |
+ { | |
+ case KEY_RIGHT: | |
+ key_right_delay = DEF_DELAY; | |
+ return BUTTON_VOL_DOWN; | |
+ | |
+ case KEY_F7: | |
+ key_right_delay = 0; | |
+ return BUTTON_VOL_DOWN; | |
+ | |
+ case KEY_LEFT: | |
+ key_left_delay = DEF_DELAY; | |
+ return BUTTON_VOL_UP; | |
+ | |
+ case KEY_F6: | |
+ key_left_delay = 0; | |
+ return BUTTON_VOL_UP; | |
+ | |
+ case KEY_POWER: | |
+ key_power_delay = DEF_DELAY; | |
+ return BUTTON_POWER; | |
+ case KEY_F8: | |
+ key_power_delay = 0; | |
+ return BUTTON_POWER; | |
+ default: | |
+ return 0; | |
+ } | |
+} | |
+ | |
+static int button_map_off(int keycode) | |
+{ | |
+ switch(keycode) | |
+ { | |
+ case KEY_F7: | |
+ return BUTTON_VOL_DOWN; | |
+ | |
+ case KEY_F6: | |
+ return BUTTON_VOL_UP; | |
+ | |
+ case KEY_F8: | |
+ return BUTTON_POWER; | |
+ default: | |
+ return 0; | |
+ } | |
+} | |
+ | |
+static int button_map_timer(void) | |
+{ | |
+ int map = 0; | |
+ | |
+ if (key_enter_delay) | |
+ { | |
+ if (--key_enter_delay == 0) map |= BUTTON_PLAY; | |
+ } | |
+ if (key_right_delay) | |
+ { | |
+ if (--key_right_delay == 0) map |= BUTTON_VOL_DOWN; | |
+ } | |
+ if (key_left_delay) | |
+ { | |
+ if (--key_left_delay == 0) map |= BUTTON_VOL_UP; | |
+ } | |
+ if (key_power_delay) | |
+ { | |
+ if (--key_power_delay == 0) map |= BUTTON_POWER; | |
+ } | |
+ if (key_home_delay) | |
+ { | |
+ if (--key_home_delay == 0) map |= BUTTON_OPTION; | |
+ } | |
+ if (key_backspace_delay) | |
+ { | |
+ if (--key_backspace_delay == 0) map |= BUTTON_HOME; | |
+ } | |
+ if (key_leftbrace_delay) | |
+ { | |
+ if (--key_leftbrace_delay == 0) map |= BUTTON_PREV; | |
+ } | |
+ if (key_rightbrace_delay) | |
+ { | |
+ if (--key_rightbrace_delay == 0) map |= BUTTON_NEXT; | |
+ } | |
+ if (key_up_delay) | |
+ { | |
+ if (--key_up_delay == 0) map |= BUTTON_UP; | |
+ } | |
+ if (key_down_delay) | |
+ { | |
+ if (--key_down_delay == 0) map |= BUTTON_DOWN; | |
+ } | |
+ if (key_f12_delay) | |
+ { | |
+ if (--key_f12_delay == 0) map |= 0; //BUTTON_UNLOCK | |
+ } | |
+ | |
+ return map; | |
+} | |
+ | |
+ | |
+void button_init_device(void) | |
+{ | |
+ const char * const input_devs[] = { | |
+ "/dev/input/event0", | |
+ "/dev/input/event3", | |
+ }; | |
+ | |
+ for(int i = 0; i < NR_POLL_DESC; i++) | |
+ { | |
+ int fd = open(input_devs[i], O_RDWR | O_CLOEXEC); | |
+ | |
+ if(fd < 0) | |
+ { | |
+ panicf("Cannot open input device: %s\n", input_devs[i]); | |
+ } | |
+ | |
+ poll_fds[i].fd = fd; | |
+ poll_fds[i].events = POLLIN; | |
+ poll_fds[i].revents = 0; | |
+ } | |
+} | |
+ | |
+int button_read_device(void) | |
+{ | |
+ static int button_bitmap = 0; | |
+ static int map; | |
+ struct input_event event; | |
+ | |
+ /* check if there are any events pending and process them */ | |
+ while(poll(poll_fds, NR_POLL_DESC, 0)) | |
+ { | |
+ for(int i = 0; i < NR_POLL_DESC; i++) | |
+ { | |
+ /* read only if non-blocking */ | |
+ if(poll_fds[i].revents & POLLIN) | |
+ { | |
+ int size = read(poll_fds[i].fd, &event, sizeof(event)); | |
+ if(size == (int)sizeof(event)) | |
+ { | |
+ if(event.type == EV_KEY) | |
+ { | |
+ int keycode = event.code; | |
+ | |
+ /* event.value == 1 means press | |
+ * event.value == 0 means release | |
+ */ | |
+ bool press = event.value ? true : false; | |
+ | |
+ if (keycode == BTN_TOUCH){ | |
+ touch_ts.touch = press; | |
+ continue; | |
+ } | |
+ | |
+ if(press) | |
+ { | |
+ map = button_map_on(keycode); | |
+ button_bitmap |= map; | |
+ } | |
+ else | |
+ { | |
+ map = button_map_off(keycode); | |
+ button_bitmap &= ~map; | |
+ } | |
+ } | |
+ else if(event.type == EV_ABS){ | |
+ if (event.code==ABS_X) touch_ts.x = event.value; | |
+ else if (event.code==ABS_Y) touch_ts.y = event.value; | |
+ } | |
+ else if(event.type == EV_SYN){ | |
+ if (touch_ts.touch){ | |
+ reset_all_delay(); | |
+ touch_ts.last_x = touch_ts.x; | |
+ touch_ts.last_y = touch_ts.y; | |
+ button_bitmap = touch_to_key(touch_ts.x, touch_ts.y); | |
+ } else | |
+ button_bitmap &= ~touch_to_key(touch_ts.last_x, touch_ts.last_y); | |
+ } | |
+ | |
+ } | |
+ } | |
+ } | |
+ } | |
+ | |
+ map = button_map_timer(); | |
+ if (map) button_bitmap &= ~map; | |
+ | |
+ static int last_btn_bm = 0; | |
+ | |
+ return last_btn_bm = button_bitmap; | |
+} | |
+ | |
+bool headphones_inserted(void) | |
+{ | |
+ int status = 0; | |
+ const char * const sysfs_hs_switch = "/sys/class/misc/axp173/headset_state"; | |
+ | |
+ sysfs_get_int(sysfs_hs_switch, &status); | |
+ if (status) return true; | |
+ | |
+ return false; | |
+} | |
+ | |
+void button_close_device(void) | |
+{ | |
+ /* close descriptors */ | |
+ for(int i = 0; i < NR_POLL_DESC; i++) | |
+ { | |
+ close(poll_fds[i].fd); | |
+ } | |
+} | |
diff --git a/firmware/target/hosted/fiio/button-target.h b/firmware/target/hosted/fiio/button-target.h | |
index 7098eaf..e8c3725 100644 | |
--- a/firmware/target/hosted/fiio/button-target.h | |
+++ b/firmware/target/hosted/fiio/button-target.h | |
@@ -31,13 +31,17 @@ | |
#define BUTTON_VOL_DOWN 0x00000080 | |
#define BUTTON_UP 0x00000100 | |
#define BUTTON_DOWN 0x00000200 | |
- | |
+#if defined(FIIO_M5) | |
+#define BUTTON_LEFT 0x00000400 | |
+#define BUTTON_RIGHT 0x00000800 | |
+#elif defined(FIIO_M3K) | |
+#define BUTTON_LEFT BUTTON_PREV | |
+#define BUTTON_RIGHT BUTTON_NEXT | |
+#endif | |
#define BUTTON_MAIN (BUTTON_POWER | BUTTON_HOME | BUTTON_OPTION | BUTTON_PREV | \ | |
BUTTON_NEXT | BUTTON_PLAY | BUTTON_VOL_UP | BUTTON_VOL_DOWN | \ | |
- BUTTON_UP | BUTTON_DOWN) | |
+ BUTTON_UP | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT) | |
-#define BUTTON_LEFT BUTTON_PREV | |
-#define BUTTON_RIGHT BUTTON_NEXT | |
/* Software power-off */ | |
#define POWEROFF_BUTTON BUTTON_POWER | |
diff --git a/firmware/target/hosted/filesystem-app.c b/firmware/target/hosted/filesystem-app.c | |
index 16ad5e3..3508738 100644 | |
--- a/firmware/target/hosted/filesystem-app.c | |
+++ b/firmware/target/hosted/filesystem-app.c | |
@@ -52,10 +52,10 @@ | |
static const char rbhome[] = "/sdcard"; | |
#elif (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA)) \ | |
&& !defined(__PCTOOL__) | |
-static const char *rbhome; | |
+static const char *rbhome = PIVOT_ROOT; | |
#else | |
/* YPR0, YPR1, NWZ, etc */ | |
-static const char rbhome[] = HOME_DIR; | |
+static const char* rbhome = HOME_DIR; | |
#endif | |
#endif | |
diff --git a/tools/configure b/tools/configure | |
index aef02b2..aa28ad8 100755 | |
--- a/tools/configure | |
+++ b/tools/configure | |
@@ -1591,7 +1591,7 @@ cat <<EOF | |
240) Rocker 228) NWZ-A860 series | |
==FiiO== 229) NWZ-S750 series | |
==AIGO== 244) M3K | |
- 245) Eros Q / K | |
+ 245) Eros Q / K 255) M5 | |
EOF | |
@@ -4193,6 +4193,29 @@ fi | |
t_model="ihifi2" | |
;; | |
+ 255|fiiom5) | |
+ application="yes" | |
+ app_type="fiio" | |
+ target_id=127 | |
+ modelname="fiiom5" | |
+ target="FIIO_M5" | |
+ memory=32 | |
+ tool="cp " | |
+ boottool="cp " | |
+ bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" | |
+ bmp2rb_native="$rootdir/tools/bmp2rb -f 4" | |
+ output="rockbox.m5" | |
+ bootoutput="bootloader.m5" | |
+ appextra="recorder:gui:hosted" | |
+ plugins="yes" | |
+ # architecture, manufacturer and model for the target-tree build | |
+ t_cpu="hosted" | |
+ t_manufacturer="fiio" | |
+ t_model="m5" | |
+ mipsellinuxcc | |
+ sysfont="16-Terminus" | |
+ ;; | |
+ | |
*) | |
echo "Please select a supported target platform!" | |
exit 7 | |
diff --git a/tools/root.make b/tools/root.make | |
index 3f5b4bc..acc676a 100644 | |
--- a/tools/root.make | |
+++ b/tools/root.make | |
@@ -126,8 +126,8 @@ else # core | |
include $(ROOTDIR)/lib/rbcodec/rbcodec.make | |
ifdef ENABLEDPLUGINS | |
- include $(APPSDIR)/plugins/bitmaps/pluginbitmaps.make | |
- include $(APPSDIR)/plugins/plugins.make | |
+ include $(APPSDIR)/plugins/bitmaps/pluginbitmaps.make | |
+ include $(APPSDIR)/plugins/plugins.make | |
endif | |
ifneq (,$(findstring sdl,$(APP_TYPE))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Replace original poweroff command on FiiO M5 | |
/bin/busybox poweroff & | |
sync | |
umount /mnt/sd_0 | |
sleep 10 | |
# hope it's enough for poweroff to kill applications, now cut the power | |
ioctl /dev/axp173 0x20003323 | |
# To build ioctl: | |
# git clone https://github.com/jerome-pouiller/ioctl | |
# cd ioctl | |
# mipsel-rockbox-linux-gnu-gcc ioctl.c ioctls_list_empty.c -Os -o ioctl |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# /etc/init.d/S90adb | |
# | |
# Start mass_storage.... | |
# | |
case "$1" in | |
start) | |
echo "Starting mass_storage..." | |
if [ -d /sys/class/android_usb/android0 ] | |
then | |
cd /sys/class/android_usb/android0 | |
if ! grep adb functions | |
then | |
echo 0 > enable | |
echo 18d1 > idVendor | |
echo d002 > idProduct | |
echo mass_storage,adb > functions | |
echo 1 > enable | |
fi | |
/sbin/adbserver.sh & | |
/usr/bin/udc_mass_storage.sh & | |
sdptool add OPUSH & | |
cd - | |
else | |
echo "notice : mass storage and adb don't use, kernel config error" | |
fi | |
;; | |
stop) | |
;; | |
restart|reload) | |
;; | |
*) | |
echo "Usage: $0 {start|stop|restart}" | |
exit 1 | |
esac | |
amixer cset numid=19,iface=MIXER,name='ADC Mux' 0 | |
amixer cset numid=4,iface=MIXER,name='Digital Capture Volume' 0 | |
amixer cset numid=6,iface=MIXER,name='Mic Volume' 4 | |
echo 0 > /proc/sys/kernel/printk | |
#check /data/ | |
if [ ! -d "/data" ]; then | |
ubidetach -m 4 | |
ubiformat /dev/mtd4 -y | |
ubiattach -m 4 -d 1 /dev/ubi_ctrl | |
ubimkvol /dev/ubi1 -N app_pri -m | |
mount -t ubifs ubi1_0 /data | |
fi | |
if [ ! -d "/data/userfs" ]; then | |
mkdir -p /data/userfs | |
fi | |
# rockbox bootloader install to /sbin/ | |
[ -f /sbin/bootloader.m5 ] && /sbin/bootloader.m5 && exit | |
# when select FIIO PLAYER from bootloader, it will return 1, so fallback here | |
# the normal way to execp(/path/to/player) has problem wit M5 touch screen for now | |
/usr/project/bin/play.sh & | |
exit $? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment