Merge branch 'fix_20ms_chunk_size_bug' into eth_and_wifi
This commit is contained in:
@@ -3,3 +3,5 @@ idf_component_register(SRCS "main.c"
|
||||
PRIV_REQUIRES esp_timer esp_wifi nvs_flash audio_board audio_hal audio_sal net_functions opus flac ota_server
|
||||
ui_http_server network_interface
|
||||
)
|
||||
|
||||
set_source_files_properties(main.c PROPERTIES COMPILE_FLAGS -Wno-implicit-fallthrough)
|
||||
|
||||
459
main/main.c
459
main/main.c
@@ -256,7 +256,7 @@ static FLAC__StreamDecoderReadStatus read_callback(
|
||||
const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes,
|
||||
void *client_data) {
|
||||
snapcastSetting_t *scSet = (snapcastSetting_t *)client_data;
|
||||
decoderData_t *flacData;
|
||||
// decoderData_t *flacData;
|
||||
|
||||
(void)scSet;
|
||||
|
||||
@@ -460,7 +460,6 @@ static void http_get_task(void *pvParameters) {
|
||||
uint16_t remotePort = 0;
|
||||
int rc1 = ERR_OK, rc2 = ERR_OK;
|
||||
struct netbuf *firstNetBuf = NULL;
|
||||
struct netbuf *newNetBuf = NULL;
|
||||
uint16_t len;
|
||||
uint64_t timeout = FAST_SYNC_LATENCY_BUF;
|
||||
char *codecString = NULL;
|
||||
@@ -820,8 +819,7 @@ static void http_get_task(void *pvParameters) {
|
||||
scSet.muted = true;
|
||||
|
||||
uint64_t startTime, endTime;
|
||||
int32_t remainderSize = 0;
|
||||
size_t currentPos = 0;
|
||||
// size_t currentPos = 0;
|
||||
size_t typedMsgCurrentPos = 0;
|
||||
uint32_t typedMsgLen = 0;
|
||||
uint32_t offset = 0;
|
||||
@@ -885,7 +883,7 @@ static void http_get_task(void *pvParameters) {
|
||||
// now parse the data
|
||||
netbuf_first(firstNetBuf);
|
||||
do {
|
||||
currentPos = 0;
|
||||
// currentPos = 0;
|
||||
|
||||
rc1 = netbuf_data(firstNetBuf, (void **)&start, &len);
|
||||
if (rc1 == ERR_OK) {
|
||||
@@ -1057,7 +1055,7 @@ static void http_get_task(void *pvParameters) {
|
||||
break;
|
||||
}
|
||||
|
||||
currentPos++;
|
||||
// currentPos++;++;
|
||||
len--;
|
||||
start++;
|
||||
|
||||
@@ -1074,12 +1072,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 1: {
|
||||
@@ -1087,12 +1087,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 2: {
|
||||
@@ -1100,12 +1102,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 3: {
|
||||
@@ -1117,12 +1121,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 4: {
|
||||
@@ -1130,12 +1136,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 5: {
|
||||
@@ -1143,12 +1151,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 6: {
|
||||
@@ -1156,12 +1166,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 7: {
|
||||
@@ -1173,12 +1185,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 8: {
|
||||
@@ -1186,12 +1200,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 9: {
|
||||
@@ -1199,12 +1215,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 10: {
|
||||
@@ -1212,12 +1230,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 11: {
|
||||
@@ -1225,7 +1245,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
@@ -1253,7 +1273,9 @@ static void http_get_task(void *pvParameters) {
|
||||
wire_chnk.timestamp.usec);
|
||||
#endif
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 12: {
|
||||
@@ -1290,7 +1312,6 @@ static void http_get_task(void *pvParameters) {
|
||||
}
|
||||
|
||||
tmpData = 0;
|
||||
remainderSize = 0;
|
||||
payloadDataShift = 3;
|
||||
payloadOffset = 0;
|
||||
}
|
||||
@@ -1351,7 +1372,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos += tmp_size;
|
||||
start += tmp_size;
|
||||
currentPos += tmp_size;
|
||||
// currentPos += tmp_size;
|
||||
len -= tmp_size;
|
||||
|
||||
if (typedMsgCurrentPos >= base_message_rx.size) {
|
||||
@@ -1675,12 +1696,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 1: {
|
||||
@@ -1688,12 +1711,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 2: {
|
||||
@@ -1701,12 +1726,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 3: {
|
||||
@@ -1730,12 +1757,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 4: {
|
||||
@@ -1746,7 +1775,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos += typedMsgLen;
|
||||
start += typedMsgLen;
|
||||
currentPos += typedMsgLen;
|
||||
// currentPos += typedMsgLen;
|
||||
len -= typedMsgLen;
|
||||
} else {
|
||||
memcpy(&codecString[offset], start, typedMsgLen);
|
||||
@@ -1755,7 +1784,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos += len;
|
||||
start += len;
|
||||
currentPos += len;
|
||||
// currentPos += len;
|
||||
len -= len;
|
||||
}
|
||||
|
||||
@@ -1791,7 +1820,9 @@ static void http_get_task(void *pvParameters) {
|
||||
internalState++;
|
||||
}
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 5: {
|
||||
@@ -1799,12 +1830,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 6: {
|
||||
@@ -1812,12 +1845,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 7: {
|
||||
@@ -1825,12 +1860,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 8: {
|
||||
@@ -1850,12 +1887,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 9: {
|
||||
@@ -1866,7 +1905,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos += typedMsgLen;
|
||||
start += typedMsgLen;
|
||||
currentPos += typedMsgLen;
|
||||
// currentPos += typedMsgLen;
|
||||
len -= typedMsgLen;
|
||||
} else {
|
||||
memcpy(&codecPayload[offset], start, len);
|
||||
@@ -1875,7 +1914,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos += len;
|
||||
start += len;
|
||||
currentPos += len;
|
||||
// currentPos += len;
|
||||
len -= len;
|
||||
}
|
||||
|
||||
@@ -2025,49 +2064,18 @@ static void http_get_task(void *pvParameters) {
|
||||
case SNAPCAST_MESSAGE_SERVER_SETTINGS: {
|
||||
switch (internalState) {
|
||||
case 0: {
|
||||
while ((netbuf_len(firstNetBuf) - currentPos) <
|
||||
base_message_rx.size) {
|
||||
ESP_LOGI(TAG, "need more data");
|
||||
typedMsgLen = *start & 0xFF;
|
||||
|
||||
// we need more data to process
|
||||
rc1 = netconn_recv(lwipNetconn, &newNetBuf);
|
||||
if (rc1 != ERR_OK) {
|
||||
ESP_LOGE(TAG, "rx error for need more data");
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
if (rc1 == ERR_CONN) {
|
||||
// netconn_close(lwipNetconn);
|
||||
// closing later, see first
|
||||
// netconn_recv() in the loop
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (newNetBuf != NULL) {
|
||||
netbuf_delete(newNetBuf);
|
||||
|
||||
newNetBuf = NULL;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
netbuf_chain(firstNetBuf, newNetBuf);
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (rc1 == ERR_OK) {
|
||||
typedMsgLen = *start & 0xFF;
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
} else {
|
||||
ESP_LOGE(TAG, "some error");
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 1: {
|
||||
@@ -2075,12 +2083,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 2: {
|
||||
@@ -2088,144 +2098,153 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 3: {
|
||||
typedMsgLen |= (*start & 0xFF) << 24;
|
||||
|
||||
// ESP_LOGI(TAG,
|
||||
// "server settings string is %d
|
||||
// long", typedMsgLen);
|
||||
// ESP_LOGI(TAG,"server settings string is %lu"
|
||||
// " long", typedMsgLen);
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 4: {
|
||||
// now get some memory for server settings
|
||||
// string at this point there is still
|
||||
// plenty of RAM available, so we use
|
||||
// malloc and netbuf_copy() here
|
||||
// string
|
||||
serverSettingsString = malloc(typedMsgLen + 1);
|
||||
|
||||
if (serverSettingsString == NULL) {
|
||||
ESP_LOGE(TAG,
|
||||
"couldn't get memory for "
|
||||
"server settings string");
|
||||
} else {
|
||||
netbuf_copy_partial(firstNetBuf, serverSettingsString,
|
||||
typedMsgLen, currentPos);
|
||||
|
||||
serverSettingsString[typedMsgLen] =
|
||||
0; // NULL terminate string
|
||||
|
||||
// ESP_LOGI
|
||||
//(TAG, "got string: %s", tmp);
|
||||
|
||||
result = server_settings_message_deserialize(
|
||||
&server_settings_message, serverSettingsString);
|
||||
if (result) {
|
||||
ESP_LOGE(TAG,
|
||||
"Failed to read server "
|
||||
"settings: %d",
|
||||
result);
|
||||
} else {
|
||||
// log mute state, buffer, latency
|
||||
ESP_LOGI(TAG, "Buffer length: %ld",
|
||||
server_settings_message.buffer_ms);
|
||||
ESP_LOGI(TAG, "Latency: %ld",
|
||||
server_settings_message.latency);
|
||||
ESP_LOGI(TAG, "Mute: %d",
|
||||
server_settings_message.muted);
|
||||
ESP_LOGI(TAG, "Setting volume: %ld",
|
||||
server_settings_message.volume);
|
||||
}
|
||||
|
||||
// Volume setting using ADF HAL
|
||||
// abstraction
|
||||
if (scSet.muted != server_settings_message.muted) {
|
||||
#if SNAPCAST_USE_SOFT_VOL
|
||||
if (server_settings_message.muted) {
|
||||
dsp_processor_set_volome(0.0);
|
||||
} else {
|
||||
dsp_processor_set_volome(
|
||||
(double)server_settings_message.volume / 100);
|
||||
}
|
||||
#endif
|
||||
audio_hal_set_mute(board_handle->audio_hal,
|
||||
server_settings_message.muted);
|
||||
}
|
||||
|
||||
if (scSet.volume != server_settings_message.volume) {
|
||||
#if SNAPCAST_USE_SOFT_VOL
|
||||
if (!server_settings_message.muted) {
|
||||
dsp_processor_set_volome(
|
||||
(double)server_settings_message.volume / 100);
|
||||
}
|
||||
#else
|
||||
audio_hal_set_volume(board_handle->audio_hal,
|
||||
server_settings_message.volume);
|
||||
#endif
|
||||
}
|
||||
|
||||
scSet.cDacLat_ms = server_settings_message.latency;
|
||||
scSet.buf_ms = server_settings_message.buffer_ms;
|
||||
scSet.muted = server_settings_message.muted;
|
||||
scSet.volume = server_settings_message.volume;
|
||||
|
||||
if (player_send_snapcast_setting(&scSet) != pdPASS) {
|
||||
ESP_LOGE(TAG,
|
||||
"Failed to notify sync task. "
|
||||
"Did you init player?");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
free(serverSettingsString);
|
||||
serverSettingsString = NULL;
|
||||
}
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
// fall through
|
||||
|
||||
offset = 0;
|
||||
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 5: {
|
||||
case 4: {
|
||||
size_t tmpSize =
|
||||
base_message_rx.size - typedMsgCurrentPos;
|
||||
|
||||
if (len > 0) {
|
||||
if (tmpSize < len) {
|
||||
if (serverSettingsString) {
|
||||
memcpy(&serverSettingsString[offset], start,
|
||||
tmpSize);
|
||||
}
|
||||
offset += tmpSize;
|
||||
|
||||
start += tmpSize;
|
||||
currentPos += tmpSize; // will be
|
||||
// incremented by 1
|
||||
// later so -1 here
|
||||
// currentPos += tmpSize; // will be
|
||||
// incremented by 1
|
||||
// later so -1 here
|
||||
typedMsgCurrentPos += tmpSize;
|
||||
len -= tmpSize;
|
||||
} else {
|
||||
if (serverSettingsString) {
|
||||
memcpy(&serverSettingsString[offset], start, len);
|
||||
}
|
||||
offset += len;
|
||||
|
||||
start += len;
|
||||
currentPos += len; // will be incremented
|
||||
// by 1 later so -1
|
||||
// here
|
||||
// currentPos += len; // will be incremented
|
||||
// by 1 later so -1
|
||||
// here
|
||||
typedMsgCurrentPos += len;
|
||||
len = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (typedMsgCurrentPos >= base_message_rx.size) {
|
||||
// ESP_LOGI(TAG,
|
||||
// "done server settings");
|
||||
if (serverSettingsString) {
|
||||
// ESP_LOGI(TAG, "done server settings %lu/%lu",
|
||||
// offset,
|
||||
// typedMsgLen);
|
||||
|
||||
// NULL terminate string
|
||||
serverSettingsString[typedMsgLen] = 0;
|
||||
|
||||
// ESP_LOGI(TAG, "got string: %s",
|
||||
// serverSettingsString);
|
||||
|
||||
result = server_settings_message_deserialize(
|
||||
&server_settings_message, serverSettingsString);
|
||||
if (result) {
|
||||
ESP_LOGE(TAG,
|
||||
"Failed to read server "
|
||||
"settings: %d",
|
||||
result);
|
||||
} else {
|
||||
// log mute state, buffer, latency
|
||||
ESP_LOGI(TAG, "Buffer length: %ld",
|
||||
server_settings_message.buffer_ms);
|
||||
ESP_LOGI(TAG, "Latency: %ld",
|
||||
server_settings_message.latency);
|
||||
ESP_LOGI(TAG, "Mute: %d",
|
||||
server_settings_message.muted);
|
||||
ESP_LOGI(TAG, "Setting volume: %ld",
|
||||
server_settings_message.volume);
|
||||
}
|
||||
|
||||
// Volume setting using ADF HAL
|
||||
// abstraction
|
||||
if (scSet.muted != server_settings_message.muted) {
|
||||
#if SNAPCAST_USE_SOFT_VOL
|
||||
if (server_settings_message.muted) {
|
||||
dsp_processor_set_volome(0.0);
|
||||
} else {
|
||||
dsp_processor_set_volome(
|
||||
(double)server_settings_message.volume / 100);
|
||||
}
|
||||
#endif
|
||||
audio_hal_set_mute(board_handle->audio_hal,
|
||||
server_settings_message.muted);
|
||||
}
|
||||
|
||||
if (scSet.volume != server_settings_message.volume) {
|
||||
#if SNAPCAST_USE_SOFT_VOL
|
||||
if (!server_settings_message.muted) {
|
||||
dsp_processor_set_volome(
|
||||
(double)server_settings_message.volume / 100);
|
||||
}
|
||||
#else
|
||||
audio_hal_set_volume(
|
||||
board_handle->audio_hal,
|
||||
server_settings_message.volume);
|
||||
#endif
|
||||
}
|
||||
|
||||
scSet.cDacLat_ms = server_settings_message.latency;
|
||||
scSet.buf_ms = server_settings_message.buffer_ms;
|
||||
scSet.muted = server_settings_message.muted;
|
||||
scSet.volume = server_settings_message.volume;
|
||||
|
||||
if (player_send_snapcast_setting(&scSet) != pdPASS) {
|
||||
ESP_LOGE(TAG,
|
||||
"Failed to notify sync task. "
|
||||
"Did you init player?");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
free(serverSettingsString);
|
||||
serverSettingsString = NULL;
|
||||
}
|
||||
|
||||
state = BASE_MESSAGE_STATE;
|
||||
internalState = 0;
|
||||
@@ -2253,12 +2272,12 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
if (tmpSize < len) {
|
||||
start += tmpSize;
|
||||
currentPos += tmpSize;
|
||||
// currentPos += tmpSize;
|
||||
typedMsgCurrentPos += tmpSize;
|
||||
len -= tmpSize;
|
||||
} else {
|
||||
start += len;
|
||||
currentPos += len;
|
||||
// currentPos += len;
|
||||
|
||||
typedMsgCurrentPos += len;
|
||||
len = 0;
|
||||
@@ -2287,12 +2306,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 1: {
|
||||
@@ -2300,12 +2321,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 2: {
|
||||
@@ -2313,12 +2336,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 3: {
|
||||
@@ -2326,12 +2351,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 4: {
|
||||
@@ -2339,12 +2366,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 5: {
|
||||
@@ -2352,12 +2381,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 6: {
|
||||
@@ -2365,12 +2396,14 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
internalState++;
|
||||
|
||||
break;
|
||||
if (len == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case 7: {
|
||||
@@ -2378,7 +2411,7 @@ static void http_get_task(void *pvParameters) {
|
||||
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
if (typedMsgCurrentPos >= base_message_rx.size) {
|
||||
// ESP_LOGI(TAG, "done time message");
|
||||
@@ -2496,7 +2529,7 @@ static void http_get_task(void *pvParameters) {
|
||||
default: {
|
||||
typedMsgCurrentPos++;
|
||||
start++;
|
||||
currentPos++;
|
||||
// currentPos++;
|
||||
len--;
|
||||
|
||||
if (typedMsgCurrentPos >= base_message_rx.size) {
|
||||
|
||||
Reference in New Issue
Block a user