#pragma warning disable CS1591
using System ;
using System.Collections.Generic ;
using System.Xml ;
using Emby.Dlna.Service ;
using MediaBrowser.Common.Extensions ;
using MediaBrowser.Controller.Configuration ;
using MediaBrowser.Model.Dlna ;
using Microsoft.Extensions.Logging ;
namespace Emby.Dlna.ConnectionManager
{
/// <summary>
/// Defines the <see cref="ControlHandler" />.
/// </summary>
public class ControlHandler : BaseControlHandler
{
private readonly DeviceProfile _profile ;
/// <summary>
/// Initializes a new instance of the <see cref="ControlHandler"/> class.
/// </summary>
/// <param name="config">The <see cref="IServerConfigurationManager"/> for use with the <see cref="ControlHandler"/> instance.</param>
/// <param name="logger">The <see cref="ILogger"/> for use with the <see cref="ControlHandler"/> instance.</param>
/// <param name="profile">The <see cref="DeviceProfile"/> for use with the <see cref="ControlHandler"/> instance.</param>
public ControlHandler ( IServerConfigurationManager config , ILogger logger , DeviceProfile profile )
: base ( config , logger )
{
_profile = profile ;
}
/// <inheritdoc />
protected override void WriteResult ( string methodName , IReadOnlyDictionary < string , string > methodParams , XmlWriter xmlWriter )
{
if ( string . Equals ( methodName , "GetProtocolInfo" , StringComparison . OrdinalIgnoreCase ) )
{
HandleGetProtocolInfo ( xmlWriter ) ;
return ;
}
throw new ResourceNotFoundException ( "Unexpected control request name: " + methodName ) ;
}
/// <summary>
/// Builds the response to the GetProtocolInfo request.
/// </summary>
/// <param name="xmlWriter">The <see cref="XmlWriter"/>.</param>
private void HandleGetProtocolInfo ( XmlWriter xmlWriter )
{
xmlWriter . WriteElementString ( "Source" , _profile . ProtocolInfo ) ;
xmlWriter . WriteElementString ( "Sink" , string . Empty ) ;
}
}
}