Merge pull request #4136 from BaronGreenback/Comment1

DLNA Classes - No code change, just added commenting to classes.
This commit is contained in:
Joshua M. Boniface 2020-11-16 17:11:20 -05:00 committed by GitHub
commit e86db484ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 375 additions and 155 deletions

View File

@ -1,13 +1,23 @@
#pragma warning disable CS1591
namespace Emby.Dlna.Common namespace Emby.Dlna.Common
{ {
/// <summary>
/// DLNA Query parameter type, used when quering DLNA devices via SOAP.
/// </summary>
public class Argument public class Argument
{ {
public string Name { get; set; } /// <summary>
/// Gets or sets name of the DLNA argument.
/// </summary>
public string Name { get; set; } = string.Empty;
public string Direction { get; set; } /// <summary>
/// Gets or sets the direction of the parameter.
/// </summary>
public string Direction { get; set; } = string.Empty;
public string RelatedStateVariable { get; set; } /// <summary>
/// Gets or sets the related DLNA state variable for this argument.
/// </summary>
public string RelatedStateVariable { get; set; } = string.Empty;
} }
} }

View File

@ -1,29 +1,41 @@
#pragma warning disable CS1591
using System.Globalization; using System.Globalization;
namespace Emby.Dlna.Common namespace Emby.Dlna.Common
{ {
/// <summary>
/// Defines the <see cref="DeviceIcon" />.
/// </summary>
public class DeviceIcon public class DeviceIcon
{ {
public string Url { get; set; } /// <summary>
/// Gets or sets the Url.
/// </summary>
public string Url { get; set; } = string.Empty;
public string MimeType { get; set; } /// <summary>
/// Gets or sets the MimeType.
/// </summary>
public string MimeType { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the Width.
/// </summary>
public int Width { get; set; } public int Width { get; set; }
/// <summary>
/// Gets or sets the Height.
/// </summary>
public int Height { get; set; } public int Height { get; set; }
public string Depth { get; set; } /// <summary>
/// Gets or sets the Depth.
/// </summary>
public string Depth { get; set; } = string.Empty;
/// <inheritdoc /> /// <inheritdoc />
public override string ToString() public override string ToString()
{ {
return string.Format( return string.Format(CultureInfo.InvariantCulture, "{0}x{1}", Height, Width);
CultureInfo.InvariantCulture,
"{0}x{1}",
Height,
Width);
} }
} }
} }

View File

@ -1,21 +1,36 @@
#pragma warning disable CS1591
namespace Emby.Dlna.Common namespace Emby.Dlna.Common
{ {
/// <summary>
/// Defines the <see cref="DeviceService" />.
/// </summary>
public class DeviceService public class DeviceService
{ {
public string ServiceType { get; set; } /// <summary>
/// Gets or sets the Service Type.
/// </summary>
public string ServiceType { get; set; } = string.Empty;
public string ServiceId { get; set; } /// <summary>
/// Gets or sets the Service Id.
/// </summary>
public string ServiceId { get; set; } = string.Empty;
public string ScpdUrl { get; set; } /// <summary>
/// Gets or sets the Scpd Url.
/// </summary>
public string ScpdUrl { get; set; } = string.Empty;
public string ControlUrl { get; set; } /// <summary>
/// Gets or sets the Control Url.
/// </summary>
public string ControlUrl { get; set; } = string.Empty;
public string EventSubUrl { get; set; } /// <summary>
/// Gets or sets the EventSubUrl.
/// </summary>
public string EventSubUrl { get; set; } = string.Empty;
/// <inheritdoc /> /// <inheritdoc />
public override string ToString() public override string ToString() => ServiceId;
=> ServiceId;
} }
} }

View File

@ -1,24 +1,31 @@
#pragma warning disable CS1591
using System.Collections.Generic; using System.Collections.Generic;
namespace Emby.Dlna.Common namespace Emby.Dlna.Common
{ {
/// <summary>
/// Defines the <see cref="ServiceAction" />.
/// </summary>
public class ServiceAction public class ServiceAction
{ {
/// <summary>
/// Initializes a new instance of the <see cref="ServiceAction"/> class.
/// </summary>
public ServiceAction() public ServiceAction()
{ {
ArgumentList = new List<Argument>(); ArgumentList = new List<Argument>();
} }
public string Name { get; set; } /// <summary>
/// Gets or sets the name of the action.
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// Gets the ArgumentList.
/// </summary>
public List<Argument> ArgumentList { get; } public List<Argument> ArgumentList { get; }
/// <inheritdoc /> /// <inheritdoc />
public override string ToString() public override string ToString() => Name;
{
return Name;
}
} }
} }

View File

@ -1,27 +1,34 @@
#pragma warning disable CS1591
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Emby.Dlna.Common namespace Emby.Dlna.Common
{ {
/// <summary>
/// Defines the <see cref="StateVariable" />.
/// </summary>
public class StateVariable public class StateVariable
{ {
public StateVariable() /// <summary>
{ /// Gets or sets the name of the state variable.
AllowedValues = Array.Empty<string>(); /// </summary>
} public string Name { get; set; } = string.Empty;
public string Name { get; set; } /// <summary>
/// Gets or sets the data type of the state variable.
public string DataType { get; set; } /// </summary>
public string DataType { get; set; } = string.Empty;
/// <summary>
/// Gets or sets a value indicating whether it sends events.
/// </summary>
public bool SendsEvents { get; set; } public bool SendsEvents { get; set; }
public IReadOnlyList<string> AllowedValues { get; set; } /// <summary>
/// Gets or sets the allowed values range.
/// </summary>
public IReadOnlyList<string> AllowedValues { get; set; } = Array.Empty<string>();
/// <inheritdoc /> /// <inheritdoc />
public override string ToString() public override string ToString() => Name;
=> Name;
} }
} }

View File

@ -11,59 +11,54 @@ namespace MediaBrowser.Model.Dlna
/// Gets or sets the name of the friendly. /// Gets or sets the name of the friendly.
/// </summary> /// </summary>
/// <value>The name of the friendly.</value> /// <value>The name of the friendly.</value>
public string FriendlyName { get; set; } public string FriendlyName { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the model number. /// Gets or sets the model number.
/// </summary> /// </summary>
/// <value>The model number.</value> /// <value>The model number.</value>
public string ModelNumber { get; set; } public string ModelNumber { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the serial number. /// Gets or sets the serial number.
/// </summary> /// </summary>
/// <value>The serial number.</value> /// <value>The serial number.</value>
public string SerialNumber { get; set; } public string SerialNumber { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the name of the model. /// Gets or sets the name of the model.
/// </summary> /// </summary>
/// <value>The name of the model.</value> /// <value>The name of the model.</value>
public string ModelName { get; set; } public string ModelName { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the model description. /// Gets or sets the model description.
/// </summary> /// </summary>
/// <value>The model description.</value> /// <value>The model description.</value>
public string ModelDescription { get; set; } public string ModelDescription { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the model URL. /// Gets or sets the model URL.
/// </summary> /// </summary>
/// <value>The model URL.</value> /// <value>The model URL.</value>
public string ModelUrl { get; set; } public string ModelUrl { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the manufacturer. /// Gets or sets the manufacturer.
/// </summary> /// </summary>
/// <value>The manufacturer.</value> /// <value>The manufacturer.</value>
public string Manufacturer { get; set; } public string Manufacturer { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the manufacturer URL. /// Gets or sets the manufacturer URL.
/// </summary> /// </summary>
/// <value>The manufacturer URL.</value> /// <value>The manufacturer URL.</value>
public string ManufacturerUrl { get; set; } public string ManufacturerUrl { get; set; } = string.Empty;
/// <summary> /// <summary>
/// Gets or sets the headers. /// Gets or sets the headers.
/// </summary> /// </summary>
/// <value>The headers.</value> /// <value>The headers.</value>
public HttpHeaderInfo[] Headers { get; set; } public HttpHeaderInfo[] Headers { get; set; } = Array.Empty<HttpHeaderInfo>();
public DeviceIdentification()
{
Headers = Array.Empty<HttpHeaderInfo>();
}
} }
} }

View File

@ -1,6 +1,5 @@
#nullable disable #nullable disable
#pragma warning disable CS1591 #pragma warning disable CA1819 // Properties should not return arrays
using System; using System;
using System.Linq; using System.Linq;
using System.Xml.Serialization; using System.Xml.Serialization;
@ -8,107 +7,15 @@ using MediaBrowser.Model.MediaInfo;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
{ {
/// <summary>
/// Defines the <see cref="DeviceProfile" />.
/// </summary>
[XmlRoot("Profile")] [XmlRoot("Profile")]
public class DeviceProfile public class DeviceProfile
{ {
/// <summary> /// <summary>
/// Gets or sets the name. /// Initializes a new instance of the <see cref="DeviceProfile"/> class.
/// </summary> /// </summary>
/// <value>The name.</value>
public string Name { get; set; }
[XmlIgnore]
public string Id { get; set; }
/// <summary>
/// Gets or sets the identification.
/// </summary>
/// <value>The identification.</value>
public DeviceIdentification Identification { get; set; }
public string FriendlyName { get; set; }
public string Manufacturer { get; set; }
public string ManufacturerUrl { get; set; }
public string ModelName { get; set; }
public string ModelDescription { get; set; }
public string ModelNumber { get; set; }
public string ModelUrl { get; set; }
public string SerialNumber { get; set; }
public bool EnableAlbumArtInDidl { get; set; }
public bool EnableSingleAlbumArtLimit { get; set; }
public bool EnableSingleSubtitleLimit { get; set; }
public string SupportedMediaTypes { get; set; }
public string UserId { get; set; }
public string AlbumArtPn { get; set; }
public int MaxAlbumArtWidth { get; set; }
public int MaxAlbumArtHeight { get; set; }
public int? MaxIconWidth { get; set; }
public int? MaxIconHeight { get; set; }
public int? MaxStreamingBitrate { get; set; }
public int? MaxStaticBitrate { get; set; }
public int? MusicStreamingTranscodingBitrate { get; set; }
public int? MaxStaticMusicBitrate { get; set; }
/// <summary>
/// Controls the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.
/// </summary>
public string SonyAggregationFlags { get; set; }
public string ProtocolInfo { get; set; }
public int TimelineOffsetSeconds { get; set; }
public bool RequiresPlainVideoItems { get; set; }
public bool RequiresPlainFolders { get; set; }
public bool EnableMSMediaReceiverRegistrar { get; set; }
public bool IgnoreTranscodeByteRangeRequests { get; set; }
public XmlAttribute[] XmlRootAttributes { get; set; }
/// <summary>
/// Gets or sets the direct play profiles.
/// </summary>
/// <value>The direct play profiles.</value>
public DirectPlayProfile[] DirectPlayProfiles { get; set; }
/// <summary>
/// Gets or sets the transcoding profiles.
/// </summary>
/// <value>The transcoding profiles.</value>
public TranscodingProfile[] TranscodingProfiles { get; set; }
public ContainerProfile[] ContainerProfiles { get; set; }
public CodecProfile[] CodecProfiles { get; set; }
public ResponseProfile[] ResponseProfiles { get; set; }
public SubtitleProfile[] SubtitleProfiles { get; set; }
public DeviceProfile() public DeviceProfile()
{ {
DirectPlayProfiles = Array.Empty<DirectPlayProfile>(); DirectPlayProfiles = Array.Empty<DirectPlayProfile>();
@ -126,11 +33,217 @@ namespace MediaBrowser.Model.Dlna
MusicStreamingTranscodingBitrate = 128000; MusicStreamingTranscodingBitrate = 128000;
} }
/// <summary>
/// Gets or sets the Name.
/// </summary>
public string Name { get; set; }
/// <summary>
/// Gets or sets the Id.
/// </summary>
[XmlIgnore]
public string Id { get; set; }
/// <summary>
/// Gets or sets the Identification.
/// </summary>
public DeviceIdentification Identification { get; set; }
/// <summary>
/// Gets or sets the FriendlyName.
/// </summary>
public string FriendlyName { get; set; }
/// <summary>
/// Gets or sets the Manufacturer.
/// </summary>
public string Manufacturer { get; set; }
/// <summary>
/// Gets or sets the ManufacturerUrl.
/// </summary>
public string ManufacturerUrl { get; set; }
/// <summary>
/// Gets or sets the ModelName.
/// </summary>
public string ModelName { get; set; }
/// <summary>
/// Gets or sets the ModelDescription.
/// </summary>
public string ModelDescription { get; set; }
/// <summary>
/// Gets or sets the ModelNumber.
/// </summary>
public string ModelNumber { get; set; }
/// <summary>
/// Gets or sets the ModelUrl.
/// </summary>
public string ModelUrl { get; set; }
/// <summary>
/// Gets or sets the SerialNumber.
/// </summary>
public string SerialNumber { get; set; }
/// <summary>
/// Gets or sets a value indicating whether EnableAlbumArtInDidl.
/// </summary>
public bool EnableAlbumArtInDidl { get; set; }
/// <summary>
/// Gets or sets a value indicating whether EnableSingleAlbumArtLimit.
/// </summary>
public bool EnableSingleAlbumArtLimit { get; set; }
/// <summary>
/// Gets or sets a value indicating whether EnableSingleSubtitleLimit.
/// </summary>
public bool EnableSingleSubtitleLimit { get; set; }
/// <summary>
/// Gets or sets the SupportedMediaTypes.
/// </summary>
public string SupportedMediaTypes { get; set; }
/// <summary>
/// Gets or sets the UserId.
/// </summary>
public string UserId { get; set; }
/// <summary>
/// Gets or sets the AlbumArtPn.
/// </summary>
public string AlbumArtPn { get; set; }
/// <summary>
/// Gets or sets the MaxAlbumArtWidth.
/// </summary>
public int MaxAlbumArtWidth { get; set; }
/// <summary>
/// Gets or sets the MaxAlbumArtHeight.
/// </summary>
public int MaxAlbumArtHeight { get; set; }
/// <summary>
/// Gets or sets the MaxIconWidth.
/// </summary>
public int? MaxIconWidth { get; set; }
/// <summary>
/// Gets or sets the MaxIconHeight.
/// </summary>
public int? MaxIconHeight { get; set; }
/// <summary>
/// Gets or sets the MaxStreamingBitrate.
/// </summary>
public int? MaxStreamingBitrate { get; set; }
/// <summary>
/// Gets or sets the MaxStaticBitrate.
/// </summary>
public int? MaxStaticBitrate { get; set; }
/// <summary>
/// Gets or sets the MusicStreamingTranscodingBitrate.
/// </summary>
public int? MusicStreamingTranscodingBitrate { get; set; }
/// <summary>
/// Gets or sets the MaxStaticMusicBitrate.
/// </summary>
public int? MaxStaticMusicBitrate { get; set; }
/// <summary>
/// Gets or sets the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.
/// </summary>
public string SonyAggregationFlags { get; set; }
/// <summary>
/// Gets or sets the ProtocolInfo.
/// </summary>
public string ProtocolInfo { get; set; }
/// <summary>
/// Gets or sets the TimelineOffsetSeconds.
/// </summary>
public int TimelineOffsetSeconds { get; set; }
/// <summary>
/// Gets or sets a value indicating whether RequiresPlainVideoItems.
/// </summary>
public bool RequiresPlainVideoItems { get; set; }
/// <summary>
/// Gets or sets a value indicating whether RequiresPlainFolders.
/// </summary>
public bool RequiresPlainFolders { get; set; }
/// <summary>
/// Gets or sets a value indicating whether EnableMSMediaReceiverRegistrar.
/// </summary>
public bool EnableMSMediaReceiverRegistrar { get; set; }
/// <summary>
/// Gets or sets a value indicating whether IgnoreTranscodeByteRangeRequests.
/// </summary>
public bool IgnoreTranscodeByteRangeRequests { get; set; }
/// <summary>
/// Gets or sets the XmlRootAttributes.
/// </summary>
public XmlAttribute[] XmlRootAttributes { get; set; }
/// <summary>
/// Gets or sets the direct play profiles.
/// </summary>
public DirectPlayProfile[] DirectPlayProfiles { get; set; }
/// <summary>
/// Gets or sets the transcoding profiles.
/// </summary>
public TranscodingProfile[] TranscodingProfiles { get; set; }
/// <summary>
/// Gets or sets the ContainerProfiles.
/// </summary>
public ContainerProfile[] ContainerProfiles { get; set; }
/// <summary>
/// Gets or sets the CodecProfiles.
/// </summary>
public CodecProfile[] CodecProfiles { get; set; }
/// <summary>
/// Gets or sets the ResponseProfiles.
/// </summary>
public ResponseProfile[] ResponseProfiles { get; set; }
/// <summary>
/// Gets or sets the SubtitleProfiles.
/// </summary>
public SubtitleProfile[] SubtitleProfiles { get; set; }
/// <summary>
/// The GetSupportedMediaTypes.
/// </summary>
/// <returns>The .</returns>
public string[] GetSupportedMediaTypes() public string[] GetSupportedMediaTypes()
{ {
return ContainerProfile.SplitValue(SupportedMediaTypes); return ContainerProfile.SplitValue(SupportedMediaTypes);
} }
/// <summary>
/// Gets the audio transcoding profile.
/// </summary>
/// <param name="container">The container.</param>
/// <param name="audioCodec">The audio Codec.</param>
/// <returns>A <see cref="TranscodingProfile"/>.</returns>
public TranscodingProfile GetAudioTranscodingProfile(string container, string audioCodec) public TranscodingProfile GetAudioTranscodingProfile(string container, string audioCodec)
{ {
container = (container ?? string.Empty).TrimStart('.'); container = (container ?? string.Empty).TrimStart('.');
@ -158,6 +271,13 @@ namespace MediaBrowser.Model.Dlna
return null; return null;
} }
/// <summary>
/// Gets the video transcoding profile.
/// </summary>
/// <param name="container">The container.</param>
/// <param name="audioCodec">The audio Codec.</param>
/// <param name="videoCodec">The video Codec.</param>
/// <returns>The <see cref="TranscodingProfile"/>.</returns>
public TranscodingProfile GetVideoTranscodingProfile(string container, string audioCodec, string videoCodec) public TranscodingProfile GetVideoTranscodingProfile(string container, string audioCodec, string videoCodec)
{ {
container = (container ?? string.Empty).TrimStart('.'); container = (container ?? string.Empty).TrimStart('.');
@ -190,6 +310,16 @@ namespace MediaBrowser.Model.Dlna
return null; return null;
} }
/// <summary>
/// Gets the audio media profile.
/// </summary>
/// <param name="container">The container.</param>
/// <param name="audioCodec">The audio codec.</param>
/// <param name="audioChannels">The audio channels.</param>
/// <param name="audioBitrate">The audio bitrate.</param>
/// <param name="audioSampleRate">The audio sample rate.</param>
/// <param name="audioBitDepth">The audio bit depth.</param>
/// <returns>The <see cref="ResponseProfile"/>.</returns>
public ResponseProfile GetAudioMediaProfile(string container, string audioCodec, int? audioChannels, int? audioBitrate, int? audioSampleRate, int? audioBitDepth) public ResponseProfile GetAudioMediaProfile(string container, string audioCodec, int? audioChannels, int? audioBitrate, int? audioSampleRate, int? audioBitDepth)
{ {
foreach (var i in ResponseProfiles) foreach (var i in ResponseProfiles)
@ -231,6 +361,11 @@ namespace MediaBrowser.Model.Dlna
return null; return null;
} }
/// <summary>
/// Gets the model profile condition.
/// </summary>
/// <param name="c">The c<see cref="ProfileCondition"/>.</param>
/// <returns>The <see cref="ProfileCondition"/>.</returns>
private ProfileCondition GetModelProfileCondition(ProfileCondition c) private ProfileCondition GetModelProfileCondition(ProfileCondition c)
{ {
return new ProfileCondition return new ProfileCondition
@ -242,6 +377,13 @@ namespace MediaBrowser.Model.Dlna
}; };
} }
/// <summary>
/// Gets the image media profile.
/// </summary>
/// <param name="container">The container.</param>
/// <param name="width">The width.</param>
/// <param name="height">The height.</param>
/// <returns>The <see cref="ResponseProfile"/>.</returns>
public ResponseProfile GetImageMediaProfile(string container, int? width, int? height) public ResponseProfile GetImageMediaProfile(string container, int? width, int? height)
{ {
foreach (var i in ResponseProfiles) foreach (var i in ResponseProfiles)
@ -277,6 +419,29 @@ namespace MediaBrowser.Model.Dlna
return null; return null;
} }
/// <summary>
/// Gets the video media profile.
/// </summary>
/// <param name="container">The container.</param>
/// <param name="audioCodec">The audio codec.</param>
/// <param name="videoCodec">The video codec.</param>
/// <param name="width">The width.</param>
/// <param name="height">The height.</param>
/// <param name="bitDepth">The bit depth.</param>
/// <param name="videoBitrate">The video bitrate.</param>
/// <param name="videoProfile">The video profile.</param>
/// <param name="videoLevel">The video level.</param>
/// <param name="videoFramerate">The video framerate.</param>
/// <param name="packetLength">The packet length.</param>
/// <param name="timestamp">The timestamp<see cref="TransportStreamTimestamp"/>.</param>
/// <param name="isAnamorphic">True if anamorphic.</param>
/// <param name="isInterlaced">True if interlaced.</param>
/// <param name="refFrames">The ref frames.</param>
/// <param name="numVideoStreams">The number of video streams.</param>
/// <param name="numAudioStreams">The number of audio streams.</param>
/// <param name="videoCodecTag">The video Codec tag.</param>
/// <param name="isAvc">True if Avc.</param>
/// <returns>The <see cref="ResponseProfile"/>.</returns>
public ResponseProfile GetVideoMediaProfile( public ResponseProfile GetVideoMediaProfile(
string container, string container,
string audioCodec, string audioCodec,

View File

@ -5,11 +5,20 @@ using System.Xml.Serialization;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
{ {
/// <summary>
/// Defines the <see cref="XmlAttribute" />.
/// </summary>
public class XmlAttribute public class XmlAttribute
{ {
/// <summary>
/// Gets or sets the name of the attribute.
/// </summary>
[XmlAttribute("name")] [XmlAttribute("name")]
public string Name { get; set; } public string Name { get; set; }
/// <summary>
/// Gets or sets the value of the attribute.
/// </summary>
[XmlAttribute("value")] [XmlAttribute("value")]
public string Value { get; set; } public string Value { get; set; }
} }