From 058a9ec9453fed05872d10c72913bbc7034d32d8 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 28 Mar 2021 12:07:30 -0400 Subject: Add M3K native to the simulator Change-Id: If3e877d2df189e44076631fd571cf6aa70ce6ca8 --- apps/debug_menu.c | 4 +- firmware/export/config/fiiom3k.h | 8 +++ firmware/target/hosted/sdl/sim-ui-defines.h | 8 +++ uisimulator/bitmaps/UI-fiiom3k.bmp | Bin 0 -> 676310 bytes uisimulator/buttonmap/SOURCES | 2 + uisimulator/buttonmap/fiio-m3k.c | 97 ++++++++++++++++++++++++++++ 6 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 uisimulator/bitmaps/UI-fiiom3k.bmp create mode 100644 uisimulator/buttonmap/fiio-m3k.c diff --git a/apps/debug_menu.c b/apps/debug_menu.c index f7e179b040..42d16a4e82 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -2495,7 +2495,7 @@ static bool dbg_boot_data(void) } #endif /* defined(HAVE_BOOTDATA) && !defined(SIMULATOR) */ -#ifdef FIIO_M3K +#if defined(FIIO_M3K) && !defined(SIMULATOR) /* 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) { @@ -2648,7 +2648,7 @@ static const struct { #if defined(HAVE_BOOTDATA) && !defined(SIMULATOR) {"Boot data", dbg_boot_data }, #endif -#ifdef FIIO_M3K +#if defined(FIIO_M3K) && !defined(SIMULATOR) {"FiiO debug menu", dbg_fiio_menu}, #endif }; diff --git a/firmware/export/config/fiiom3k.h b/firmware/export/config/fiiom3k.h index 68186d7aaf..1afdbdaa36 100644 --- a/firmware/export/config/fiiom3k.h +++ b/firmware/export/config/fiiom3k.h @@ -10,7 +10,11 @@ /* CPU defines */ #define CONFIG_CPU X1000 #define X1000_EXCLK_FREQ 24000000 + +#ifndef SIMULATOR #define TIMER_FREQ X1000_EXCLK_FREQ +#endif + #define CPU_FREQ 1008000000 #define CPUFREQ_MAX CPU_FREQ /* TODO: figure out if this does in fact affect power consumption. */ @@ -88,11 +92,13 @@ /* TODO: implement HAVE_RTC_ALARM */ /* Power management */ +#ifndef SIMULATOR #define HAVE_AXP173 #define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE #define CONFIG_CHARGING CHARGING_MONITOR #define HAVE_SW_POWEROFF #define HAVE_POWEROFF_WHILE_CHARGING +#endif /* Only one battery type */ #define BATTERY_CAPACITY_DEFAULT 1100 @@ -102,7 +108,9 @@ #define BATTERY_TYPES_COUNT 1 /* USB is still TODO. */ +#ifndef SIMULATOR #define USB_NONE +#endif /* Rockbox capabilities */ #define HAVE_FAT16SUPPORT diff --git a/firmware/target/hosted/sdl/sim-ui-defines.h b/firmware/target/hosted/sdl/sim-ui-defines.h index 55ef96b984..c3ae7c0551 100644 --- a/firmware/target/hosted/sdl/sim-ui-defines.h +++ b/firmware/target/hosted/sdl/sim-ui-defines.h @@ -535,6 +535,14 @@ #define UI_LCD_POSX 45 #define UI_LCD_POSY 50 +#elif defined(FIIO_M3K) || defined(FIIO_M3K_LINUX) +#define UI_TITLE "FiiO M3K" +#define UI_WIDTH 287 /* width of GUI window */ +#define UI_HEIGHT 589 /* height of GUI window */ +#define UI_LCD_POSX 25 +#define UI_LCD_POSY 15 + + #elif defined(SIMULATOR) #error no UI defines #endif diff --git a/uisimulator/bitmaps/UI-fiiom3k.bmp b/uisimulator/bitmaps/UI-fiiom3k.bmp new file mode 100644 index 0000000000..118424ef5f Binary files /dev/null and b/uisimulator/bitmaps/UI-fiiom3k.bmp differ diff --git a/uisimulator/buttonmap/SOURCES b/uisimulator/buttonmap/SOURCES index dfcfe87b42..fec71b5b09 100644 --- a/uisimulator/buttonmap/SOURCES +++ b/uisimulator/buttonmap/SOURCES @@ -87,5 +87,7 @@ xduoo-x20.c ihifi2.c #elif CONFIG_KEYPAD == EROSQ_PAD erosq.c +#elif CONFIG_KEYPAD == FIIO_M3K_PAD +fiio-m3k.c #endif #endif /* SIMULATOR */ diff --git a/uisimulator/buttonmap/fiio-m3k.c b/uisimulator/buttonmap/fiio-m3k.c new file mode 100644 index 0000000000..402de33bfb --- /dev/null +++ b/uisimulator/buttonmap/fiio-m3k.c @@ -0,0 +1,97 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2021 by Solomon Peachy + * + * 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 +#include "button.h" +#include "buttonmap.h" + +int key_to_button(int keyboard_button) +{ + int new_btn = BUTTON_NONE; + switch (keyboard_button) + { + case SDLK_KP4: + case SDLK_LEFT: + new_btn = BUTTON_LEFT; + break; + case SDLK_KP6: + case SDLK_RIGHT: + new_btn = BUTTON_RIGHT; + break; + case SDLK_KP8: + case SDLK_UP: + new_btn = BUTTON_UP; + break; + case SDLK_KP2: + case SDLK_DOWN: + new_btn = BUTTON_DOWN; + break; + case SDLK_ESCAPE: + new_btn = BUTTON_POWER; + break; + case SDLK_KP_PLUS: + case SDLK_EQUALS: + new_btn = BUTTON_VOL_UP; + break; + case SDLK_KP_MINUS: + case SDLK_MINUS: + new_btn = BUTTON_VOL_DOWN; + break; + case SDLK_KP_PERIOD: + case SDLK_INSERT: + new_btn = BUTTON_MENU; + break; + case SDL_BUTTON_WHEELUP: + new_btn = BUTTON_SCROLL_BACK; + break; + case SDL_BUTTON_WHEELDOWN: + new_btn = BUTTON_SCROLL_FWD; + break; + case SDLK_BACKSPACE: + new_btn = BUTTON_BACK; + + case SDLK_KP_ENTER: + case SDLK_RETURN: + new_btn = BUTTON_SELECT; + break; + case SDLK_SPACE: + case SDLK_KP5: + new_btn = BUTTON_PLAY; + break; + } + return new_btn; +} + +struct button_map bm[] = { + { SDLK_ESCAPE, 12, 55, 15, "Power" }, + { SDLK_KP_MINUS, 12, 125, 15, "Volume -" }, + { SDLK_KP_PLUS, 12, 188, 15, "Volume +" }, + { SDLK_SPACE, 12, 255, 15, "Play" }, + { SDLK_UP, 146, 394, 20, "Up" }, + { SDLK_RETURN, 146, 438, 20, "Select" }, + { SDLK_DOWN, 146, 510, 20, "Down" }, + { SDLK_INSERT, 68, 368, 20, "Menu" }, + { SDLK_LEFT, 68, 532, 20, "Left" }, + { SDLK_RIGHT, 224, 532, 20, "Right" }, + { SDLK_BACKSPACE, 224, 368, 20, "Back" }, + { 0, 0, 0, 0, "None" } +}; -- cgit v1.2.3