From acea834d76ceb6bf6137aa03adfef9930dc40815 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sun, 7 Sep 2025 21:35:34 +0200 Subject: [PATCH] Fini l'implementation du RenderingControl --- .../ac_GetCurrentConnectionIDs.go | 16 +++++ .../ac_GetCurrentConnectionInfo.go | 64 +++++++++++++++++++ .../ConnectionManager/ac_GetProtocolInfo.go | 23 +++++++ .../sv_A_ARG_TYPE_AVTransportID.go | 10 +++ .../sv_A_ARG_TYPE_ConnectionID.go | 10 +++ .../sv_A_ARG_TYPE_ConnectionManager.go | 10 +++ .../sv_A_ARG_TYPE_ConnectionStatus.go | 17 +++++ .../sv_A_ARG_TYPE_Direction.go | 11 ++++ .../sv_A_ARG_TYPE_ProtocolInfo.go | 10 +++ .../ConnectionManager/sv_A_ARG_TYPE_RcsID.go | 10 +++ .../svc_connectionmanager.go | 27 +++++--- .../RenderingControl/sv_SourceProtocolInfo.go | 1 + 12 files changed, 201 insertions(+), 8 deletions(-) create mode 100644 upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionIDs.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionInfo.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/ac_GetProtocolInfo.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_AVTransportID.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionID.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionManager.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionStatus.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_Direction.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ProtocolInfo.go create mode 100644 upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_RcsID.go create mode 100644 upnp/devices/mediarenderer/RenderingControl/sv_SourceProtocolInfo.go diff --git a/upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionIDs.go b/upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionIDs.go new file mode 100644 index 00000000..92e302ec --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionIDs.go @@ -0,0 +1,16 @@ +package connectionmanager + +import "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/actions" + +var GetCurrentConnectionIDs = func() *actions.Action { + + ac := actions.NewAction("GetCurrentConnectionIDs") + ac.AddArgument( + actions.NewOutArgument( + "ConnectionIDs", + CurrentConnectionIDs, + ), + ) + + return ac +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionInfo.go b/upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionInfo.go new file mode 100644 index 00000000..7caabd98 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/ac_GetCurrentConnectionInfo.go @@ -0,0 +1,64 @@ +package connectionmanager + +import "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/actions" + +var GetCurrentConnectionInfo = func() *actions.Action { + + ac := actions.NewAction("GetCurrentConnectionInfo") + ac.AddArgument( + actions.NewInArgument( + "ConnectionIDs", + A_ARG_TYPE_ConnectionID, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "RcsID", + A_ARG_TYPE_RcsID, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "AVTransportID", + A_ARG_TYPE_AVTransportID, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "ProtocolInfo", + A_ARG_TYPE_ProtocolInfo, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "PeerConnectionManager", + A_ARG_TYPE_ConnectionManager, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "PeerConnectionID", + A_ARG_TYPE_ConnectionID, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "Direction", + A_ARG_TYPE_Direction, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "Status", + A_ARG_TYPE_ConnectionStatus, + ), + ) + return ac +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/ac_GetProtocolInfo.go b/upnp/devices/mediarenderer/ConnectionManager/ac_GetProtocolInfo.go new file mode 100644 index 00000000..36ca9aeb --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/ac_GetProtocolInfo.go @@ -0,0 +1,23 @@ +package connectionmanager + +import "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/actions" + +var GetProtocolInfo = func() *actions.Action { + + ac := actions.NewAction("GetProtocolInfo") + ac.AddArgument( + actions.NewOutArgument( + "Source", + SourceProtocolInfo, + ), + ) + + ac.AddArgument( + actions.NewOutArgument( + "Sink", + SinkProtocolInfo, + ), + ) + + return ac +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_AVTransportID.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_AVTransportID.go new file mode 100644 index 00000000..ef4e4b06 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_AVTransportID.go @@ -0,0 +1,10 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_AVTransportID = func() *sv.StateVariable { + + ts := sv.StateType_I4.NewStateValue("A_ARG_TYPE_AVTransportID") + + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionID.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionID.go new file mode 100644 index 00000000..57cdbb57 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionID.go @@ -0,0 +1,10 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_ConnectionID = func() *sv.StateVariable { + + ts := sv.StateType_I4.NewStateValue("A_ARG_TYPE_ConnectionID") + + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionManager.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionManager.go new file mode 100644 index 00000000..d5877b32 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionManager.go @@ -0,0 +1,10 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_ConnectionManager = func() *sv.StateVariable { + + ts := sv.StateType_String.NewStateValue("A_ARG_TYPE_ConnectionManager") + + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionStatus.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionStatus.go new file mode 100644 index 00000000..de06cd36 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ConnectionStatus.go @@ -0,0 +1,17 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_ConnectionStatus = func() *sv.StateVariable { + + ts := sv.StateType_String.NewStateValue("A_ARG_TYPE_ConnectionStatus") + + ts.AppendAllowedValue( + "OK", + "ContentFormatMismatch", + "InsufficientBandwidth", + "UnreliableChannel", + "Unknown", + ) + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_Direction.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_Direction.go new file mode 100644 index 00000000..f6aa01eb --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_Direction.go @@ -0,0 +1,11 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_Direction = func() *sv.StateVariable { + + ts := sv.StateType_String.NewStateValue("A_ARG_TYPE_Direction") + ts.AppendAllowedValue("Input", "Output") + + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ProtocolInfo.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ProtocolInfo.go new file mode 100644 index 00000000..f3e6fc67 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_ProtocolInfo.go @@ -0,0 +1,10 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_ProtocolInfo = func() *sv.StateVariable { + + ts := sv.StateType_String.NewStateValue("A_ARG_TYPE_ProtocolInfo") + + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_RcsID.go b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_RcsID.go new file mode 100644 index 00000000..7a762df7 --- /dev/null +++ b/upnp/devices/mediarenderer/ConnectionManager/sv_A_ARG_TYPE_RcsID.go @@ -0,0 +1,10 @@ +package connectionmanager + +import sv "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/services/statevariables" + +var A_ARG_TYPE_RcsID = func() *sv.StateVariable { + + ts := sv.StateType_I4.NewStateValue("A_ARG_TYPE_RcsID") + + return ts +}() diff --git a/upnp/devices/mediarenderer/ConnectionManager/svc_connectionmanager.go b/upnp/devices/mediarenderer/ConnectionManager/svc_connectionmanager.go index 7bd1f47a..25e03656 100644 --- a/upnp/devices/mediarenderer/ConnectionManager/svc_connectionmanager.go +++ b/upnp/devices/mediarenderer/ConnectionManager/svc_connectionmanager.go @@ -5,17 +5,28 @@ import "gargoton.petite-maison-orange.fr/eric/pmomusic/upnp" var ConnectionManager = func() *upnp.Service { svc := upnp.NewService("ConnectionManager") - svc.AddVariable(SourceProtocolInfo) + svc.AddVariable(AVTransportID) + svc.AddVariable(ConnectionID) + svc.AddVariable(CurrentConnectionIDs) + svc.AddVariable(Direction) + svc.AddVariable(PeerConnectionID) + svc.AddVariable(PeerConnectionManager) + svc.AddVariable(RcsID) svc.AddVariable(SinkProtocolInfo) svc.AddVariable(SourceProtocolInfo) - svc.AddVariable(CurrentConnectionIDs) - svc.AddVariable(AVTransportID) - svc.AddVariable(RcsID) - svc.AddVariable(PeerConnectionManager) - svc.AddVariable(PeerConnectionID) - svc.AddVariable(Direction) svc.AddVariable(Status) - svc.AddVariable(ConnectionID) + + svc.AddVariable(A_ARG_TYPE_AVTransportID) + svc.AddVariable(A_ARG_TYPE_ConnectionID) + svc.AddVariable(A_ARG_TYPE_ConnectionManager) + svc.AddVariable(A_ARG_TYPE_ConnectionStatus) + svc.AddVariable(A_ARG_TYPE_Direction) + svc.AddVariable(A_ARG_TYPE_ProtocolInfo) + svc.AddVariable(A_ARG_TYPE_RcsID) + + svc.AddAction(GetCurrentConnectionIDs) + svc.AddAction(GetCurrentConnectionInfo) + svc.AddAction(GetProtocolInfo) return svc }() diff --git a/upnp/devices/mediarenderer/RenderingControl/sv_SourceProtocolInfo.go b/upnp/devices/mediarenderer/RenderingControl/sv_SourceProtocolInfo.go new file mode 100644 index 00000000..498839a2 --- /dev/null +++ b/upnp/devices/mediarenderer/RenderingControl/sv_SourceProtocolInfo.go @@ -0,0 +1 @@ +package renderingcontrol