mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 00:37:13 +00:00
Support add/next/play/replace enqueue options in Sonos (#72800)
This commit is contained in:
parent
44f332ed5f
commit
275ea5b150
@ -576,6 +576,14 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
self.set_shuffle(True)
|
self.set_shuffle(True)
|
||||||
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.ADD:
|
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.ADD:
|
||||||
plex_plugin.add_to_queue(result.media)
|
plex_plugin.add_to_queue(result.media)
|
||||||
|
elif kwargs.get(ATTR_MEDIA_ENQUEUE) in (
|
||||||
|
MediaPlayerEnqueue.NEXT,
|
||||||
|
MediaPlayerEnqueue.PLAY,
|
||||||
|
):
|
||||||
|
pos = (self.media.queue_position or 0) + 1
|
||||||
|
new_pos = plex_plugin.add_to_queue(result.media, position=pos)
|
||||||
|
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.PLAY:
|
||||||
|
soco.play_from_queue(new_pos - 1)
|
||||||
else:
|
else:
|
||||||
soco.clear_queue()
|
soco.clear_queue()
|
||||||
plex_plugin.add_to_queue(result.media)
|
plex_plugin.add_to_queue(result.media)
|
||||||
@ -586,6 +594,14 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
if share_link.is_share_link(media_id):
|
if share_link.is_share_link(media_id):
|
||||||
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.ADD:
|
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.ADD:
|
||||||
share_link.add_share_link_to_queue(media_id)
|
share_link.add_share_link_to_queue(media_id)
|
||||||
|
elif kwargs.get(ATTR_MEDIA_ENQUEUE) in (
|
||||||
|
MediaPlayerEnqueue.NEXT,
|
||||||
|
MediaPlayerEnqueue.PLAY,
|
||||||
|
):
|
||||||
|
pos = (self.media.queue_position or 0) + 1
|
||||||
|
new_pos = share_link.add_share_link_to_queue(media_id, position=pos)
|
||||||
|
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.PLAY:
|
||||||
|
soco.play_from_queue(new_pos - 1)
|
||||||
else:
|
else:
|
||||||
soco.clear_queue()
|
soco.clear_queue()
|
||||||
share_link.add_share_link_to_queue(media_id)
|
share_link.add_share_link_to_queue(media_id)
|
||||||
@ -596,6 +612,14 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
|
|
||||||
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.ADD:
|
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.ADD:
|
||||||
soco.add_uri_to_queue(media_id)
|
soco.add_uri_to_queue(media_id)
|
||||||
|
elif kwargs.get(ATTR_MEDIA_ENQUEUE) in (
|
||||||
|
MediaPlayerEnqueue.NEXT,
|
||||||
|
MediaPlayerEnqueue.PLAY,
|
||||||
|
):
|
||||||
|
pos = (self.media.queue_position or 0) + 1
|
||||||
|
new_pos = soco.add_uri_to_queue(media_id, position=pos)
|
||||||
|
if kwargs.get(ATTR_MEDIA_ENQUEUE) == MediaPlayerEnqueue.PLAY:
|
||||||
|
soco.play_from_queue(new_pos - 1)
|
||||||
else:
|
else:
|
||||||
soco.play_uri(media_id, force_radio=is_radio)
|
soco.play_uri(media_id, force_radio=is_radio)
|
||||||
elif media_type == MEDIA_TYPE_PLAYLIST:
|
elif media_type == MEDIA_TYPE_PLAYLIST:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user