mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-09 13:07:03 +03:00
tweaks
This commit is contained in:
@@ -59,10 +59,12 @@ bool led_blink_core(int idx, int ontime, int offtime, bool pushed) {
|
|||||||
xTimerStop(leds[idx].timer, BLOCKTIME);
|
xTimerStop(leds[idx].timer, BLOCKTIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
// save current state
|
// save current state if not already pushed
|
||||||
leds[idx].pushedon = leds[idx].ontime;
|
if (!leds[idx].pushed) {
|
||||||
leds[idx].pushedoff = leds[idx].offtime;
|
leds[idx].pushedon = leds[idx].ontime;
|
||||||
leds[idx].pushed = pushed;
|
leds[idx].pushedoff = leds[idx].offtime;
|
||||||
|
leds[idx].pushed = pushed;
|
||||||
|
}
|
||||||
|
|
||||||
// then set new one
|
// then set new one
|
||||||
leds[idx].ontime = ontime;
|
leds[idx].ontime = ontime;
|
||||||
|
|||||||
@@ -414,6 +414,7 @@ static void *output_thread_i2s() {
|
|||||||
|
|
||||||
// manage led display
|
// manage led display
|
||||||
if (state != output.state) {
|
if (state != output.state) {
|
||||||
|
LOG_INFO("Output state is %u", output.state);
|
||||||
if (output.state == OUTPUT_OFF) led_blink(LED_GREEN, 100, 2500);
|
if (output.state == OUTPUT_OFF) led_blink(LED_GREEN, 100, 2500);
|
||||||
else if (output.state == OUTPUT_STOPPED) led_blink(LED_GREEN, 200, 1000);
|
else if (output.state == OUTPUT_STOPPED) led_blink(LED_GREEN, 200, 1000);
|
||||||
else if (output.state == OUTPUT_RUNNING) led_on(LED_GREEN);
|
else if (output.state == OUTPUT_RUNNING) led_on(LED_GREEN);
|
||||||
@@ -422,7 +423,6 @@ static void *output_thread_i2s() {
|
|||||||
|
|
||||||
if (output.state == OUTPUT_OFF) {
|
if (output.state == OUTPUT_OFF) {
|
||||||
UNLOCK;
|
UNLOCK;
|
||||||
LOG_INFO("Output state is off.");
|
|
||||||
if (isI2SStarted) {
|
if (isI2SStarted) {
|
||||||
isI2SStarted = false;
|
isI2SStarted = false;
|
||||||
i2s_stop(CONFIG_I2S_NUM);
|
i2s_stop(CONFIG_I2S_NUM);
|
||||||
@@ -580,6 +580,10 @@ void dac_cmd(dac_cmd_e cmd, ...) {
|
|||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
* SPDIF support
|
||||||
|
*/
|
||||||
|
|
||||||
#define PREAMBLE_B (0xE8) //11101000
|
#define PREAMBLE_B (0xE8) //11101000
|
||||||
#define PREAMBLE_M (0xE2) //11100010
|
#define PREAMBLE_M (0xE2) //11100010
|
||||||
#define PREAMBLE_W (0xE4) //11100100
|
#define PREAMBLE_W (0xE4) //11100100
|
||||||
@@ -595,7 +599,8 @@ extern const u16_t spdif_bmclookup[256];
|
|||||||
after BMC encoding, each bits becomes 2 hence this becomes a 64 bits word. The
|
after BMC encoding, each bits becomes 2 hence this becomes a 64 bits word. The
|
||||||
the trick is to start not with a PPPP sequence but with an VUCP sequence to that
|
the trick is to start not with a PPPP sequence but with an VUCP sequence to that
|
||||||
the 16 bits samples are aligned with a BMC word boundary. Note that the LSB of the
|
the 16 bits samples are aligned with a BMC word boundary. Note that the LSB of the
|
||||||
audio is transmitted first (not the MSB)
|
audio is transmitted first (not the MSB) and that ESP32 libray sends R then L,
|
||||||
|
contrary to what seems to be usually done, so (dst) order had to be changed
|
||||||
*/
|
*/
|
||||||
void spdif_convert(ISAMPLE_T *src, size_t frames, u32_t *dst, size_t *count) {
|
void spdif_convert(ISAMPLE_T *src, size_t frames, u32_t *dst, size_t *count) {
|
||||||
u16_t hi, lo, aux;
|
u16_t hi, lo, aux;
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ static void event_handler(void* arg, esp_event_base_t event_base,
|
|||||||
int32_t event_id, void* event_data)
|
int32_t event_id, void* event_data)
|
||||||
{
|
{
|
||||||
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
|
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
|
||||||
esp_wifi_connect();
|
|
||||||
led_blink_pushed(LED_GREEN, 250, 250);
|
led_blink_pushed(LED_GREEN, 250, 250);
|
||||||
|
esp_wifi_connect();
|
||||||
xEventGroupClearBits(wifi_event_group, CONNECTED_BIT);
|
xEventGroupClearBits(wifi_event_group, CONNECTED_BIT);
|
||||||
} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
|
} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
|
||||||
led_unpush(LED_GREEN);
|
led_unpush(LED_GREEN);
|
||||||
|
|||||||
Reference in New Issue
Block a user