@ -6,45 +6,57 @@ using Emby.Dlna.Service;
namespace Emby.Dlna.ConnectionManager
{
public class ConnectionManagerXmlBuilder
/// <summary>
/// Defines the <see cref="ConnectionManagerXmlBuilder" />.
/// </summary>
public static class ConnectionManagerXmlBuilder
{
public string GetXml ( )
/// <summary>
/// Gets the ConnectionManager:1 service template.
/// See http://upnp.org/specs/av/UPnP-av-ConnectionManager-v1-Service.pdf.
/// </summary>
/// <returns>An XML description of this service.</returns>
public static string GetXml ( )
{
return new ServiceXmlBuilder ( ) . GetXml ( new ServiceActionListBuilder ( ) . GetActions ( ) , GetStateVariables ( ) ) ;
return new ServiceXmlBuilder ( ) . GetXml ( ServiceActionListBuilder . GetActions ( ) , GetStateVariables ( ) ) ;
}
/// <summary>
/// Get the list of state variables for this invocation.
/// </summary>
/// <returns>The <see cref="IEnumerable{StateVariable}"/>.</returns>
private static IEnumerable < StateVariable > GetStateVariables ( )
{
var list = new List < StateVariable > ( ) ;
list . Add ( new StateVariable
var list = new List < StateVariable >
{
Name = "SourceProtocolInfo" ,
DataType = "string" ,
SendsEvents = true
} ) ;
new StateVariable
{
Name = "SourceProtocolInfo" ,
DataType = "string" ,
SendsEvents = true
} ,
list . Add ( new StateVariable
{
Name = "SinkProtocolInfo" ,
DataType = "string" ,
SendsEvents = true
} ) ;
new StateVariable
{
Name = "SinkProtocolInfo" ,
DataType = "string" ,
SendsEvents = true
} ,
list . Add ( new StateVariable
{
Name = "CurrentConnectionIDs" ,
DataType = "string" ,
SendsEvents = true
} ) ;
new StateVariable
{
Name = "CurrentConnectionIDs" ,
DataType = "string" ,
SendsEvents = true
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_ConnectionStatus" ,
DataType = "string" ,
SendsEvents = false ,
new StateVariable
{
Name = "A_ARG_TYPE_ConnectionStatus" ,
DataType = "string" ,
SendsEvents = false ,
AllowedValues = new [ ]
AllowedValues = new [ ]
{
"OK" ,
"ContentFormatMismatch" ,
@ -52,55 +64,56 @@ namespace Emby.Dlna.ConnectionManager
"UnreliableChannel" ,
"Unknown"
}
} ) ;
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_ConnectionManager" ,
DataType = "string" ,
SendsEvents = false
} ) ;
new StateVariable
{
Name = "A_ARG_TYPE_ConnectionManager" ,
DataType = "string" ,
SendsEvents = false
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_Direction" ,
DataType = "string" ,
SendsEvents = false ,
new StateVariable
{
Name = "A_ARG_TYPE_Direction" ,
DataType = "string" ,
SendsEvents = false ,
AllowedValues = new [ ]
AllowedValues = new [ ]
{
"Output" ,
"Input"
}
} ) ;
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_ProtocolInfo" ,
DataType = "string" ,
SendsEvents = false
} ) ;
new StateVariable
{
Name = "A_ARG_TYPE_ProtocolInfo" ,
DataType = "string" ,
SendsEvents = false
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_ConnectionID" ,
DataType = "ui4" ,
SendsEvents = false
} ) ;
new StateVariable
{
Name = "A_ARG_TYPE_ConnectionID" ,
DataType = "ui4" ,
SendsEvents = false
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_AVTransportID" ,
DataType = "ui4" ,
SendsEvents = false
} ) ;
new StateVariable
{
Name = "A_ARG_TYPE_AVTransportID" ,
DataType = "ui4" ,
SendsEvents = false
} ,
list . Add ( new StateVariable
{
Name = "A_ARG_TYPE_RcsID" ,
DataType = "ui4" ,
SendsEvents = false
} ) ;
new StateVariable
{
Name = "A_ARG_TYPE_RcsID" ,
DataType = "ui4" ,
SendsEvents = false
}
} ;
return list ;
}