StateVars { TransportState TransportStatus TransportErrorDescription TransportErrorURI TransportErrorHttpCode TransportErrorHttpHeaders PlaybackStorageMedium RecordStorageMedium PossiblePlaybackStorageMedia PossibleRecordStorageMedia CurrentPlayMode CurrentCrossfadeMode TransportPlaySpeed RecordMediumWriteStatus CurrentRecordQualityMode PossibleRecordQualityModes NumberOfTracks CurrentTrack CurrentSection CurrentTrackDuration CurrentMediaDuration CurrentTrackMetaData CurrentTrackURI AVTransportURI AVTransportURIMetaData NextAVTransportURI NextAVTransportURIMetaData RelativeTimePosition AbsoluteTimePosition RelativeCounterPosition AbsoluteCounterPosition CurrentTransportActions SleepTimerGeneration SnoozeRunning AlarmRunning AlarmIDRunning AlarmLoggedStartTime RestartPending LastChange NextTrackMetaData NextTrackURI EnqueuedTransportURIMetaData EnqueuedTransportURI CurrentValidPlayModes MuseSessions DirectControlClientID DirectControlAccountID DirectControlIsSuspended A_ARG_TYPE_SeekMode A_ARG_TYPE_SeekTarget A_ARG_TYPE_InstanceID A_ARG_TYPE_MemberList A_ARG_TYPE_TransportSettings A_ARG_TYPE_CurrentAVTransportURI A_ARG_TYPE_SourceState A_ARG_TYPE_VLIState A_ARG_TYPE_Queue A_ARG_TYPE_MemberID A_ARG_TYPE_URI A_ARG_TYPE_LIST_URI A_ARG_TYPE_URIMetaData A_ARG_TYPE_LIST_URIMetaData A_ARG_TYPE_ObjectID A_ARG_TYPE_GroupID A_ARG_TYPE_PlayerID A_ARG_TYPE_TrackNumber A_ARG_TYPE_NumTracks A_ARG_TYPE_NumTracksChange A_ARG_TYPE_EnqueueAsNext A_ARG_TYPE_SavedQueueTitle A_ARG_TYPE_ResumePlayback A_ARG_TYPE_ISO8601Time A_ARG_TYPE_AlarmVolume A_ARG_TYPE_AlarmIncludeLinkedZones A_ARG_TYPE_ResetVolumeAfter A_ARG_TYPE_SleepTimerState A_ARG_TYPE_AlarmState A_ARG_TYPE_StreamRestartState A_ARG_TYPE_RejoinGroup QueueUpdateID A_ARG_TYPE_TrackList } Actions { SetAVTransportURI(InstanceID: ui4, CurrentURI: String, CurrentURIMetaData: String) SetNextAVTransportURI(InstanceID: ui4, NextURI: String, NextURIMetaData: String) AddURIToQueue(InstanceID: ui4, EnqueuedURI: String, EnqueuedURIMetaData: String, DesiredFirstTrackNumberEnqueued: ui4, EnqueueAsNext: Boolean) -> (FirstTrackNumberEnqueued: ui4, NumTracksAdded: ui4, NewQueueLength: ui4) AddMultipleURIsToQueue(InstanceID: ui4, UpdateID: ui4, NumberOfURIs: ui4, EnqueuedURIs: String, EnqueuedURIsMetaData: String, ContainerURI: String, ContainerMetaData: String, DesiredFirstTrackNumberEnqueued: ui4, EnqueueAsNext: Boolean) -> (FirstTrackNumberEnqueued: ui4, NumTracksAdded: ui4, NewQueueLength: ui4, NewUpdateID: ui4) ReorderTracksInQueue(InstanceID: ui4, StartingIndex: ui4, NumberOfTracks: ui4, InsertBefore: ui4, UpdateID: ui4) RemoveTrackFromQueue(InstanceID: ui4, ObjectID: String, UpdateID: ui4) RemoveTrackRangeFromQueue(InstanceID: ui4, UpdateID: ui4, StartingIndex: ui4, NumberOfTracks: ui4) -> (NewUpdateID: ui4) RemoveAllTracksFromQueue(InstanceID: ui4) SaveQueue(InstanceID: ui4, Title: String, ObjectID: String) -> (AssignedObjectID: String) BackupQueue(InstanceID: ui4) CreateSavedQueue(InstanceID: ui4, Title: String, EnqueuedURI: String, EnqueuedURIMetaData: String) -> (NumTracksAdded: ui4, NewQueueLength: ui4, AssignedObjectID: String, NewUpdateID: ui4) AddURIToSavedQueue(InstanceID: ui4, ObjectID: String, UpdateID: ui4, EnqueuedURI: String, EnqueuedURIMetaData: String, AddAtIndex: ui4) -> (NumTracksAdded: ui4, NewQueueLength: ui4, NewUpdateID: ui4) ReorderTracksInSavedQueue(InstanceID: ui4, ObjectID: String, UpdateID: ui4, TrackList: String, NewPositionList: String) -> (QueueLengthChange: i4, NewQueueLength: ui4, NewUpdateID: ui4) GetMediaInfo(InstanceID: ui4) -> (NrTracks: 0..=65535, MediaDuration: String, CurrentURI: String, CurrentURIMetaData: String, NextURI: String, NextURIMetaData: String, PlayMedium: [NONE, NETWORK], RecordMedium: [NONE], WriteStatus: String) GetTransportInfo(InstanceID: ui4) -> (CurrentTransportState: [STOPPED, PLAYING, PAUSED_PLAYBACK, TRANSITIONING], CurrentTransportStatus: String, CurrentSpeed: [1]) GetPositionInfo(InstanceID: ui4) -> (Track: 0..=65535, TrackDuration: String, TrackMetaData: String, TrackURI: String, RelTime: String, AbsTime: String, RelCount: i4, AbsCount: i4) GetDeviceCapabilities(InstanceID: ui4) -> (PlayMedia: String, RecMedia: String, RecQualityModes: String) GetTransportSettings(InstanceID: ui4) -> (PlayMode: [NORMAL, REPEAT_ALL, REPEAT_ONE, SHUFFLE_NOREPEAT, SHUFFLE, SHUFFLE_REPEAT_ONE] = NORMAL, RecQualityMode: String) GetCrossfadeMode(InstanceID: ui4) -> (CrossfadeMode: Boolean) Stop(InstanceID: ui4) Play(InstanceID: ui4, Speed: [1]) Pause(InstanceID: ui4) Seek(InstanceID: ui4, Unit: [TRACK_NR, REL_TIME, TIME_DELTA], Target: String) Next(InstanceID: ui4) Previous(InstanceID: ui4) SetPlayMode(InstanceID: ui4, NewPlayMode: [NORMAL, REPEAT_ALL, REPEAT_ONE, SHUFFLE_NOREPEAT, SHUFFLE, SHUFFLE_REPEAT_ONE] = NORMAL) SetCrossfadeMode(InstanceID: ui4, CrossfadeMode: Boolean) NotifyDeletedURI(InstanceID: ui4, DeletedURI: String) GetCurrentTransportActions(InstanceID: ui4) -> (Actions: String) BecomeCoordinatorOfStandaloneGroup(InstanceID: ui4) -> (DelegatedGroupCoordinatorID: String, NewGroupID: String) DelegateGroupCoordinationTo(InstanceID: ui4, NewCoordinator: String, RejoinGroup: Boolean) BecomeGroupCoordinator(InstanceID: ui4, CurrentCoordinator: String, CurrentGroupID: String, OtherMembers: String, TransportSettings: String, CurrentURI: String, CurrentURIMetaData: String, SleepTimerState: String, AlarmState: String, StreamRestartState: String, CurrentQueueTrackList: String, CurrentVLIState: String) BecomeGroupCoordinatorAndSource(InstanceID: ui4, CurrentCoordinator: String, CurrentGroupID: String, OtherMembers: String, CurrentURI: String, CurrentURIMetaData: String, SleepTimerState: String, AlarmState: String, StreamRestartState: String, CurrentAVTTrackList: String, CurrentQueueTrackList: String, CurrentSourceState: String, ResumePlayback: Boolean) ChangeCoordinator(InstanceID: ui4, CurrentCoordinator: String, NewCoordinator: String, NewTransportSettings: String, CurrentAVTransportURI: String) ChangeTransportSettings(InstanceID: ui4, NewTransportSettings: String, CurrentAVTransportURI: String) ConfigureSleepTimer(InstanceID: ui4, NewSleepTimerDuration: String) GetRemainingSleepTimerDuration(InstanceID: ui4) -> (RemainingSleepTimerDuration: String, CurrentSleepTimerGeneration: ui4) RunAlarm(InstanceID: ui4, AlarmID: ui4, LoggedStartTime: String, Duration: String, ProgramURI: String, ProgramMetaData: String, PlayMode: [NORMAL, REPEAT_ALL, REPEAT_ONE, SHUFFLE_NOREPEAT, SHUFFLE, SHUFFLE_REPEAT_ONE] = NORMAL, Volume: ui2, IncludeLinkedZones: Boolean) StartAutoplay(InstanceID: ui4, ProgramURI: String, ProgramMetaData: String, Volume: ui2, IncludeLinkedZones: Boolean, ResetVolumeAfter: Boolean) GetRunningAlarmProperties(InstanceID: ui4) -> (AlarmID: ui4, GroupID: String, LoggedStartTime: String) SnoozeAlarm(InstanceID: ui4, Duration: String) EndDirectControlSession(InstanceID: ui4) }