audio refactoring done + T-WATCH2020 support

This commit is contained in:
Philippe G
2020-08-02 21:36:36 -07:00
parent 78563b20f3
commit 340a1bd19e
16 changed files with 297 additions and 105 deletions

View File

@@ -21,6 +21,7 @@ menu "Squeezelite-ESP32"
help
Set logging level info|debug|sdebug
endmenu
config JACK_LOCKED
bool
config BAT_LOCKED
@@ -33,33 +34,59 @@ menu "Squeezelite-ESP32"
bool
config SPKFAULT_LOCKED
bool
config MUTE_GPIO_LEVEL
int
default 0
# AGGREGATES - begin
# these parameters are "aggregates" that take precedence. The must have a default value
config DAC_CONFIG
string
default "model=TAS57xx,bck=33,ws=25,do=32,sda=27,scl=26,mute=14" if SQUEEZEAMP
default "model=TAS57xx,bck=33,ws=25,do=32,sda=27,scl=26,mute=14:0" if SQUEEZEAMP
default "model=AC101,bck=27,ws=26,do=25,di=35,sda=33,scl=32" if A1S
default "model=I2S,bck=26,ws=25,do=33,i2c=106,sda=21,scl=22" if TWATCH2020
default ""
config SPDIF_CONFIG
string
default "bck=33,ws=25,do=15" if SQUEEZEAMP
menu "Audio Output"
choice OUTPUT_TYPE
prompt "Output Type"
default BASIC_I2C_BT
help
Type of hardware platform
config SQUEEZEAMP
bool "SqueezeAMP"
select JACK_LOCKED
select BAT_LOCKED
select I2C_LOCKED
select LED_LOCKED
select SPKFAULT_LOCKED
config A1S
bool "ESP32-A1S module"
select I2C_LOCKED
config BASIC_I2C_BT
bool "Generic I2S & Bluetooth"
endchoice
default ""
config SPI_CONFIG
string
default "dc=27,data=19,clk=18" if TWATCH2020
default ""
config DISPLAY_CONFIG
string
default "SPI,driver=ST7789,width=240,height=240,cs=5,back=12,speed=16000000,HFlip,VFlip" if TWATCH2020
default ""
config DAC_CONTROLSET
string
default "{ \"init\": [ {\"reg\":41, \"val\":128}, {\"reg\":18, \"val\":255} ], \"poweron\": [ {\"reg\":18, \"val\":64, \"mode\":\"or\"} ], \"poweroff\": [ {\"reg\":18, \"val\":191, \"mode\":\"and\"} ] }" if TWATCH2020
default ""
# AGGREGATES - end
choice OUTPUT_TYPE
prompt "Main system"
default BASIC_I2C_BT
help
Type of hardware platform
config SQUEEZEAMP
bool "SqueezeAMP"
select JACK_LOCKED
select BAT_LOCKED
select I2C_LOCKED
select LED_LOCKED
select SPKFAULT_LOCKED
config A1S
bool "ESP32-A1S module"
select I2C_LOCKED
config TWATCH2020
bool "T-WATCH2020 by LilyGo"
select I2C_LOCKED
config BASIC_I2C_BT
bool "Generic I2S & Bluetooth"
endchoice
menu "Audio settings"
menu "DAC settings"
visible if BASIC_I2C_BT
menu "I2S settings"
@@ -106,6 +133,10 @@ menu "Squeezelite-ESP32"
default -1
help
GPIO used to mute DAC (not used mostly, leave it to -1).
config MUTE_GPIO_LEVEL
int "Mute GPIO active level"
depends on MUTE_GPIO != -1
default 1
endmenu
menu "SPDIF settings"
@@ -199,16 +230,17 @@ menu "Squeezelite-ESP32"
endmenu
menu "Display Screen"
depends on !TWATCH2020
config DISPLAY_CONFIG
string "Screen configuraton"
default ""
help
Set parameters for display screen, leave empty for no screen
I2C,width=<pixels>,height=<pixels>[address=<i2c_address>][,HFlip][,VFlip]
SPI,width=<pixels>,height=<pixels>,cs=<gpio>[,HFlip][,VFlip]
I2C,driver=<model>,width=<pixels>,height=<pixels>[address=<i2c_address>][,HFlip][,VFlip][,rotate]
SPI,driver=<model>,width=<pixels>,height=<pixels>,cs=<gpio>[,HFlip][,VFlip][,rotate]
endmenu
menu "Various I/O"
visible if !TWATCH2020
config I2C_CONFIG
string "I2C system configuration"
default ""
@@ -217,7 +249,6 @@ menu "Squeezelite-ESP32"
sda=<gpio>,scl=<gpio>[,speed=<num>][,port=<0|1>]
config SPI_CONFIG
string "SPI system configuration"
default ""
help
Set parameters of shared SPI interface
data=<gpio>,clk=<gpio>[,d/c=<num>][,host=<0|1|2>]
@@ -226,7 +257,7 @@ menu "Squeezelite-ESP32"
default ""
help
Set parameters of shared GPIO with special values.
<gpio_1>=Vcc|GND|amp|jack[:0|1][,<gpio_n>=Vcc|GND|amp|jack[:0|1]]
<gpio_1>=Vcc|GND|amp[:0|1]|jack[:0|1][,<gpio_n>=Vcc|GND|amp[:0|1]|jack[:0|1]]
'amp' => GPIO that is set when playback starts
'jack' => GPIO used for audio jack detection
'green', 'red' => GPIO for status LED
@@ -236,39 +267,39 @@ menu "Squeezelite-ESP32"
default ""
help
Set GPIO for rotary encoder (quadrature phase). See README on SqueezeESP32 project's GitHub for more details
A=<gpio>,B=<gpio>[,SW=gpio>[,volume][,longpress]]
A=<gpio>,B=<gpio>[,SW=gpio>[[,knobonly[=<ms>]|[,volume][,longpress]]
endmenu
menu "LED configuration"
visible if !SQUEEZEAMP
visible if !SQUEEZEAMP && !TWATCH2020
config LED_GREEN_GPIO
int "Green led GPIO"
default -1 if !SQUEEZEAMP
default 12 if SQUEEZEAMP
default 12 if SQUEEZEAMP
default -1
help
Set to -1 for no LED
config LED_GREEN_GPIO_LEVEL
int "Green led ON level"
depends on LED_GREEN_GPIO != -1
default 0 if SQUEEZEAMP
default 1 if !SQUEEZEAMP
default 1
config LED_RED_GPIO
int "Red led GPIO"
default -1 if !SQUEEZEAMP
default 13 if SQUEEZEAMP
default -1
help
Set to -1 for no LED
config LED_RED_GPIO_LEVEL
int "Red led ON level"
depends on LED_RED_GPIO != -1
default 0 if SQUEEZEAMP
default 1 if !SQUEEZEAMP
default 1
endmenu
menu "Audio JACK"
visible if !SQUEEZEAMP
visible if !SQUEEZEAMP && !TWATCH2020
config JACK_GPIO
int "Jack insertion GPIO"
default -1 if !SQUEEZEAMP
default 34 if SQUEEZEAMP
default -1
help
GPIO to detect speaker jack insertion. Set to -1 for no detection.
config JACK_GPIO_LEVEL
@@ -277,11 +308,11 @@ menu "Squeezelite-ESP32"
default 0
endmenu
menu "Speaker Fault"
visible if !SQUEEZEAMP
visible if !SQUEEZEAMP && !TWATCH2020
config SPKFAULT_GPIO
int "Speaker fault GPIO"
default -1 if !SQUEEZEAMP
default 2 if SQUEEZEAMP
default -1
help
GPIO to detect speaker fault condition. Set to -1 for no detection.
config SPKFAULT_GPIO_LEVEL
@@ -290,18 +321,18 @@ menu "Squeezelite-ESP32"
default 0
endmenu
menu "Battery measure"
visible if !SQUEEZEAMP
visible if !SQUEEZEAMP && !TWATCH2020
config BAT_CHANNEL
int "Set channel (0..7)"
default -1 if !SQUEEZEAMP
default 7 if SQUEEZEAMP
default -1
help
Read a value every 10s on ADC1 on set Channel
config BAT_SCALE
string "Set scaling factor"
depends on BAT_CHANNEL != -1
default "" if !SQUEEZEAMP
default "20.24" if SQUEEZEAMP
default ""
help
Set the scaling factor for this 12 bits ADC
endmenu

View File

@@ -330,6 +330,9 @@ void register_default_nvs(){
ESP_LOGD(TAG,"Registering default value for key %s", "dac_config");
config_set_default(NVS_TYPE_STR, "dac_config", "", 0);
ESP_LOGD(TAG,"Registering default value for key %s", "dac_controlset");
config_set_default(NVS_TYPE_STR, "dac_controlset", "", 0);
ESP_LOGD(TAG,"Registering default value for key %s", "bat_config");
config_set_default(NVS_TYPE_STR, "bat_config", "", 0);