mirror of
https://github.com/owntone/owntone-server.git
synced 2025-02-26 21:09:18 -05:00
[player] Don't stop/clear queue on speaker 'prevent-playback' or 'busy'
When 'prevent-playback' or 'busy' is sent by a single playing speaker, we just want to pause playback and not clear the queue Closes #1553
This commit is contained in:
parent
d468fd358e
commit
7c0474b743
@ -3705,7 +3705,7 @@ airplay_device_cb(const char *name, const char *type, const char *domain, const
|
||||
}
|
||||
}
|
||||
|
||||
DPRINTF(E_DBG, L_AIRPLAY, "Event for AirPlay device '%s' (port %d, id %" PRIx64 ")\n", name, port, id);
|
||||
DPRINTF(E_DBG, L_AIRPLAY, "Event for AirPlay device '%s' (port %d, id %" PRIx64 ", Active-Remote %" PRIu32 ")\n", name, port, id, (uint32_t)id);
|
||||
|
||||
devcfg = cfg_gettsec(cfg, "airplay", name);
|
||||
if (devcfg && cfg_getbool(devcfg, "exclude"))
|
||||
|
@ -4080,7 +4080,7 @@ raop_device_cb(const char *name, const char *type, const char *domain, const cha
|
||||
}
|
||||
device_name++;
|
||||
|
||||
DPRINTF(E_DBG, L_RAOP, "Event for AirPlay device '%s' (port %d, id %" PRIx64 ")\n", device_name, port, id);
|
||||
DPRINTF(E_DBG, L_RAOP, "Event for AirPlay device '%s' (port %d, id %" PRIx64 ", Active-Remote %" PRIu32 ")\n", device_name, port, id, (uint32_t)id);
|
||||
|
||||
devcfg = cfg_gettsec(cfg, "airplay", device_name);
|
||||
if (devcfg && cfg_getbool(devcfg, "exclude"))
|
||||
|
@ -2750,10 +2750,10 @@ speaker_prevent_playback_set_bh(void *arg, int *retval)
|
||||
{
|
||||
struct speaker_attr_param *param = arg;
|
||||
|
||||
if (outputs_sessions_count() == 0)
|
||||
if (player_state == PLAY_PLAYING && outputs_sessions_count() == 0)
|
||||
{
|
||||
DPRINTF(E_INFO, L_PLAYER, "Ending playback, speaker (id=%" PRIu64 ") set 'busy' or 'prevent-playback' flag\n", param->spk_id);
|
||||
pb_abort(); // TODO Would be better for the user if we paused, but we don't have a handy function for that
|
||||
DPRINTF(E_INFO, L_PLAYER, "Suspending playback, speaker (id=%" PRIu64 ") set 'busy' or 'prevent-playback' flag\n", param->spk_id);
|
||||
pb_suspend(); // Don't want to use pb_abort here, since that may clear the queue
|
||||
}
|
||||
else
|
||||
status_update(player_state, LISTENER_SPEAKER | LISTENER_VOLUME);
|
||||
|
Loading…
x
Reference in New Issue
Block a user