mirror of
https://github.com/owntone/owntone-server.git
synced 2025-02-27 05:19: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);
|
devcfg = cfg_gettsec(cfg, "airplay", name);
|
||||||
if (devcfg && cfg_getbool(devcfg, "exclude"))
|
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++;
|
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);
|
devcfg = cfg_gettsec(cfg, "airplay", device_name);
|
||||||
if (devcfg && cfg_getbool(devcfg, "exclude"))
|
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;
|
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);
|
DPRINTF(E_INFO, L_PLAYER, "Suspending 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
|
pb_suspend(); // Don't want to use pb_abort here, since that may clear the queue
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
status_update(player_state, LISTENER_SPEAKER | LISTENER_VOLUME);
|
status_update(player_state, LISTENER_SPEAKER | LISTENER_VOLUME);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user