From 347a795b5f6ef01305fcb34f177b7ac3b6989f22 Mon Sep 17 00:00:00 2001 From: Matthias Lienhard Date: Thu, 10 Dec 2020 01:45:13 +0100 Subject: [PATCH] added power and preset buttons --- components/services/audio_controls.c | 3 +- components/services/audio_controls.h | 3 +- components/squeezelite/controls.c | 58 ++++++++++++++++++++++++++++ sdkconfig | 51 +++++++++++++++++------- 4 files changed, 100 insertions(+), 15 deletions(-) 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, }; diff --git a/sdkconfig b/sdkconfig index 5697f149..0985c5a9 100644 --- a/sdkconfig +++ b/sdkconfig @@ -13,6 +13,7 @@ CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-" CONFIG_APP_COMPILE_TIME_DATE=y # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -75,14 +76,24 @@ CONFIG_LOGGING_SLIMPROTO="info" CONFIG_LOGGING_STREAM="info" CONFIG_LOGGING_DECODE="info" CONFIG_LOGGING_OUTPUT="info" +CONFIG_MUTE_GPIO_LEVEL=0 +CONFIG_DAC_CONFIG="" +CONFIG_SPDIF_CONFIG="" +CONFIG_SPI_CONFIG="" +CONFIG_DISPLAY_CONFIG="" +CONFIG_DAC_CONTROLSET="" # CONFIG_SQUEEZEAMP is not set # CONFIG_A1S is not set +# CONFIG_TWATCH2020 is not set CONFIG_BASIC_I2C_BT=y CONFIG_I2S_NUM=0 CONFIG_I2S_BCK_IO=33 CONFIG_I2S_WS_IO=25 CONFIG_I2S_DO_IO=32 CONFIG_I2S_DI_IO=-1 +CONFIG_I2C_SDA=-1 +CONFIG_I2C_SCL=-1 +CONFIG_MUTE_GPIO=-1 CONFIG_SDIF_NUM=0 CONFIG_SPDIF_BCK_IO=-1 CONFIG_SPDIF_WS_IO=-1 @@ -97,9 +108,7 @@ CONFIG_BT_SINK_PIN=1234 CONFIG_AIRPLAY_SINK=y CONFIG_AIRPLAY_NAME="ESP32-AirPlay" CONFIG_AIRPLAY_PORT="5000" -CONFIG_DISPLAY_CONFIG="" CONFIG_I2C_CONFIG="" -CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=-1 @@ -145,6 +154,9 @@ CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN=0 # CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI is not set CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM=y CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=1 +# CONFIG_BTDM_CTRL_AUTO_LATENCY_EFF is not set +CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT=y +CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF=y CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0 CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=2 CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0 @@ -196,6 +208,7 @@ CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y # CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set CONFIG_EFUSE_MAX_BLK_LEN=192 # CONFIG_ESP_TLS_SERVER is not set +CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y CONFIG_ESP32_REV_MIN_0=y # CONFIG_ESP32_REV_MIN_1 is not set # CONFIG_ESP32_REV_MIN_2 is not set @@ -219,6 +232,9 @@ CONFIG_SPIRAM_SIZE=-1 CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM_MEMTEST=y CONFIG_SPIRAM_CACHE_WORKAROUND=y +CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW=y +# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST is not set +# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS is not set CONFIG_SPIRAM_BANKSWITCH_ENABLE=y CONFIG_SPIRAM_BANKSWITCH_RESERVE=8 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=256 @@ -234,6 +250,7 @@ CONFIG_D0WD_PSRAM_CS_IO=16 CONFIG_D2WD_PSRAM_CLK_IO=9 CONFIG_D2WD_PSRAM_CS_IO=10 CONFIG_PICO_PSRAM_CS_IO=10 +# CONFIG_SPIRAM_2T_MODE is not set # CONFIG_ESP32_MEMMAP_TRACEMEM is not set # CONFIG_ESP32_MEMMAP_TRACEMEM_TWOBANKS is not set # CONFIG_ESP32_TRAX is not set @@ -269,6 +286,7 @@ CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y # CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set # CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 +CONFIG_ESP32_RTC_XTAL_CAL_RETRY=1 CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 CONFIG_ESP32_XTAL_FREQ_40=y # CONFIG_ESP32_XTAL_FREQ_26 is not set @@ -317,10 +335,6 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 CONFIG_OTA_ALLOW_HTTP=y # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y -# CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_WIFI is not set -# CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_BT is not set -CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_BALANCE=y -CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_VALUE=2 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=12 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=40 CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y @@ -337,11 +351,11 @@ CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 # CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set # CONFIG_ESP32_WIFI_IRAM_OPT is not set # CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 CONFIG_ESP32_PHY_MAX_TX_POWER=20 -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set CONFIG_ESP32_ENABLE_COREDUMP_TO_UART=y # CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE is not set CONFIG_ESP32_ENABLE_COREDUMP=y @@ -446,11 +460,14 @@ CONFIG_LWIP_LOCAL_HOSTNAME="squeezelite-esp32" CONFIG_LWIP_TIMERS_ONDEMAND=y CONFIG_LWIP_MAX_SOCKETS=16 # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set CONFIG_LWIP_SO_REUSE=y CONFIG_LWIP_SO_REUSE_RXTOALL=y # CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_IP_FRAG is not set -# CONFIG_LWIP_IP_REASSEMBLY is not set +CONFIG_LWIP_IP4_FRAG=y +CONFIG_LWIP_IP6_FRAG=y +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# CONFIG_LWIP_IP6_REASSEMBLY is not set # CONFIG_LWIP_STATS is not set # CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set CONFIG_LWIP_ESP_GRATUITOUS_ARP=y @@ -461,8 +478,10 @@ CONFIG_LWIP_DHCP_RESTORE_LAST_IP=y CONFIG_LWIP_DHCPS_LEASE_UNIT=60 CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 # CONFIG_LWIP_AUTOIP is not set +# CONFIG_LWIP_IPV6_AUTOCONFIG is not set CONFIG_LWIP_NETIF_LOOPBACK=y CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 +CONFIG_LWIP_TCP_ISN_HOOK=y CONFIG_LWIP_MAX_ACTIVE_TCP=16 CONFIG_LWIP_MAX_LISTENING_TCP=16 CONFIG_LWIP_TCP_MAXRTX=12 @@ -478,6 +497,7 @@ CONFIG_LWIP_TCP_OVERSIZE_MSS=y # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set # CONFIG_LWIP_WND_SCALE is not set +CONFIG_LWIP_TCP_RTO_TIME=3000 CONFIG_LWIP_MAX_UDP_PCBS=16 CONFIG_LWIP_UDP_RECVMBOX_SIZE=32 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 @@ -486,6 +506,8 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF # CONFIG_LWIP_PPP_SUPPORT is not set +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 # CONFIG_LWIP_MULTICAST_PING is not set # CONFIG_LWIP_BROADCAST_PING is not set CONFIG_LWIP_MAX_RAW_PCBS=16 @@ -593,6 +615,10 @@ CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set # CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y CONFIG_SPIFFS_MAX_PARTITIONS=3 @@ -633,7 +659,9 @@ CONFIG_WL_SECTOR_SIZE=512 CONFIG_WL_SECTOR_MODE_SAFE=y CONFIG_WL_SECTOR_MODE=1 CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 +CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 CONFIG_WPA_MBEDTLS_CRYPTO=y +# CONFIG_WPA_WPS_WARS is not set # CONFIG_DSP_ANSI is not set CONFIG_DSP_OPTIMIZED=y CONFIG_DSP_OPTIMIZATION=1 @@ -698,6 +726,7 @@ CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y # CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4 is not set CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=y CONFIG_BLUEDROID_ENABLED=y +# CONFIG_NIMBLE_ENABLED is not set CONFIG_BTC_TASK_STACK_SIZE=3072 CONFIG_BLUEDROID_PINNED_TO_CORE_0=y # CONFIG_BLUEDROID_PINNED_TO_CORE_1 is not set @@ -760,10 +789,6 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y CONFIG_POST_EVENTS_FROM_ISR=y CONFIG_POST_EVENTS_FROM_IRAM_ISR=y CONFIG_SW_COEXIST_ENABLE=y -# CONFIG_SW_COEXIST_PREFERENCE_WIFI is not set -# CONFIG_SW_COEXIST_PREFERENCE_BT is not set -CONFIG_SW_COEXIST_PREFERENCE_BALANCE=y -CONFIG_SW_COEXIST_PREFERENCE_VALUE=2 CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 CONFIG_MB_QUEUE_LENGTH=20