From 3ec66893e377b088c1284d2d23adb2aeea6d7965 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Sat, 27 Feb 2021 22:08:58 +0000 Subject: New port: FiiO M3K on bare metal Change-Id: I7517e7d5459e129dcfc9465c6fbd708619888fbe --- apps/SOURCES | 2 + apps/debug_menu.c | 53 +++++++ apps/features.txt | 7 +- apps/gui/option_select.h | 2 +- apps/keymaps/keymap-fiiom3k.c | 219 ++++++++++++++++++++++++++ apps/lang/english-us.lang | 6 +- apps/lang/english.lang | 6 +- apps/plugins/battery_bench.c | 6 + apps/plugins/blackjack.c | 16 ++ apps/plugins/brickmania.c | 8 + apps/plugins/calculator.c | 10 ++ apps/plugins/calendar.c | 10 ++ apps/plugins/chessbox/chessbox_pgn.h | 14 ++ apps/plugins/chessclock.c | 10 ++ apps/plugins/chip8.c | 8 + apps/plugins/chopper.c | 5 + apps/plugins/clix.c | 8 + apps/plugins/cube.c | 10 ++ apps/plugins/doom/i_video.c | 12 ++ apps/plugins/flipit.c | 12 ++ apps/plugins/fractals/fractal.h | 12 ++ apps/plugins/goban/goban.h | 12 ++ apps/plugins/imageviewer/imageviewer_button.h | 14 ++ apps/plugins/invadrox.c | 7 + apps/plugins/jewels.c | 9 ++ apps/plugins/lib/keymaps.h | 8 + apps/plugins/lib/pluginlib_actions.c | 15 ++ apps/plugins/midi/midiplay.c | 8 + apps/plugins/minesweeper.c | 11 ++ apps/plugins/mp3_encoder.c | 6 + apps/plugins/mpegplayer/mpeg_settings.c | 8 + apps/plugins/mpegplayer/mpegplayer.c | 9 ++ apps/plugins/oscilloscope.c | 11 ++ apps/plugins/pacbox/pacbox.h | 9 ++ apps/plugins/pegbox.c | 17 ++ apps/plugins/plugin.lds | 9 ++ apps/plugins/pong.c | 7 + apps/plugins/reversi/reversi-gui.h | 9 ++ apps/plugins/rockblox.c | 10 ++ apps/plugins/rockboy/rockboy.c | 11 ++ apps/plugins/rockpaint.c | 11 ++ apps/plugins/sliding_puzzle.c | 8 + apps/plugins/snake.c | 8 + apps/plugins/snake2.c | 9 ++ apps/plugins/sokoban.c | 15 ++ apps/plugins/solitaire.c | 19 +++ apps/plugins/spacerocks.c | 9 ++ apps/plugins/star.c | 16 ++ apps/plugins/stopwatch.c | 8 + apps/plugins/sudoku/sudoku.h | 11 ++ apps/plugins/text_viewer/tv_button.h | 12 ++ apps/plugins/vu_meter.c | 11 ++ apps/plugins/wormlet.c | 9 ++ apps/plugins/xobox.c | 9 ++ apps/plugins/zxbox/keymaps.h | 8 + apps/plugins/zxbox/zxbox_keyb.c | 9 ++ 56 files changed, 790 insertions(+), 8 deletions(-) create mode 100644 apps/keymaps/keymap-fiiom3k.c (limited to 'apps') diff --git a/apps/SOURCES b/apps/SOURCES index 62291bb992..80133ebd27 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -302,6 +302,8 @@ keymaps/keymap-xduoox3ii.c keymaps/keymap-xduoox20.c #elif CONFIG_KEYPAD == FIIO_M3K_LINUX_PAD keymaps/keymap-fiiom3klinux.c +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +keymaps/keymap-fiiom3k.c #elif CONFIG_KEYPAD == EROSQ_PAD keymaps/keymap-erosq.c #endif diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 9bbbfaec99..f7e179b040 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -126,6 +126,10 @@ #include "bootdata.h" #endif +#ifdef FIIO_M3K +#include "installer.h" +#endif + static const char* threads_getname(int selected_item, void *data, char *buffer, size_t buffer_len) { @@ -2491,6 +2495,52 @@ static bool dbg_boot_data(void) } #endif /* defined(HAVE_BOOTDATA) && !defined(SIMULATOR) */ +#ifdef FIIO_M3K +/* Note: this is temporary and should NOT be merged, ensure it is removed */ +static int fiio_debug_menu_action_callback(int action, struct gui_synclist *lists) +{ + if(action == ACTION_REDRAW) { + simplelist_set_line_count(0); + simplelist_addline("Back to menu"); + simplelist_addline("Install bootloader"); + simplelist_addline("Dump bootloader"); + action = ACTION_REDRAW; + } + + if(action == ACTION_STD_OK) { + int sel = gui_synclist_get_sel_pos(lists); + int rc = 0; + switch(sel) { + case 1: + rc = install_bootloader("/boot.install"); + break; + case 2: + rc = dump_bootloader("/boot.dump"); + break; + default: + break; + } + + if(sel == 1 || sel == 2) { + const char* msg = installer_strerror(rc); + splashf(3*HZ, "(%d) %s", rc, msg); + } + + action = ACTION_STD_CANCEL; + } + + return action; +} + +static bool dbg_fiio_menu(void) +{ + struct simplelist_info info; + simplelist_info_init(&info, "FiiO debug menu", 3, NULL); + info.action_callback = fiio_debug_menu_action_callback; + return simplelist_show_list(&info); +} +#endif + /****** The menu *********/ static const struct { unsigned char *desc; /* string or ID */ @@ -2598,6 +2648,9 @@ static const struct { #if defined(HAVE_BOOTDATA) && !defined(SIMULATOR) {"Boot data", dbg_boot_data }, #endif +#ifdef FIIO_M3K + {"FiiO debug menu", dbg_fiio_menu}, +#endif }; static int menu_action_callback(int btn, struct gui_synclist *lists) diff --git a/apps/features.txt b/apps/features.txt index 282f5e6a6d..4e7f986057 100644 --- a/apps/features.txt +++ b/apps/features.txt @@ -182,10 +182,15 @@ depth_3d #endif /* This should be AUDIOHW_HAVE_FILTER_ROLL_OFF but that is only defined later */ -#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) +#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) || defined(HAVE_AK4376) filter_roll_off #endif +/* This should be AUDIOHW_HAVE_POWER_MODE but that is not defined yet */ +#if defined(HAVE_AK4376) +dac_power_mode +#endif + #if defined(HAVE_ES9018) es9018 #endif diff --git a/apps/gui/option_select.h b/apps/gui/option_select.h index 7ca9a4ebbb..476e7b81bd 100644 --- a/apps/gui/option_select.h +++ b/apps/gui/option_select.h @@ -25,7 +25,7 @@ #include "screen_access.h" #include "settings.h" -#if defined (HAVE_SCROLLWHEEL) +#if defined (HAVE_SCROLLWHEEL) && !defined(FIIO_M3K) /* Define this if your target makes sense to have smaller values at the top of the list increasing down the list */ #define ASCENDING_INT_SETTINGS diff --git a/apps/keymaps/keymap-fiiom3k.c b/apps/keymaps/keymap-fiiom3k.c new file mode 100644 index 0000000000..e562443227 --- /dev/null +++ b/apps/keymaps/keymap-fiiom3k.c @@ -0,0 +1,219 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2021 Aidan MacDonald + * + * 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 } */ + +static const struct button_mapping button_context_standard[] = { + {ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE}, + {ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE}, + {ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_STD_PREV, BUTTON_SCROLL_BACK, BUTTON_NONE}, + {ACTION_STD_PREVREPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_STD_NEXT, BUTTON_SCROLL_FWD, BUTTON_NONE}, + {ACTION_STD_NEXTREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, + {ACTION_STD_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK}, + {ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT}, + {ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU}, + {ACTION_STD_MENU, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK}, + {ACTION_STD_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU}, + {ACTION_STD_KEYLOCK, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, + {ACTION_STD_HOTKEY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, + 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_PLAY, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, + {ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER}, + {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_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT}, + {ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT}, + {ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT}, + {ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT}, + {ACTION_WPS_BROWSE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK}, + {ACTION_WPS_MENU, BUTTON_BACK|BUTTON_REL, BUTTON_BACK}, + {ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU}, + {ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU}, + {ACTION_STD_KEYLOCK, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, + {ACTION_WPS_HOTKEY, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY}, + {ACTION_WPS_VIEW_PLAYLIST, BUTTON_SCROLL_FWD, BUTTON_NONE}, + {ACTION_WPS_VIEW_PLAYLIST, BUTTON_SCROLL_BACK, BUTTON_NONE}, + {ACTION_WPS_ABSETA_PREVDIR, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP}, + {ACTION_WPS_ABSETB_NEXTDIR, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN}, + {ACTION_WPS_ABRESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT}, + LAST_ITEM_IN_LIST +}; /* button_context_wps */ + +static const struct button_mapping button_context_tree[] = { + {ACTION_TREE_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY}, + {ACTION_TREE_WPS, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK}, + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) +}; /* button_context_tree */ + +static const struct button_mapping button_context_list[] = { + {ACTION_LISTTREE_PGUP, BUTTON_LEFT, BUTTON_NONE}, + {ACTION_LISTTREE_PGUP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_LISTTREE_PGDOWN, BUTTON_RIGHT, BUTTON_NONE}, + {ACTION_LISTTREE_PGDOWN, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, + {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 */ + +static const struct button_mapping button_context_settings[] = { + {ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE}, + {ACTION_SETTINGS_INCREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_SETTINGS_INC, BUTTON_SCROLL_BACK, BUTTON_NONE}, + {ACTION_SETTINGS_INCREPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_SETTINGS_INCBIGSTEP, BUTTON_VOL_UP, BUTTON_NONE}, + {ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE}, + {ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_SETTINGS_DEC, BUTTON_SCROLL_FWD, BUTTON_NONE}, + {ACTION_SETTINGS_DECREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_SETTINGS_DECBIGSTEP, BUTTON_VOL_DOWN, BUTTON_NONE}, + {ACTION_SETTINGS_RESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT}, + {ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE}, + {ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE}, + {ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) +}; /* button_context_settings */ + +static const struct button_mapping button_context_settings_eq[] = { + {ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE}, + {ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_SETTINGS_INCBIGSTEP, BUTTON_VOL_UP, BUTTON_NONE}, + {ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE}, + {ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_SETTINGS_DECBIGSTEP, BUTTON_VOL_DOWN, BUTTON_NONE}, + LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) +}; /* button_context_settings_eq */ + +static const struct button_mapping button_context_quickscreen[] = { + {ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE}, + {ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE}, + {ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE}, + {ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, + {ACTION_QS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE}, + {ACTION_QS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE}, + {ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE}, + {ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE}, + {ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE}, + LAST_ITEM_IN_LIST +}; /* button_context_quickscreen */ + +static const struct button_mapping button_context_pitchscreen[] = { + {ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE}, + {ACTION_PS_INC_SMALL, BUTTON_SCROLL_BACK, BUTTON_NONE}, + {ACTION_PS_INC_BIG, BUTTON_VOL_UP, BUTTON_NONE}, + {ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE}, + {ACTION_PS_DEC_SMALL, BUTTON_SCROLL_FWD, BUTTON_NONE}, + {ACTION_PS_DEC_BIG, BUTTON_VOL_DOWN, BUTTON_NONE}, + {ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE}, + {ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, + {ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE}, + {ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE}, + {ACTION_PS_TOGGLE_MODE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, + {ACTION_PS_RESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT}, + {ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE}, + {ACTION_PS_FASTER, BUTTON_BACK, BUTTON_NONE}, + {ACTION_PS_SLOWER, BUTTON_MENU, BUTTON_NONE}, + LAST_ITEM_IN_LIST +}; /* button_context_pitchscreen */ + +static const struct button_mapping button_context_yesnoscreen[] = { + {ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE}, + {ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE}, + {ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE}, + {ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE}, + LAST_ITEM_IN_LIST +}; /* button_context_yesnoscreen */ + +static const struct button_mapping button_context_keyboard[] = { + {ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE}, + {ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE}, + {ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE}, + {ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, + {ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE}, + {ACTION_KBD_BACKSPACE, BUTTON_BACK, BUTTON_NONE}, + {ACTION_KBD_BACKSPACE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE}, + {ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE}, + {ACTION_KBD_PAGE_FLIP, BUTTON_MENU, BUTTON_NONE}, + {ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE}, + {ACTION_KBD_CURSOR_LEFT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + {ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_UP, BUTTON_NONE}, + {ACTION_KBD_CURSOR_RIGHT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, + LAST_ITEM_IN_LIST +}; /* button_context_keyboard */ + +const struct button_mapping* get_context_mapping(int context) +{ + switch (context) + { + default: + case CONTEXT_STD: + return button_context_standard; + case CONTEXT_WPS: + return button_context_wps; + case CONTEXT_TREE: + case CONTEXT_MAINMENU: + case CONTEXT_BOOKMARKSCREEN: + return button_context_tree; + case CONTEXT_LIST: + return button_context_list; + case CONTEXT_SETTINGS: + case CONTEXT_SETTINGS_TIME: + case CONTEXT_SETTINGS_RECTRIGGER: + return button_context_settings; + case CONTEXT_SETTINGS_EQ: + case CONTEXT_SETTINGS_COLOURCHOOSER: + return button_context_settings_eq; + case CONTEXT_QUICKSCREEN: + return button_context_quickscreen; + case CONTEXT_PITCHSCREEN: + return button_context_pitchscreen; + case CONTEXT_YESNOSCREEN: + return button_context_yesnoscreen; + case CONTEXT_KEYBOARD: + return button_context_keyboard; + } +} diff --git a/apps/lang/english-us.lang b/apps/lang/english-us.lang index d64a6c8777..5a1c4cdf8c 100644 --- a/apps/lang/english-us.lang +++ b/apps/lang/english-us.lang @@ -9611,15 +9611,15 @@ user: core *: none - gigabeatfx,sansafuzeplus: "Touchpad Sensitivity" + gigabeatfx,sansafuzeplus,fiiom3k: "Touchpad Sensitivity" *: none - gigabeatfx,sansafuzeplus: "Touchpad Sensitivity" + gigabeatfx,sansafuzeplus,fiiom3k: "Touchpad Sensitivity" *: none - gigabeatfx,sansafuzeplus: "Touchpad Sensitivity" + gigabeatfx,sansafuzeplus,fiiom3k: "Touchpad Sensitivity" diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 52d943f75e..327584c4f6 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -9702,15 +9702,15 @@ user: core *: none - gigabeatfx,sansafuzeplus: "Touchpad Sensitivity" + gigabeatfx,sansafuzeplus,fiiom3k: "Touchpad Sensitivity" *: none - gigabeatfx,sansafuzeplus: "Touchpad Sensitivity" + gigabeatfx,sansafuzeplus,fiiom3k: "Touchpad Sensitivity" *: none - gigabeatfx,sansafuzeplus: "Touchpad Sensitivity" + gigabeatfx,sansafuzeplus,fiiom3k: "Touchpad Sensitivity" diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c index dc22489b15..f8269f5c3b 100644 --- a/apps/plugins/battery_bench.c +++ b/apps/plugins/battery_bench.c @@ -242,6 +242,12 @@ #define BATTERY_OFF_TXT "Power" #define BATTERY_ON_TXT "Menu - start" +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define BATTERY_ON BUTTON_PLAY +#define BATTERY_OFF BUTTON_POWER +#define BATTERY_ON_TXT "Play" +#define BATTERY_OFF_TXT "Power" + #else #error "No keymap defined!" #endif diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index f434784a5f..0667c31ef6 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c @@ -607,6 +607,22 @@ enum { #define BJACK_RIGHT BUTTON_SCROLL_FWD #define BJACK_LEFT BUTTON_SCROLL_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define BJACK_SELECT_NAME "SELECT" +#define BJACK_STAY_NAME "PLAY" +#define BJACK_QUIT_NAME "POWER" +#define BJACK_DOUBLE_NAME "MENU" +#define BJACK_SELECT BUTTON_SELECT +#define BJACK_QUIT BUTTON_POWER +#define BJACK_MAX BUTTON_VOL_UP +#define BJACK_MIN BUTTON_VOL_DOWN +#define BJACK_STAY BUTTON_PLAY +#define BJACK_DOUBLEDOWN BUTTON_MENU +#define BJACK_UP BUTTON_UP +#define BJACK_DOWN BUTTON_DOWN +#define BJACK_RIGHT BUTTON_RIGHT +#define BJACK_LEFT BUTTON_LEFT + #else #error No keymap defined! #endif diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 70ad58a908..92f8d4d161 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -342,6 +342,14 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD #define UP BUTTON_PREV #define DOWN BUTTON_NEXT +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define QUIT BUTTON_POWER +#define LEFT BUTTON_LEFT +#define RIGHT BUTTON_RIGHT +#define SELECT BUTTON_PLAY +#define UP BUTTON_UP +#define DOWN BUTTON_DOWN + #else #error No keymap defined! #endif diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 46d9da6149..4d1b6fa594 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -536,6 +536,16 @@ F3: equal to "=" #define CALCULATOR_CALC BUTTON_MENU #define CALCULATOR_CLEAR BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_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_MENU +#define CALCULATOR_CLEAR BUTTON_BACK + #else #error No keymap defined! #endif diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c index b52a62328f..54173fde1c 100644 --- a/apps/plugins/calendar.c +++ b/apps/plugins/calendar.c @@ -421,6 +421,16 @@ #define CALENDAR_NEXT_MONTH BUTTON_VOL_UP #define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define CALENDAR_QUIT BUTTON_POWER +#define CALENDAR_SELECT BUTTON_SELECT +#define CALENDAR_NEXT_WEEK BUTTON_DOWN +#define CALENDAR_PREV_WEEK BUTTON_UP +#define CALENDAR_NEXT_DAY BUTTON_LEFT +#define CALENDAR_PREV_DAY BUTTON_RIGHT +#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP +#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN + #else #error "No keypad setting." #endif diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h index aacc2ba412..5bfce10ec5 100644 --- a/apps/plugins/chessbox/chessbox_pgn.h +++ b/apps/plugins/chessbox/chessbox_pgn.h @@ -581,6 +581,20 @@ #define CB_SCROLL_LEFT (BUTTON_SCROLL_BACK|BUTTON_REPEAT) #define CB_SCROLL_RIGHT (BUTTON_SCROLL_FWD|BUTTON_REPEAT) +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define CB_SELECT BUTTON_SELECT +#define CB_UP BUTTON_UP +#define CB_DOWN BUTTON_DOWN +#define CB_LEFT BUTTON_LEFT +#define CB_RIGHT BUTTON_RIGHT +#define CB_PLAY BUTTON_PLAY +#define CB_MENU BUTTON_MENU +#define CB_LEVEL BUTTON_BACK +#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) + #else #error No keymap defined! #endif diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c index 9b933cdcd4..9a30dee984 100644 --- a/apps/plugins/chessclock.c +++ b/apps/plugins/chessclock.c @@ -406,6 +406,16 @@ #define CHC_SETTINGS_OK BUTTON_PLAY #define CHC_SETTINGS_CANCEL BUTTON_POWER +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define CHC_QUIT BUTTON_POWER +#define CHC_STARTSTOP BUTTON_PLAY +#define CHC_RESET BUTTON_BACK +#define CHC_MENU BUTTON_MENU +#define CHC_SETTINGS_INC BUTTON_UP +#define CHC_SETTINGS_DEC BUTTON_DOWN +#define CHC_SETTINGS_OK BUTTON_SELECT +#define CHC_SETTINGS_CANCEL BUTTON_POWER + #else #error No keymap defined! #endif diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index dde6faaccf..31866acd10 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c @@ -1283,6 +1283,14 @@ CONFIG_KEYPAD == MROBE500_PAD #define CHIP8_KEY6 BUTTON_BACK #define CHIP8_KEY8 BUTTON_PREV +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define CHIP8_OFF BUTTON_POWER +#define CHIP8_KEY2 BUTTON_MENU +#define CHIP8_KEY4 BUTTON_LEFT +#define CHIP8_KEY5 BUTTON_SELECT +#define CHIP8_KEY6 BUTTON_RIGHT +#define CHIP8_KEY8 BUTTON_BACK + #else #error No keymap defined! #endif diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c index 23b32150da..ab8f7b5540 100644 --- a/apps/plugins/chopper.c +++ b/apps/plugins/chopper.c @@ -203,6 +203,11 @@ CONFIG_KEYPAD == MROBE500_PAD #define ACTION BUTTON_PLAY #define ACTIONTEXT "PLAY" +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define QUIT BUTTON_POWER +#define ACTION BUTTON_PLAY +#define ACTIONTEXT "PLAY" + #elif !defined(HAVE_TOUCHSCREEN) #error No keymap defined! #endif diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index eb0e0d1a59..f1f21f6312 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c @@ -316,6 +316,14 @@ #define CLIX_BUTTON_RIGHT BUTTON_SCROLL_FWD #define CLIX_BUTTON_CLICK BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_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_SELECT + #else #error "no keymap" #endif diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index b84a2636cb..6587fdcb65 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -410,6 +410,16 @@ #define CUBE_PAUSE BUTTON_BACK #define CUBE_HIGHSPEED BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define CUBE_QUIT BUTTON_POWER +#define CUBE_NEXT BUTTON_RIGHT +#define CUBE_PREV BUTTON_LEFT +#define CUBE_INC BUTTON_SCROLL_FWD +#define CUBE_DEC BUTTON_SCROLL_BACK +#define CUBE_MODE BUTTON_MENU +#define CUBE_PAUSE BUTTON_PLAY +#define CUBE_HIGHSPEED BUTTON_BACK + #else #error No keymap defined! #endif diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c index 233c1cac8f..bb04194acc 100644 --- a/apps/plugins/doom/i_video.c +++ b/apps/plugins/doom/i_video.c @@ -612,6 +612,18 @@ void I_ShutdownGraphics(void) #define DOOMBUTTON_WEAPON BUTTON_VOL_UP #define DOOMBUTTON_MAP BUTTON_VOL_DOWN +#elif CONFIG_KEYPAD == FIIO_M3K_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_SELECT +#define DOOMBUTTON_OPEN BUTTON_PLAY +#define DOOMBUTTON_ESC BUTTON_POWER +#define DOOMBUTTON_ENTER BUTTON_SELECT +#define DOOMBUTTON_WEAPON BUTTON_VOL_UP +#define DOOMBUTTON_MAP BUTTON_VOL_DOWN + #else #error Keymap not defined! #endif diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c index 4a6e64a5be..f6fb059f91 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c @@ -484,6 +484,18 @@ #define FLIPIT_STEP_BY_STEP BUTTON_VOL_UP #define FLIPIT_TOGGLE BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_PAD + +#define FLIPIT_LEFT BUTTON_LEFT +#define FLIPIT_RIGHT BUTTON_RIGHT +#define FLIPIT_UP BUTTON_UP +#define FLIPIT_DOWN BUTTON_DOWN +#define FLIPIT_QUIT BUTTON_POWER +#define FLIPIT_SHUFFLE BUTTON_PLAY +#define FLIPIT_SOLVE BUTTON_VOL_DOWN +#define FLIPIT_STEP_BY_STEP BUTTON_VOL_UP +#define FLIPIT_TOGGLE BUTTON_SELECT + #else #error No keymap defined! #endif diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h index 55bd513fe0..28172aed9f 100644 --- a/apps/plugins/fractals/fractal.h +++ b/apps/plugins/fractals/fractal.h @@ -506,6 +506,18 @@ #define FRACTAL_PRECISION_DEC BUTTON_BACK #define FRACTAL_RESET BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_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_MENU +#define FRACTAL_PRECISION_DEC BUTTON_BACK +#define FRACTAL_RESET BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h index 375588c7d8..9f1a200cc2 100644 --- a/apps/plugins/goban/goban.h +++ b/apps/plugins/goban/goban.h @@ -492,6 +492,18 @@ #define GBN_BUTTON_CONTEXT BUTTON_MENU | BUTTON_REPEAT #define GBN_BUTTON_NEXT_VAR BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_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_MENU +#define GBN_BUTTON_PLAY BUTTON_PLAY +#define GBN_BUTTON_CONTEXT (BUTTON_SELECT|BUTTON_REPEAT) +#define GBN_BUTTON_NEXT_VAR BUTTON_BACK + #else #error Unsupported keypad #endif diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h index 221ea3380e..cfb9a2969b 100644 --- a/apps/plugins/imageviewer/imageviewer_button.h +++ b/apps/plugins/imageviewer/imageviewer_button.h @@ -536,6 +536,20 @@ #define IMGVIEW_MENU BUTTON_MENU #define IMGVIEW_SLIDE_SHOW BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP +#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN +#define IMGVIEW_UP BUTTON_UP +#define IMGVIEW_DOWN BUTTON_DOWN +#define IMGVIEW_LEFT BUTTON_LEFT +#define IMGVIEW_RIGHT BUTTON_RIGHT +#define IMGVIEW_NEXT BUTTON_BACK +#define IMGVIEW_NEXT_REPEAT (BUTTON_BACK|BUTTON_REPEAT) +#define IMGVIEW_PREVIOUS BUTTON_MENU +#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_MENU|BUTTON_REPEAT) +#define IMGVIEW_MENU BUTTON_POWER +#define IMGVIEW_SLIDE_SHOW BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index 21bba6d9d4..8b0519d9d0 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c @@ -296,6 +296,13 @@ CONFIG_KEYPAD == MROBE500_PAD #define RIGHT BUTTON_SCROLL_FWD #define FIRE BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_PAD + +#define QUIT BUTTON_POWER +#define LEFT BUTTON_LEFT +#define RIGHT BUTTON_RIGHT +#define FIRE BUTTON_SELECT + #else #error INVADROX: Unsupported keypad #endif diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 928cd78c95..83a44eea02 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c @@ -387,6 +387,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define HK_SELECT "PLAY" #define HK_CANCEL "BACK" +#elif CONFIG_KEYPAD == FIIO_M3K_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_SELECT +#define JEWELS_CANCEL BUTTON_BACK +#define HK_SELECT "SELECT" +#define HK_CANCEL "BACK" #else #error No keymap defined! diff --git a/apps/plugins/lib/keymaps.h b/apps/plugins/lib/keymaps.h index b0667b13cc..b660d4d85e 100644 --- a/apps/plugins/lib/keymaps.h +++ b/apps/plugins/lib/keymaps.h @@ -247,6 +247,14 @@ #define BTN_FIRE BUTTON_PLAY #define BTN_PAUSE BUTTON_POWER +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define BTN_UP BUTTON_UP +#define BTN_DOWN BUTTON_DOWN +#define BTN_LEFT BUTTON_LEFT +#define BTN_RIGHT BUTTON_RIGHT +#define BTN_FIRE BUTTON_SELECT +#define BTN_PAUSE BUTTON_POWER + #else #error Unsupported keypad #endif diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c index 4b5a0a4505..b1bcd06ee6 100644 --- a/apps/plugins/lib/pluginlib_actions.c +++ b/apps/plugins/lib/pluginlib_actions.c @@ -269,6 +269,15 @@ const struct button_mapping pla_main_ctx[] = { PLA_DOWN_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, { PLA_LEFT_REPEAT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE }, { PLA_RIGHT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, +#elif (CONFIG_KEYPAD == FIIO_M3K_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 }, #else # ifndef HAVE_TOUCHSCREEN # error pluginlib_actions: No directions defined @@ -506,6 +515,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_M3K_PAD) + {PLA_CANCEL, BUTTON_BACK, BUTTON_NONE}, + {PLA_EXIT, BUTTON_POWER, BUTTON_NONE}, + {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, + {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, + {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, #else # ifndef HAVE_TOUCHSCREEN # error pluginlib_actions: No actions defined diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index 7dde947e1c..f07cdd4dcf 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c @@ -325,6 +325,14 @@ #define MIDI_VOL_DOWN BUTTON_VOL_DOWN #define MIDI_PLAYPAUSE BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define MIDI_QUIT BUTTON_POWER +#define MIDI_FFWD BUTTON_LEFT +#define MIDI_REWIND BUTTON_RIGHT +#define MIDI_VOL_UP BUTTON_VOL_UP +#define MIDI_VOL_DOWN BUTTON_VOL_DOWN +#define MIDI_PLAYPAUSE BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c index 590ea56d08..19a6b99f12 100644 --- a/apps/plugins/minesweeper.c +++ b/apps/plugins/minesweeper.c @@ -432,6 +432,17 @@ CONFIG_KEYPAD == MROBE500_PAD # define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT) # define MINESWP_INFO BUTTON_VOL_UP +#elif CONFIG_KEYPAD == FIIO_M3K_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_SELECT +# define MINESWP_TOGGLE (BUTTON_SELECT|BUTTON_REL) +# define MINESWP_DISCOVER (BUTTON_SELECT|BUTTON_REPEAT) +# define MINESWP_INFO BUTTON_MENU + #else #error No keymap defined! #endif diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c index 244265b250..7c5084529b 100644 --- a/apps/plugins/mp3_encoder.c +++ b/apps/plugins/mp3_encoder.c @@ -2580,6 +2580,12 @@ CONFIG_KEYPAD == MROBE500_PAD #define MP3ENC_DONE BUTTON_POWER #define MP3ENC_SELECT BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define MP3ENC_PREV BUTTON_LEFT +#define MP3ENC_NEXT BUTTON_RIGHT +#define MP3ENC_DONE BUTTON_POWER +#define MP3ENC_SELECT BUTTON_SELECT + #else #error No keymap defined! #endif diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index 44c72dd853..d59797eaa7 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c @@ -354,6 +354,14 @@ struct mpeg_settings settings; #define MPEG_START_TIME_DOWN BUTTON_NEXT #define MPEG_START_TIME_EXIT BUTTON_POWER +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define MPEG_START_TIME_SELECT BUTTON_SELECT +#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_EXIT BUTTON_POWER + #else #error No keymap defined! #endif diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index 81b6d37857..6b18e4fa3a 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c @@ -486,6 +486,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD #define MPEG_RW BUTTON_PREV #define MPEG_FF BUTTON_NEXT +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define MPEG_MENU BUTTON_MENU +#define MPEG_STOP BUTTON_POWER +#define MPEG_PAUSE BUTTON_PLAY +#define MPEG_VOLDOWN BUTTON_VOL_DOWN +#define MPEG_VOLUP BUTTON_VOL_UP +#define MPEG_RW BUTTON_LEFT +#define MPEG_FF BUTTON_RIGHT + #else #error No keymap defined! #endif diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c index d50de7f2a0..881295d6ab 100644 --- a/apps/plugins/oscilloscope.c +++ b/apps/plugins/oscilloscope.c @@ -537,6 +537,17 @@ #define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define OSCILLOSCOPE_QUIT BUTTON_POWER +#define OSCILLOSCOPE_DRAWMODE BUTTON_MENU +#define OSCILLOSCOPE_ADVMODE BUTTON_PLAY +#define OSCILLOSCOPE_ORIENTATION BUTTON_BACK +#define OSCILLOSCOPE_PAUSE BUTTON_SELECT +#define OSCILLOSCOPE_SPEED_UP BUTTON_SCROLL_BACK +#define OSCILLOSCOPE_SPEED_DOWN BUTTON_SCROLL_FWD +#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP +#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN + #else #error No keymap defined! #endif diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h index 48196146a7..c1a1c6b9e5 100644 --- a/apps/plugins/pacbox/pacbox.h +++ b/apps/plugins/pacbox/pacbox.h @@ -401,6 +401,15 @@ #define PACMAN_1UP BUTTON_VOL_UP #define PACMAN_COIN BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_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_MENU +#define PACMAN_1UP BUTTON_VOL_UP +#define PACMAN_COIN BUTTON_PLAY + #else #error Keymap not defined! diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c index e16cf2921e..498aa36357 100644 --- a/apps/plugins/pegbox.c +++ b/apps/plugins/pegbox.c @@ -711,6 +711,23 @@ CONFIG_KEYPAD == MROBE500_PAD #define LVL_UP_TEXT "VOL+" #define LVL_DOWN_TEXT "VOL-" +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define PEGBOX_SELECT BUTTON_SELECT +#define PEGBOX_QUIT BUTTON_POWER +#define PEGBOX_RESTART BUTTON_BACK +#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_RIGHT +#define PEGBOX_LEFT BUTTON_LEFT + +#define SELECT_TEXT "SELECT" +#define QUIT_TEXT "POWER" +#define RESTART_TEXT "BACK" +#define LVL_UP_TEXT "VOL+" +#define LVL_DOWN_TEXT "VOL-" + #else #error "Unsupported keymap!" #endif diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index 25ff4a461b..5931b6b0a5 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -76,6 +76,10 @@ OUTPUT_FORMAT(elf32-littlemips) #elif CONFIG_CPU==IMX233 #include "cpu.h" #define DRAMSIZE (DRAM_SIZE - PLUGIN_BUFFER_SIZE - CODEC_SIZE - FRAME_SIZE - TTB_SIZE) +#elif CONFIG_CPU==X1000 +#include "config.h" +#undef STUBOFFSET +#define STUBOFFSET 0x4000 #endif /* default to full RAM (minus codecs&plugins) unless specified otherwise */ @@ -174,6 +178,11 @@ OUTPUT_FORMAT(elf32-littlemips) #define IRAMSIZE 0 /* The bit of IRAM that is available is used in the core */ +#elif CONFIG_CPU == X1000 +#define DRAMORIG (0x80000000 + STUBOFFSET) +#define IRAM DRAM +#define IRAMSIZE 0 + #elif CONFIG_CPU == RK27XX #define DRAMORIG 0x60000000 #define IRAM DRAM diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index 4df4db66bb..b06789af6b 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -325,6 +325,13 @@ CONFIG_KEYPAD == MROBE500_PAD #define PONG_RIGHT_UP BUTTON_PREV #define PONG_RIGHT_DOWN BUTTON_NEXT +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define PONG_QUIT BUTTON_POWER +#define PONG_PAUSE BUTTON_PLAY +#define PONG_LEFT_UP BUTTON_MENU +#define PONG_LEFT_DOWN BUTTON_LEFT +#define PONG_RIGHT_UP BUTTON_BACK +#define PONG_RIGHT_DOWN BUTTON_RIGHT #else #error No keymap defined! diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h index c94ca59179..fd60b23927 100644 --- a/apps/plugins/reversi/reversi-gui.h +++ b/apps/plugins/reversi/reversi-gui.h @@ -361,6 +361,15 @@ #define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY #define REVERSI_BUTTON_MENU BUTTON_MENU +#elif CONFIG_KEYPAD == FIIO_M3K_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_SELECT +#define REVERSI_BUTTON_MENU BUTTON_MENU + #else #error No keymap defined! #endif diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index 7958818a8e..9c36f8f62f 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -477,6 +477,16 @@ #define ROCKBLOX_DROP BUTTON_PLAY #define ROCKBLOX_RESTART BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define ROCKBLOX_OFF BUTTON_POWER +#define ROCKBLOX_ROTATE_CCW BUTTON_UP +#define ROCKBLOX_ROTATE_CW BUTTON_DOWN +#define ROCKBLOX_DOWN BUTTON_SELECT +#define ROCKBLOX_LEFT BUTTON_LEFT +#define ROCKBLOX_RIGHT BUTTON_RIGHT +#define ROCKBLOX_DROP BUTTON_PLAY +#define ROCKBLOX_RESTART BUTTON_BACK + #else #error No keymap defined! #endif diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index 1f65b780a6..6dd010961e 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c @@ -467,6 +467,17 @@ static void setoptions (void) options.SELECT = BUTTON_VOL_UP; options.MENU = BUTTON_POWER; +#elif CONFIG_KEYPAD == FIIO_M3K_PAD + options.UP = BUTTON_UP; + options.DOWN = BUTTON_DOWN; + options.LEFT = BUTTON_LEFT; + options.RIGHT = BUTTON_RIGHT; + options.A = BUTTON_MENU; + options.B = BUTTON_BACK; + options.START = BUTTON_VOL_DOWN; + options.SELECT = BUTTON_VOL_UP; + options.MENU = BUTTON_POWER; + #else #error No Keymap Defined! #endif diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c index e2b1f2a3e3..0d3211d4d2 100644 --- a/apps/plugins/rockpaint.c +++ b/apps/plugins/rockpaint.c @@ -393,6 +393,17 @@ #define ROCKPAINT_LEFT BUTTON_HOME #define ROCKPAINT_RIGHT BUTTON_VOL_DOWN +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define ROCKPAINT_QUIT BUTTON_POWER +#define ROCKPAINT_DRAW BUTTON_SELECT +#define ROCKPAINT_MENU BUTTON_MENU +#define ROCKPAINT_TOOLBAR BUTTON_VOL_UP +#define ROCKPAINT_TOOLBAR2 BUTTON_VOL_DOWN +#define ROCKPAINT_UP BUTTON_UP +#define ROCKPAINT_DOWN BUTTON_DOWN +#define ROCKPAINT_LEFT BUTTON_LEFT +#define ROCKPAINT_RIGHT BUTTON_RIGHT + #else #error "Please define keys for this keypad" #endif diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index dec400c079..d1820b2f50 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c @@ -348,6 +348,14 @@ CONFIG_KEYPAD == MROBE500_PAD #define PUZZLE_SHUFFLE BUTTON_BACK #define PUZZLE_PICTURE BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_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_BACK +#define PUZZLE_PICTURE BUTTON_PLAY #else #error No keymap defined! diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index c5c28eba6e..459d345fa2 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -305,6 +305,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left; #define SNAKE_DOWN BUTTON_NEXT #define SNAKE_PLAYPAUSE BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_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 + #else #error No keymap defined! #endif diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index fcc1790a13..1536840daf 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -437,6 +437,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define SNAKE2_PLAYPAUSE BUTTON_PLAY #define SNAKE2_PLAYPAUSE_TEXT "PLAY" +#elif CONFIG_KEYPAD == FIIO_M3K_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" + #else #error No keymap defined! #endif diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index 2dcea7546f..9d57d7428c 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c @@ -695,6 +695,21 @@ #define BUTTON_SAVE BUTTON_PLAY #define BUTTON_SAVE_NAME "PLAY" +#elif CONFIG_KEYPAD == FIIO_M3K_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_MENU +#define SOKOBAN_UNDO BUTTON_VOL_DOWN +#define SOKOBAN_REDO BUTTON_VOL_UP +#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY|BUTTON_VOL_DOWN) +#define SOKOBAN_LEVEL_UP (BUTTON_PLAY|BUTTON_VOL_UP) +#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY|BUTTON_POWER) +#define SOKOBAN_PAUSE BUTTON_SELECT +#define BUTTON_SAVE BUTTON_BACK +#define BUTTON_SAVE_NAME "BACK" + #else #error No keymap defined! #endif diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index d14c608396..2d737df678 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -722,6 +722,25 @@ CONFIG_KEYPAD == MROBE500_PAD # define HK_CUR2STACK "DBL PLAY" # define HK_REM2STACK "NEXT" +#elif CONFIG_KEYPAD == FIIO_M3K_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_SELECT +# define SOL_MOVE (BUTTON_SELECT|BUTTON_REL) +# define SOL_DRAW BUTTON_PLAY +# define SOL_REM2CUR BUTTON_VOL_DOWN +# define SOL_CUR2STACK_PRE BUTTON_SELECT +# define SOL_CUR2STACK (BUTTON_SELECT|BUTTON_REPEAT) +# define SOL_REM2STACK BUTTON_VOL_UP +# define HK_MOVE "SELECT" +# define HK_DRAW "PLAY" +# define HK_REM2CUR "VOL-" +# define HK_CUR2STACK "HOLD SELECT" +# define HK_REM2STACK "VOL+" + #else #error No keymap defined! #endif diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index 608f3ee512..2d39c26b3d 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -363,6 +363,15 @@ #define AST_RIGHT BUTTON_SCROLL_FWD #define AST_FIRE BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define AST_PAUSE BUTTON_MENU +#define AST_QUIT BUTTON_POWER +#define AST_THRUST BUTTON_SELECT +#define AST_HYPERSPACE BUTTON_BACK +#define AST_LEFT BUTTON_LEFT +#define AST_RIGHT BUTTON_RIGHT +#define AST_FIRE BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/star.c b/apps/plugins/star.c index 9de5032699..c186474ae3 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -652,6 +652,22 @@ #define STAR_LEVEL_DOWN_NAME "VOL DN" #define STAR_LEVEL_REPEAT_NAME "BACK" +#elif CONFIG_KEYPAD == FIIO_M3K_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_VOL_UP +#define STAR_LEVEL_DOWN BUTTON_VOL_DOWN +#define STAR_LEVEL_REPEAT BUTTON_BACK +#define STAR_TOGGLE_CONTROL_NAME "PLAY" +#define STAR_QUIT_NAME "POWER" +#define STAR_LEVEL_UP_NAME "VOL+" +#define STAR_LEVEL_DOWN_NAME "VOL-" +#define STAR_LEVEL_REPEAT_NAME "BACK" + #else #error No keymap defined! #endif diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index 82e6fba5c6..5259d0d616 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -309,6 +309,14 @@ #define STOPWATCH_SCROLL_UP BUTTON_SCROLL_FWD #define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define STOPWATCH_QUIT BUTTON_POWER +#define STOPWATCH_START_STOP BUTTON_PLAY +#define STOPWATCH_RESET_TIMER BUTTON_BACK +#define STOPWATCH_LAP_TIMER BUTTON_SELECT +#define STOPWATCH_SCROLL_UP BUTTON_SCROLL_BACK +#define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_FWD + #else #error No keymap defined! #endif diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h index de3802d9bc..6ee3eb33ee 100644 --- a/apps/plugins/sudoku/sudoku.h +++ b/apps/plugins/sudoku/sudoku.h @@ -459,6 +459,17 @@ #define SUDOKU_BUTTON_MENU (BUTTON_MENU | BUTTON_REL) #define SUDOKU_BUTTON_POSSIBLE BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define SUDOKU_BUTTON_QUIT BUTTON_POWER +#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_VOL_DOWN +#define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP +#define SUDOKU_BUTTON_MENU BUTTON_MENU +#define SUDOKU_BUTTON_POSSIBLE BUTTON_BACK + #else #error No keymap defined! #endif diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h index ba71201cda..bea8f829ef 100644 --- a/apps/plugins/text_viewer/tv_button.h +++ b/apps/plugins/text_viewer/tv_button.h @@ -583,6 +583,18 @@ #define TV_LINE_DOWN (BUTTON_POWER | BUTTON_VOL_DOWN) #define TV_BOOKMARK (BUTTON_POWER | BUTTON_PLAY) +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define TV_QUIT BUTTON_POWER +#define TV_SCROLL_UP BUTTON_VOL_UP +#define TV_SCROLL_DOWN BUTTON_VOL_DOWN +#define TV_SCREEN_LEFT BUTTON_LEFT +#define TV_SCREEN_RIGHT BUTTON_RIGHT +#define TV_MENU BUTTON_MENU +#define TV_AUTOSCROLL BUTTON_SELECT +#define TV_LINE_UP BUTTON_SCROLL_BACK +#define TV_LINE_DOWN BUTTON_SCROLL_FWD +#define TV_BOOKMARK BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c index 629294ce7f..e24ad8dcdc 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c @@ -441,6 +441,17 @@ #define LABEL_MENU "MENU" #define LABEL_VOLUME "VOL UP/DN" +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define VUMETER_QUIT BUTTON_POWER +#define VUMETER_HELP BUTTON_BACK +#define VUMETER_MENU BUTTON_MENU +#define VUMETER_UP BUTTON_VOL_UP +#define VUMETER_DOWN BUTTON_VOL_DOWN +#define LABEL_HELP "BACK" +#define LABEL_QUIT "POWER" +#define LABEL_MENU "MENU" +#define LABEL_VOLUME "VOL+/VOL-" + #else #error No keymap defined! #endif diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c index d3db768535..d76f6a7d5a 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c @@ -398,6 +398,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define BTN_QUIT BUTTON_POWER #define BTN_STOPRESET BUTTON_BACK +#elif CONFIG_KEYPAD == FIIO_M3K_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_BACK + #else #error No keymap defined! #endif diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index e04ecc225d..36aae071cb 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -351,6 +351,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define DOWN BUTTON_NEXT #define PAUSE BUTTON_PLAY +#elif CONFIG_KEYPAD == FIIO_M3K_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 + #else #error "No keymap defined!" #endif diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h index e62c33c157..dbebc3b1d9 100644 --- a/apps/plugins/zxbox/keymaps.h +++ b/apps/plugins/zxbox/keymaps.h @@ -298,6 +298,14 @@ #define ZX_UP BUTTON_PREV #define ZX_DOWN BUTTON_NEXT +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +#define ZX_SELECT BUTTON_SELECT +#define ZX_MENU BUTTON_MENU +#define ZX_LEFT BUTTON_LEFT +#define ZX_RIGHT BUTTON_RIGHT +#define ZX_UP BUTTON_UP +#define ZX_DOWN BUTTON_DOWN + #else #error Keymap not defined! diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c index 6237ded8c1..dd517e01e7 100644 --- a/apps/plugins/zxbox/zxbox_keyb.c +++ b/apps/plugins/zxbox/zxbox_keyb.c @@ -293,6 +293,15 @@ #define KBD_UP BUTTON_PREV #define KBD_DOWN BUTTON_NEXT +#elif CONFIG_KEYPAD == FIIO_M3K_PAD + +#define KBD_SELECT BUTTON_SELECT +#define KBD_ABORT BUTTON_BACK +#define KBD_LEFT BUTTON_LEFT +#define KBD_RIGHT BUTTON_RIGHT +#define KBD_UP BUTTON_UP +#define KBD_DOWN BUTTON_DOWN + #endif #ifdef HAVE_TOUCHSCREEN -- cgit v1.2.3