✏️ START DISCOVERY ✏️ Volume: nil Minimum: Optional(0) Maximum: Optional(2147483647) Step: 1.0 ✏️ 💻 FOUNDED SERVER AVM FRITZ!Mediaserver ✏️ 💻 FOUNDED SERVER AVM FRITZ!Mediaserver ✏️ 💻 FOUNDED SERVER AVM FRITZ!Mediaserver ✏️ 💻 FOUNDED SERVER AVM FRITZ!Mediaserver ✏️ 💻 FOUNDED SERVER AVM FRITZ!Mediaserver ✏️ 📱 FOUNDED RENDERER Linn G-ADS3 Sebastian:UPnP AV ✏️ 📱 FOUNDED RENDERER Linn G-ADS3 Sebastian:UPnP AV ✏️ 📱 FOUNDED RENDERER Linn G-ADS3 Sebastian:UPnP AV ✏️ 📱 FOUNDED RENDERER Linn G-ADS3 Sebastian:UPnP AV ✏️ 📱 FOUNDED RENDERER Linn G-ADS3 Sebastian:UPnP AV ✏️ [AnyHashable("CurrentVolume"): 72] ✏️ Volume: Optional(72.0) Minimum: Optional(0) Maximum: Optional(2147483647) Step: 1.0 ✏️ Volume: nil Minimum: Optional(0) Maximum: Optional(100) Step: 1.0 ✏️ Volume: Optional(0.0) Minimum: Optional(0) Maximum: Optional(100) Step: 1.0 ⛔️ Error Domain=com.arcam.cocoaupnp.error Code=1 "501 - Action not implemented" UserInfo={NSLocalizedDescription=501 - Action not implemented} ✏️ TransportActions: nil ✏️ [AnyHashable("Sink"): http-get:*:audio/mp4:*,http-get:*:application/vnd.apple.mpegurl:*,http-get:*:audio/aac:*,http-get:*:audio/aacp:*,http-get:*:audio/aiff:*,http-get:*:audio/x-aiff:*,http-get:*:audio/aifc:*,http-get:*:audio/x-aifc:*,http-get:*:audio/x-m4a:*,http-get:*:audio/x-flac:*,http-get:*:audio/ogg:*,http-get:*:audio/x-ogg:*,http-get:*:application/ogg:*,http-get:*:audio/wav:*,http-get:*:audio/wave:*,http-get:*:audio/x-wav:*,http-get:*:audio/dsf:*,http-get:*:audio/x-dsf:*,http-get:*:audio/dff:*,http-get:*:audio/x-dff:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-asf:*,http-get:*:audio/x-ms-wax:*,http-get:*:audio/x-ms-wvx:*,http-get:*:video/x-ms-asf:*,http-get:*:video/x-ms-wax:*,http-get:*:video/x-ms-wvx:*,http-get:*:audio/mpeg:*,http-get:*:audio/x-mpeg:*,http-get:*:audio/mp1:*,http-get:*:audio/x-mpegurl:*,http-get:*:audio/mpegurl:*,http-get:*:audio/x-scpls:*,http-get:*:text/xml:*,tidalhifi.com:*:*:*,qobuz.com:*:*:*, AnyHashable("Source"): ] ✏️ ProtocolInfo: Optional(UPnP_Player.UPPProtocolInfo(sink: "http-get:*:audio/mp4:*,http-get:*:application/vnd.apple.mpegurl:*,http-get:*:audio/aac:*,http-get:*:audio/aacp:*,http-get:*:audio/aiff:*,http-get:*:audio/x-aiff:*,http-get:*:audio/aifc:*,http-get:*:audio/x-aifc:*,http-get:*:audio/x-m4a:*,http-get:*:audio/x-flac:*,http-get:*:audio/ogg:*,http-get:*:audio/x-ogg:*,http-get:*:application/ogg:*,http-get:*:audio/wav:*,http-get:*:audio/wave:*,http-get:*:audio/x-wav:*,http-get:*:audio/dsf:*,http-get:*:audio/x-dsf:*,http-get:*:audio/dff:*,http-get:*:audio/x-dff:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-asf:*,http-get:*:audio/x-ms-wax:*,http-get:*:audio/x-ms-wvx:*,http-get:*:video/x-ms-asf:*,http-get:*:video/x-ms-wax:*,http-get:*:video/x-ms-wvx:*,http-get:*:audio/mpeg:*,http-get:*:audio/x-mpeg:*,http-get:*:audio/mp1:*,http-get:*:audio/x-mpegurl:*,http-get:*:audio/mpegurl:*,http-get:*:audio/x-scpls:*,http-get:*:text/xml:*,tidalhifi.com:*:*:*,qobuz.com:*:*:*")) ✏️ RendererActions: Optional(UPnP_Player.UPPActions(actions: [UPnP_Player.UPPAction(name: "ListPresets", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_ListPresets_InstanceID"), UPnP_Player.UPPActionArgument(name: "CurrentPresetNameList", direction: "out", relatedStateVariable: "A_ARG_TYPE_ListPresets_CurrentPresetNameList")]), UPnP_Player.UPPAction(name: "SelectPreset", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SelectPreset_InstanceID"), UPnP_Player.UPPActionArgument(name: "PresetName", direction: "in", relatedStateVariable: "A_ARG_TYPE_SelectPreset_PresetName")]), UPnP_Player.UPPAction(name: "GetMute", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetMute_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetMute_Channel"), UPnP_Player.UPPActionArgument(name: "CurrentMute", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMute_CurrentMute")]), UPnP_Player.UPPAction(name: "SetMute", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetMute_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetMute_Channel"), UPnP_Player.UPPActionArgument(name: "DesiredMute", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetMute_DesiredMute")]), UPnP_Player.UPPAction(name: "GetVolume", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolume_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolume_Channel"), UPnP_Player.UPPActionArgument(name: "CurrentVolume", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolume_CurrentVolume")]), UPnP_Player.UPPAction(name: "SetVolume", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolume_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolume_Channel"), UPnP_Player.UPPActionArgument(name: "DesiredVolume", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolume_DesiredVolume")]), UPnP_Player.UPPAction(name: "GetVolumeDB", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDB_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDB_Channel"), UPnP_Player.UPPActionArgument(name: "CurrentVolume", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolumeDB_CurrentVolume")]), UPnP_Player.UPPAction(name: "SetVolumeDB", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolumeDB_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolumeDB_Channel"), UPnP_Player.UPPActionArgument(name: "DesiredVolume", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolumeDB_DesiredVolume")]), UPnP_Player.UPPAction(name: "GetVolumeDBRange", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_Channel"), UPnP_Player.UPPActionArgument(name: "MinValue", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_MinValue"), UPnP_Player.UPPActionArgument(name: "MaxValue", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_MaxValue")])], stateVariables: [UPnP_Player.UPPStateVariable(name: "LastChange", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_ListPresets_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_ListPresets_CurrentPresetNameList", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SelectPreset_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SelectPreset_PresetName", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMute_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMute_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMute_CurrentMute", dataType: "boolean", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetMute_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetMute_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetMute_DesiredMute", dataType: "boolean", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolume_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolume_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolume_CurrentVolume", dataType: "ui4", allowedValueRange: Optional(UPnP_Player.UPPStateVariableRange(minimum: "0", maximum: "2147483647", step: Optional("1"))), allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolume_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolume_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolume_DesiredVolume", dataType: "ui4", allowedValueRange: Optional(UPnP_Player.UPPStateVariableRange(minimum: "0", maximum: "2147483647", step: Optional("1"))), allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDB_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDB_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDB_CurrentVolume", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolumeDB_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolumeDB_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolumeDB_DesiredVolume", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_MinValue", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_MaxValue", dataType: "i4", allowedValueRange: nil, allowedValues: nil)])) ✏️ AVTransportActions: Optional(UPnP_Player.UPPActions(actions: [UPnP_Player.UPPAction(name: "SetAVTransportURI", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetAVTransportURI_InstanceID"), UPnP_Player.UPPActionArgument(name: "CurrentURI", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetAVTransportURI_CurrentURI"), UPnP_Player.UPPActionArgument(name: "CurrentURIMetaData", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetAVTransportURI_CurrentURIMetaData")]), UPnP_Player.UPPAction(name: "GetMediaInfo", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_InstanceID"), UPnP_Player.UPPActionArgument(name: "NrTracks", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_NrTracks"), UPnP_Player.UPPActionArgument(name: "MediaDuration", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_MediaDuration"), UPnP_Player.UPPActionArgument(name: "CurrentURI", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_CurrentURI"), UPnP_Player.UPPActionArgument(name: "CurrentURIMetaData", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_CurrentURIMetaData"), UPnP_Player.UPPActionArgument(name: "NextURI", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_NextURI"), UPnP_Player.UPPActionArgument(name: "NextURIMetaData", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_NextURIMetaData"), UPnP_Player.UPPActionArgument(name: "PlayMedium", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_PlayMedium"), UPnP_Player.UPPActionArgument(name: "RecordMedium", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_RecordMedium"), UPnP_Player.UPPActionArgument(name: "WriteStatus", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_WriteStatus")]), UPnP_Player.UPPAction(name: "GetTransportInfo", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_InstanceID"), UPnP_Player.UPPActionArgument(name: "CurrentTransportState", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_CurrentTransportState"), UPnP_Player.UPPActionArgument(name: "CurrentTransportStatus", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_CurrentTransportStatus"), UPnP_Player.UPPActionArgument(name: "CurrentSpeed", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_CurrentSpeed")]), UPnP_Player.UPPAction(name: "GetPositionInfo", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_InstanceID"), UPnP_Player.UPPActionArgument(name: "Track", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_Track"), UPnP_Player.UPPActionArgument(name: "TrackDuration", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_TrackDuration"), UPnP_Player.UPPActionArgument(name: "TrackMetaData", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_TrackMetaData"), UPnP_Player.UPPActionArgument(name: "TrackURI", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_TrackURI"), UPnP_Player.UPPActionArgument(name: "RelTime", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_RelTime"), UPnP_Player.UPPActionArgument(name: "AbsTime", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_AbsTime"), UPnP_Player.UPPActionArgument(name: "RelCount", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_RelCount"), UPnP_Player.UPPActionArgument(name: "AbsCount", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_AbsCount")]), UPnP_Player.UPPAction(name: "GetDeviceCapabilities", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_InstanceID"), UPnP_Player.UPPActionArgument(name: "PlayMedia", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_PlayMedia"), UPnP_Player.UPPActionArgument(name: "RecMedia", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_RecMedia"), UPnP_Player.UPPActionArgument(name: "RecQualityModes", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_RecQualityModes")]), UPnP_Player.UPPAction(name: "GetTransportSettings", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetTransportSettings_InstanceID"), UPnP_Player.UPPActionArgument(name: "PlayMode", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportSettings_PlayMode"), UPnP_Player.UPPActionArgument(name: "RecQualityMode", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportSettings_RecQualityMode")]), UPnP_Player.UPPAction(name: "Stop", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Stop_InstanceID")]), UPnP_Player.UPPAction(name: "Play", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Play_InstanceID"), UPnP_Player.UPPActionArgument(name: "Speed", direction: "in", relatedStateVariable: "A_ARG_TYPE_Play_Speed")]), UPnP_Player.UPPAction(name: "Pause", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Pause_InstanceID")]), UPnP_Player.UPPAction(name: "Seek", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Seek_InstanceID"), UPnP_Player.UPPActionArgument(name: "Unit", direction: "in", relatedStateVariable: "A_ARG_TYPE_Seek_Unit"), UPnP_Player.UPPActionArgument(name: "Target", direction: "in", relatedStateVariable: "A_ARG_TYPE_Seek_Target")]), UPnP_Player.UPPAction(name: "Next", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Next_InstanceID")]), UPnP_Player.UPPAction(name: "Previous", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Previous_InstanceID")])], stateVariables: [UPnP_Player.UPPStateVariable(name: "LastChange", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetAVTransportURI_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetAVTransportURI_CurrentURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetAVTransportURI_CurrentURIMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_NrTracks", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_MediaDuration", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_CurrentURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_CurrentURIMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_NextURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_NextURIMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_PlayMedium", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_RecordMedium", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_WriteStatus", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["NOT_IMPLEMENTED", "NOT_WRITABLE", "PROTECTED", "UNKNOWN", "WRITABLE"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_CurrentTransportState", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["NO_MEDIA_PRESENT", "PAUSED_PLAYBACK", "PAUSED_RECORDING", "PLAYING", "RECORDING", "STOPPED", "TRANSITIONING"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_CurrentTransportStatus", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["ERROR_OCCURRED", "OK"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_CurrentSpeed", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_Track", dataType: "ui4", allowedValueRange: Optional(UPnP_Player.UPPStateVariableRange(minimum: "0", maximum: "2147483647", step: Optional("1"))), allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_TrackDuration", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_TrackMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_TrackURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_RelTime", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_AbsTime", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_RelCount", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_AbsCount", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_PlayMedia", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_RecMedia", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_RecQualityModes", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportSettings_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportSettings_PlayMode", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["NORMAL"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportSettings_RecQualityMode", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Stop_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Play_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Play_Speed", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Pause_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Seek_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Seek_Unit", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["ABS_COUNT", "ABS_TIME", "CHANNEL_FREQ", "FRAME", "REL_COUNT", "REL_TIME", "TAPE-INDEX", "TRACK_NR"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Seek_Target", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Next_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Previous_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil)])) ✏️ Volume: nil Minimum: Optional(0) Maximum: Optional(2147483647) Step: 1.0 ✏️ Try To Get Current Item ✏️ [AnyHashable("CurrentTransportState"): PAUSED_PLAYBACK, AnyHashable("CurrentSpeed"): 1, AnyHashable("CurrentTransportStatus"): OK] ✏️ TransportInfo: success(UPnP_Player.UPPTransportInfo(stateString: "PAUSED_PLAYBACK", status: "OK", currentSpeed: "1", updatedDate: 2022-12-16 19:17:10 +0000)) ✏️ [AnyHashable("CurrentVolume"): 72] ✏️ Volume: Optional(72.0) Minimum: Optional(0) Maximum: Optional(2147483647) Step: 1.0 ✏️ STOP DISCOVERY ✏️ Volume: Optional(72.0) Minimum: Optional(0) Maximum: Optional(2147483647) Step: 1.0 ✏️ [AnyHashable("Source"): , AnyHashable("Sink"): http-get:*:audio/mp4:*,http-get:*:application/vnd.apple.mpegurl:*,http-get:*:audio/aac:*,http-get:*:audio/aacp:*,http-get:*:audio/aiff:*,http-get:*:audio/x-aiff:*,http-get:*:audio/aifc:*,http-get:*:audio/x-aifc:*,http-get:*:audio/x-m4a:*,http-get:*:audio/x-flac:*,http-get:*:audio/ogg:*,http-get:*:audio/x-ogg:*,http-get:*:application/ogg:*,http-get:*:audio/wav:*,http-get:*:audio/wave:*,http-get:*:audio/x-wav:*,http-get:*:audio/dsf:*,http-get:*:audio/x-dsf:*,http-get:*:audio/dff:*,http-get:*:audio/x-dff:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-asf:*,http-get:*:audio/x-ms-wax:*,http-get:*:audio/x-ms-wvx:*,http-get:*:video/x-ms-asf:*,http-get:*:video/x-ms-wax:*,http-get:*:video/x-ms-wvx:*,http-get:*:audio/mpeg:*,http-get:*:audio/x-mpeg:*,http-get:*:audio/mp1:*,http-get:*:audio/x-mpegurl:*,http-get:*:audio/mpegurl:*,http-get:*:audio/x-scpls:*,http-get:*:text/xml:*,tidalhifi.com:*:*:*,qobuz.com:*:*:*] ✏️ ProtocolInfo: Optional(UPnP_Player.UPPProtocolInfo(sink: "http-get:*:audio/mp4:*,http-get:*:application/vnd.apple.mpegurl:*,http-get:*:audio/aac:*,http-get:*:audio/aacp:*,http-get:*:audio/aiff:*,http-get:*:audio/x-aiff:*,http-get:*:audio/aifc:*,http-get:*:audio/x-aifc:*,http-get:*:audio/x-m4a:*,http-get:*:audio/x-flac:*,http-get:*:audio/ogg:*,http-get:*:audio/x-ogg:*,http-get:*:application/ogg:*,http-get:*:audio/wav:*,http-get:*:audio/wave:*,http-get:*:audio/x-wav:*,http-get:*:audio/dsf:*,http-get:*:audio/x-dsf:*,http-get:*:audio/dff:*,http-get:*:audio/x-dff:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/x-ms-asf:*,http-get:*:audio/x-ms-wax:*,http-get:*:audio/x-ms-wvx:*,http-get:*:video/x-ms-asf:*,http-get:*:video/x-ms-wax:*,http-get:*:video/x-ms-wvx:*,http-get:*:audio/mpeg:*,http-get:*:audio/x-mpeg:*,http-get:*:audio/mp1:*,http-get:*:audio/x-mpegurl:*,http-get:*:audio/mpegurl:*,http-get:*:audio/x-scpls:*,http-get:*:text/xml:*,tidalhifi.com:*:*:*,qobuz.com:*:*:*")) ⛔️ Error Domain=com.arcam.cocoaupnp.error Code=1 "501 - Action not implemented" UserInfo={NSLocalizedDescription=501 - Action not implemented} ✏️ TransportActions: nil ✏️ RendererActions: Optional(UPnP_Player.UPPActions(actions: [UPnP_Player.UPPAction(name: "ListPresets", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_ListPresets_InstanceID"), UPnP_Player.UPPActionArgument(name: "CurrentPresetNameList", direction: "out", relatedStateVariable: "A_ARG_TYPE_ListPresets_CurrentPresetNameList")]), UPnP_Player.UPPAction(name: "SelectPreset", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SelectPreset_InstanceID"), UPnP_Player.UPPActionArgument(name: "PresetName", direction: "in", relatedStateVariable: "A_ARG_TYPE_SelectPreset_PresetName")]), UPnP_Player.UPPAction(name: "GetMute", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetMute_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetMute_Channel"), UPnP_Player.UPPActionArgument(name: "CurrentMute", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMute_CurrentMute")]), UPnP_Player.UPPAction(name: "SetMute", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetMute_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetMute_Channel"), UPnP_Player.UPPActionArgument(name: "DesiredMute", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetMute_DesiredMute")]), UPnP_Player.UPPAction(name: "GetVolume", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolume_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolume_Channel"), UPnP_Player.UPPActionArgument(name: "CurrentVolume", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolume_CurrentVolume")]), UPnP_Player.UPPAction(name: "SetVolume", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolume_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolume_Channel"), UPnP_Player.UPPActionArgument(name: "DesiredVolume", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolume_DesiredVolume")]), UPnP_Player.UPPAction(name: "GetVolumeDB", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDB_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDB_Channel"), UPnP_Player.UPPActionArgument(name: "CurrentVolume", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolumeDB_CurrentVolume")]), UPnP_Player.UPPAction(name: "SetVolumeDB", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolumeDB_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolumeDB_Channel"), UPnP_Player.UPPActionArgument(name: "DesiredVolume", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetVolumeDB_DesiredVolume")]), UPnP_Player.UPPAction(name: "GetVolumeDBRange", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_InstanceID"), UPnP_Player.UPPActionArgument(name: "Channel", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_Channel"), UPnP_Player.UPPActionArgument(name: "MinValue", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_MinValue"), UPnP_Player.UPPActionArgument(name: "MaxValue", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetVolumeDBRange_MaxValue")])], stateVariables: [UPnP_Player.UPPStateVariable(name: "LastChange", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_ListPresets_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_ListPresets_CurrentPresetNameList", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SelectPreset_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SelectPreset_PresetName", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMute_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMute_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMute_CurrentMute", dataType: "boolean", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetMute_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetMute_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetMute_DesiredMute", dataType: "boolean", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolume_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolume_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolume_CurrentVolume", dataType: "ui4", allowedValueRange: Optional(UPnP_Player.UPPStateVariableRange(minimum: "0", maximum: "2147483647", step: Optional("1"))), allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolume_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolume_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolume_DesiredVolume", dataType: "ui4", allowedValueRange: Optional(UPnP_Player.UPPStateVariableRange(minimum: "0", maximum: "2147483647", step: Optional("1"))), allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDB_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDB_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDB_CurrentVolume", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolumeDB_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolumeDB_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetVolumeDB_DesiredVolume", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_Channel", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_MinValue", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetVolumeDBRange_MaxValue", dataType: "i4", allowedValueRange: nil, allowedValues: nil)])) ✏️ AVTransportActions: Optional(UPnP_Player.UPPActions(actions: [UPnP_Player.UPPAction(name: "SetAVTransportURI", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetAVTransportURI_InstanceID"), UPnP_Player.UPPActionArgument(name: "CurrentURI", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetAVTransportURI_CurrentURI"), UPnP_Player.UPPActionArgument(name: "CurrentURIMetaData", direction: "in", relatedStateVariable: "A_ARG_TYPE_SetAVTransportURI_CurrentURIMetaData")]), UPnP_Player.UPPAction(name: "GetMediaInfo", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_InstanceID"), UPnP_Player.UPPActionArgument(name: "NrTracks", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_NrTracks"), UPnP_Player.UPPActionArgument(name: "MediaDuration", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_MediaDuration"), UPnP_Player.UPPActionArgument(name: "CurrentURI", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_CurrentURI"), UPnP_Player.UPPActionArgument(name: "CurrentURIMetaData", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_CurrentURIMetaData"), UPnP_Player.UPPActionArgument(name: "NextURI", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_NextURI"), UPnP_Player.UPPActionArgument(name: "NextURIMetaData", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_NextURIMetaData"), UPnP_Player.UPPActionArgument(name: "PlayMedium", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_PlayMedium"), UPnP_Player.UPPActionArgument(name: "RecordMedium", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_RecordMedium"), UPnP_Player.UPPActionArgument(name: "WriteStatus", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetMediaInfo_WriteStatus")]), UPnP_Player.UPPAction(name: "GetTransportInfo", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_InstanceID"), UPnP_Player.UPPActionArgument(name: "CurrentTransportState", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_CurrentTransportState"), UPnP_Player.UPPActionArgument(name: "CurrentTransportStatus", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_CurrentTransportStatus"), UPnP_Player.UPPActionArgument(name: "CurrentSpeed", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportInfo_CurrentSpeed")]), UPnP_Player.UPPAction(name: "GetPositionInfo", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_InstanceID"), UPnP_Player.UPPActionArgument(name: "Track", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_Track"), UPnP_Player.UPPActionArgument(name: "TrackDuration", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_TrackDuration"), UPnP_Player.UPPActionArgument(name: "TrackMetaData", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_TrackMetaData"), UPnP_Player.UPPActionArgument(name: "TrackURI", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_TrackURI"), UPnP_Player.UPPActionArgument(name: "RelTime", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_RelTime"), UPnP_Player.UPPActionArgument(name: "AbsTime", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_AbsTime"), UPnP_Player.UPPActionArgument(name: "RelCount", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_RelCount"), UPnP_Player.UPPActionArgument(name: "AbsCount", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetPositionInfo_AbsCount")]), UPnP_Player.UPPAction(name: "GetDeviceCapabilities", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_InstanceID"), UPnP_Player.UPPActionArgument(name: "PlayMedia", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_PlayMedia"), UPnP_Player.UPPActionArgument(name: "RecMedia", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_RecMedia"), UPnP_Player.UPPActionArgument(name: "RecQualityModes", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetDeviceCapabilities_RecQualityModes")]), UPnP_Player.UPPAction(name: "GetTransportSettings", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_GetTransportSettings_InstanceID"), UPnP_Player.UPPActionArgument(name: "PlayMode", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportSettings_PlayMode"), UPnP_Player.UPPActionArgument(name: "RecQualityMode", direction: "out", relatedStateVariable: "A_ARG_TYPE_GetTransportSettings_RecQualityMode")]), UPnP_Player.UPPAction(name: "Stop", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Stop_InstanceID")]), UPnP_Player.UPPAction(name: "Play", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Play_InstanceID"), UPnP_Player.UPPActionArgument(name: "Speed", direction: "in", relatedStateVariable: "A_ARG_TYPE_Play_Speed")]), UPnP_Player.UPPAction(name: "Pause", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Pause_InstanceID")]), UPnP_Player.UPPAction(name: "Seek", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Seek_InstanceID"), UPnP_Player.UPPActionArgument(name: "Unit", direction: "in", relatedStateVariable: "A_ARG_TYPE_Seek_Unit"), UPnP_Player.UPPActionArgument(name: "Target", direction: "in", relatedStateVariable: "A_ARG_TYPE_Seek_Target")]), UPnP_Player.UPPAction(name: "Next", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Next_InstanceID")]), UPnP_Player.UPPAction(name: "Previous", argumentList: [UPnP_Player.UPPActionArgument(name: "InstanceID", direction: "in", relatedStateVariable: "A_ARG_TYPE_Previous_InstanceID")])], stateVariables: [UPnP_Player.UPPStateVariable(name: "LastChange", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetAVTransportURI_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetAVTransportURI_CurrentURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_SetAVTransportURI_CurrentURIMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_NrTracks", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_MediaDuration", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_CurrentURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_CurrentURIMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_NextURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_NextURIMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_PlayMedium", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_RecordMedium", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetMediaInfo_WriteStatus", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["NOT_IMPLEMENTED", "NOT_WRITABLE", "PROTECTED", "UNKNOWN", "WRITABLE"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_CurrentTransportState", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["NO_MEDIA_PRESENT", "PAUSED_PLAYBACK", "PAUSED_RECORDING", "PLAYING", "RECORDING", "STOPPED", "TRANSITIONING"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_CurrentTransportStatus", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["ERROR_OCCURRED", "OK"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportInfo_CurrentSpeed", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_Track", dataType: "ui4", allowedValueRange: Optional(UPnP_Player.UPPStateVariableRange(minimum: "0", maximum: "2147483647", step: Optional("1"))), allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_TrackDuration", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_TrackMetaData", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_TrackURI", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_RelTime", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_AbsTime", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_RelCount", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetPositionInfo_AbsCount", dataType: "i4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_PlayMedia", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_RecMedia", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetDeviceCapabilities_RecQualityModes", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportSettings_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportSettings_PlayMode", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["NORMAL"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_GetTransportSettings_RecQualityMode", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Stop_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Play_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Play_Speed", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Pause_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Seek_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Seek_Unit", dataType: "string", allowedValueRange: nil, allowedValues: Optional(["ABS_COUNT", "ABS_TIME", "CHANNEL_FREQ", "FRAME", "REL_COUNT", "REL_TIME", "TAPE-INDEX", "TRACK_NR"])), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Seek_Target", dataType: "string", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Next_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil), UPnP_Player.UPPStateVariable(name: "A_ARG_TYPE_Previous_InstanceID", dataType: "ui4", allowedValueRange: nil, allowedValues: nil)])) ✏️ App Did Enter Background! ✏️ App Will Enter Foreground! ✏️ App Did Become Active! ✏️ RendererSelectorViewModel deinit