diff --git a/components/services/audio_controls.c b/components/services/audio_controls.c index 43a31930..a2c1bc66 100644 --- a/components/services/audio_controls.c +++ b/components/services/audio_controls.c @@ -56,9 +56,10 @@ static const actrls_config_map_t actrls_config_map[] = // BEWARE: the actions below need to stay aligned with the corresponding enum to properly support json parsing #define EP(x) [x] = #x /* ENUM PRINT */ -static const char * actrls_action_s[ ] = { EP(ACTRLS_VOLUP),EP(ACTRLS_VOLDOWN),EP(ACTRLS_TOGGLE),EP(ACTRLS_PLAY), +static const char * actrls_action_s[ ] = { EP(ACTRLS_POWER),EP(ACTRLS_VOLUP),EP(ACTRLS_VOLDOWN),EP(ACTRLS_TOGGLE),EP(ACTRLS_PLAY), EP(ACTRLS_PAUSE),EP(ACTRLS_STOP),EP(ACTRLS_REW),EP(ACTRLS_FWD),EP(ACTRLS_PREV),EP(ACTRLS_NEXT), EP(BCTRLS_UP),EP(BCTRLS_DOWN),EP(BCTRLS_LEFT),EP(BCTRLS_RIGHT), + EP(BCTRLS_PS1),EP(BCTRLS_PS2),EP(BCTRLS_PS3),EP(BCTRLS_PS4),EP(BCTRLS_PS5),EP(BCTRLS_PS6), EP(KNOB_LEFT),EP(KNOB_RIGHT),EP(KNOB_PUSH), ""} ; diff --git a/components/services/audio_controls.h b/components/services/audio_controls.h index 1fdfd85c..d27fdb5b 100644 --- a/components/services/audio_controls.h +++ b/components/services/audio_controls.h @@ -11,9 +11,10 @@ #include "buttons.h" // BEWARE: this is the index of the array of action below (change actrls_action_s as well!) -typedef enum { ACTRLS_NONE = -1, ACTRLS_VOLUP, ACTRLS_VOLDOWN, ACTRLS_TOGGLE, ACTRLS_PLAY, +typedef enum { ACTRLS_NONE = -1, ACTRLS_POWER,ACTRLS_VOLUP, ACTRLS_VOLDOWN, ACTRLS_TOGGLE, ACTRLS_PLAY, ACTRLS_PAUSE, ACTRLS_STOP, ACTRLS_REW, ACTRLS_FWD, ACTRLS_PREV, ACTRLS_NEXT, BCTRLS_UP, BCTRLS_DOWN, BCTRLS_LEFT, BCTRLS_RIGHT, + BCTRLS_PS1,BCTRLS_PS2,BCTRLS_PS3,BCTRLS_PS4,BCTRLS_PS5,BCTRLS_PS6, KNOB_LEFT, KNOB_RIGHT, KNOB_PUSH, ACTRLS_REMAP, ACTRLS_MAX } actrls_action_e; diff --git a/components/squeezelite/controls.c b/components/squeezelite/controls.c index 0860c57e..b718bcd3 100644 --- a/components/squeezelite/controls.c +++ b/components/squeezelite/controls.c @@ -97,6 +97,13 @@ static void sendIR(u16_t addr, u16_t cmd) { UNLOCK_P; } +static void lms_power(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_POWER_FRONT, pressed); + } else { + cli_send_cmd("button power"); + } +} static void lms_volume_up(bool pressed) { if (raw_mode) { sendBUTN(BUTN_VOLUP_FRONT, pressed); @@ -205,6 +212,55 @@ static void lms_right(bool pressed) { } } +static void lms_pre1(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_PRESET_1, pressed); + } else { + cli_send_cmd("button preset_1.single"); + } +} + +static void lms_pre2(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_PRESET_2, pressed); + } else { + cli_send_cmd("button preset_2.single"); + } +} + +static void lms_pre3(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_PRESET_3, pressed); + } else { + cli_send_cmd("button preset_3.single"); + } +} + +static void lms_pre4(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_PRESET_4, pressed); + } else { + cli_send_cmd("button preset_4.single"); + } +} + +static void lms_pre5(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_PRESET_5, pressed); + } else { + cli_send_cmd("button preset_5.single"); + } +} + +static void lms_pre6(bool pressed) { + if (raw_mode) { + sendBUTN(BUTN_PRESET_6, pressed); + } else { + cli_send_cmd("button preset_6.single"); + } +} + + static void lms_knob_left(bool pressed) { if (raw_mode) { sendBUTN(BUTN_KNOB_LEFT, pressed); @@ -230,6 +286,7 @@ static void lms_knob_push(bool pressed) { } const actrls_t LMS_controls = { + lms_power, lms_volume_up, lms_volume_down, // volume up, volume down lms_toggle, lms_play, // toggle, play lms_pause, lms_stop, // pause, stop @@ -237,6 +294,7 @@ const actrls_t LMS_controls = { lms_prev, lms_next, // prev, next lms_up, lms_down, lms_left, lms_right, + lms_pre1, lms_pre2, lms_pre3, lms_pre4, lms_pre5, lms_pre6, lms_knob_left, lms_knob_right, lms_knob_push, };