From 7bd04ad89a2e2d5f9d693231d1377f28c0bca355 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Sat, 22 Nov 2025 09:42:14 -0500 Subject: [PATCH] FS#13698 - Rockblox don't accept control commands FiiO M3K - you have to hold up or down before the pieces will rotate AFAICT the scrollpad on the m3k is being presented as a scrollwheel and it waits for 3 events before enabling rotation. This behavior is blocking the user presses till you get a repeat event Fix: Enable the scrollwheel at start for the m3k (and m3k linux) Change-Id: Ic36048dae6f691e9085ab37ffbf67be07c2035ac --- apps/plugins/rockblox.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index d2bd162175..9a29ebc4f8 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -424,15 +424,16 @@ #elif CONFIG_KEYPAD == FIIO_M3K_LINUX_PAD -#define ROCKBLOX_OFF BUTTON_POWER -#define ROCKBLOX_ROTATE_CCW BUTTON_HOME -#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN -#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP -#define ROCKBLOX_DOWN BUTTON_OPTION -#define ROCKBLOX_LEFT BUTTON_PREV -#define ROCKBLOX_RIGHT BUTTON_NEXT -#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) -#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) +#define ROCKBLOX_OFF BUTTON_POWER +#define ROCKBLOX_ROTATE_CCW BUTTON_HOME +#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN +#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP +#define ROCKBLOX_DOWN BUTTON_OPTION +#define ROCKBLOX_LEFT BUTTON_PREV +#define ROCKBLOX_RIGHT BUTTON_NEXT +#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) +#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) +#define ROCKBLOX_SCROLL_ENABLED 1 //Untested Probably needed #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD) @@ -465,6 +466,7 @@ #define ROCKBLOX_RIGHT BUTTON_RIGHT #define ROCKBLOX_DROP BUTTON_PLAY #define ROCKBLOX_RESTART BUTTON_BACK +#define ROCKBLOX_SCROLL_ENABLED 1 #elif CONFIG_KEYPAD == SHANLING_Q1_PAD /* use touchscreen */ @@ -858,7 +860,12 @@ static void new_block(void); #ifdef HAVE_SCROLLWHEEL int wheel_events = 0, last_wheel_event = 0; -bool wheel_enabled = false; +#ifdef ROCKBLOX_SCROLL_ENABLED + /* Bugfix M3K has a scrollpad that is also up down buttons */ + bool wheel_enabled = true; +#else + bool wheel_enabled = false; +#endif #endif static const short scoring[4] = { /* scoring for each number of lines */