fixed coexistence

This commit is contained in:
philippe44
2020-01-04 12:44:07 -08:00
parent 540466e746
commit 53361c63cd
3 changed files with 6 additions and 10 deletions

View File

@@ -65,7 +65,7 @@ static void *decode_thread() {
toend = (stream.state <= DISCONNECT);
UNLOCK_S;
LOCK_O;
space = !output.external ? _buf_space(outputbuf) : 0;
space = _buf_space(outputbuf);
UNLOCK_O;
LOCK_D;

View File

@@ -121,6 +121,7 @@ static bool bt_sink_cmd_handler(bt_sink_cmd_t cmd, ...)
output.state = OUTPUT_STOPPED;
output.frames_played = 0;
_buf_flush(outputbuf);
if (decode.state != DECODE_STOPPED) decode.state = DECODE_ERROR;
bt_master(true);
LOG_INFO("BT sink started");
break;
@@ -239,6 +240,7 @@ static bool raop_sink_cmd_handler(raop_event_t event, void *param)
output.frames_played = 0;
output.external = DECODE_RAOP;
output.state = OUTPUT_STOPPED;
if (decode.state != DECODE_STOPPED) decode.state = DECODE_ERROR;
raop_master(true);
LOG_INFO("resizing buffer %u", outputbuf->size);
break;
@@ -333,5 +335,4 @@ void decode_resume(int external) {
raop_state = RAOP_STOP;
break;
}
_buf_resize(outputbuf, output.init_size);
}

View File

@@ -283,7 +283,7 @@ static void process_strm(u8_t *pkt, int len) {
break;
case 'q':
decode_flush();
output_flush();
if (!output.external) output_flush();
status.frames_played = 0;
stream_disconnect();
sendSTAT("STMf", 0);
@@ -291,7 +291,7 @@ static void process_strm(u8_t *pkt, int len) {
break;
case 'f':
decode_flush();
output_flush();
if (!output.external) output_flush();
status.frames_played = 0;
if (stream_disconnect()) {
sendSTAT("STMf", 0);
@@ -330,12 +330,6 @@ static void process_strm(u8_t *pkt, int len) {
LOCK_O;
output.state = jiffies ? OUTPUT_START_AT : OUTPUT_RUNNING;
output.start_at = jiffies;
#if EMBEDDED
if (output.external) {
decode_resume(output.external);
output.external = 0;
}
#endif
UNLOCK_O;
LOG_DEBUG("unpause at: %u now: %u", jiffies, gettime_ms());
@@ -382,6 +376,7 @@ static void process_strm(u8_t *pkt, int len) {
#if EMBEDDED
if (output.external) decode_resume(output.external);
output.external = 0;
_buf_resize(outputbuf, output.init_size);
#endif
output.threshold = strm->output_threshold;
output.next_replay_gain = unpackN(&strm->replay_gain);