ATTR_AVAILABLE: Final[str] = "available"
ATTR_MUTE_LOCK: Final[str] = "mute_lock"
ATTR_ACTIVE_SOURCE: Final[str] = "active_source"
+ATTR_ACTIVE_PLAYLIST: Final[str] = "active_playlist"
# Album type detection patterns
LIVE_INDICATORS = [
from music_assistant_models.queue_item import QueueItem
from music_assistant.constants import (
+ ATTR_ACTIVE_PLAYLIST,
ATTR_ANNOUNCEMENT_IN_PROGRESS,
MASS_LOGO_ONLINE,
PLAYBACK_REPORT_INTERVAL_SECONDS,
def signal_update(self, queue_id: str, items_changed: bool = False) -> None:
"""Signal state changed of given queue."""
queue = self._queues[queue_id]
+ # set 'active_playlist' in extra attributes as a human readable list
+ # of the enqueued media items for API clients to display if they want to
+ queue.extra_attributes[ATTR_ACTIVE_PLAYLIST] = " / ".join(
+ [x.name for x in queue.enqueued_media_items]
+ )
if items_changed:
self.mass.signal_event(EventType.QUEUE_ITEMS_UPDATED, object_id=queue_id, data=queue)
# save items in cache - only cache items with valid media_item