aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Dlna')
-rw-r--r--Emby.Dlna/ContentDirectory/ContentDirectoryService.cs4
-rw-r--r--Emby.Dlna/ContentDirectory/ControlHandler.cs2
-rw-r--r--Emby.Dlna/Didl/DidlBuilder.cs32
-rw-r--r--Emby.Dlna/DlnaManager.cs42
-rw-r--r--Emby.Dlna/Emby.Dlna.csproj6
-rw-r--r--Emby.Dlna/Eventing/DlnaEventManager.cs2
-rw-r--r--Emby.Dlna/IDlnaEventManager.cs1
-rw-r--r--Emby.Dlna/Main/DlnaEntryPoint.cs14
-rw-r--r--Emby.Dlna/PlayTo/Device.cs151
-rw-r--r--Emby.Dlna/PlayTo/PlayToController.cs42
-rw-r--r--Emby.Dlna/PlayTo/PlayToManager.cs4
-rw-r--r--Emby.Dlna/PlayTo/PlaylistItemFactory.cs4
-rw-r--r--Emby.Dlna/PlayTo/TransportCommands.cs6
-rw-r--r--Emby.Dlna/Server/DescriptionXmlBuilder.cs11
-rw-r--r--Emby.Dlna/Service/BaseControlHandler.cs2
-rw-r--r--Emby.Dlna/Service/BaseService.cs1
-rw-r--r--Emby.Dlna/Ssdp/DeviceDiscovery.cs8
17 files changed, 156 insertions, 176 deletions
diff --git a/Emby.Dlna/ContentDirectory/ContentDirectoryService.cs b/Emby.Dlna/ContentDirectory/ContentDirectoryService.cs
index 319a9f5500..389e971a66 100644
--- a/Emby.Dlna/ContentDirectory/ContentDirectoryService.cs
+++ b/Emby.Dlna/ContentDirectory/ContentDirectoryService.cs
@@ -141,7 +141,7 @@ namespace Emby.Dlna.ContentDirectory
{
var user = _userManager.GetUserById(Guid.Parse(profile.UserId));
- if (user != null)
+ if (user is not null)
{
return user;
}
@@ -153,7 +153,7 @@ namespace Emby.Dlna.ContentDirectory
{
var user = _userManager.GetUserById(Guid.Parse(userId));
- if (user != null)
+ if (user is not null)
{
return user;
}
diff --git a/Emby.Dlna/ContentDirectory/ControlHandler.cs b/Emby.Dlna/ContentDirectory/ControlHandler.cs
index fc69960fd6..abd594a3a1 100644
--- a/Emby.Dlna/ContentDirectory/ControlHandler.cs
+++ b/Emby.Dlna/ContentDirectory/ControlHandler.cs
@@ -1048,7 +1048,7 @@ namespace Emby.Dlna.ContentDirectory
ParentId = parent?.Id ?? Guid.Empty,
GroupItems = true
},
- query.DtoOptions).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i != null).ToArray();
+ query.DtoOptions).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i is not null).ToArray();
return ToResult(query.StartIndex, items);
}
diff --git a/Emby.Dlna/Didl/DidlBuilder.cs b/Emby.Dlna/Didl/DidlBuilder.cs
index 8e3a335c66..e9041186f4 100644
--- a/Emby.Dlna/Didl/DidlBuilder.cs
+++ b/Emby.Dlna/Didl/DidlBuilder.cs
@@ -153,7 +153,7 @@ namespace Emby.Dlna.Didl
writer.WriteAttributeString("restricted", "1");
writer.WriteAttributeString("id", clientId);
- if (context != null)
+ if (context is not null)
{
writer.WriteAttributeString("parentID", GetClientId(context, contextStubType));
}
@@ -191,7 +191,7 @@ namespace Emby.Dlna.Didl
private void AddVideoResource(XmlWriter writer, BaseItem video, string deviceId, Filter filter, StreamInfo streamInfo = null)
{
- if (streamInfo == null)
+ if (streamInfo is null)
{
var sources = _mediaSourceManager.GetStaticMediaSources(video, true, _user);
@@ -263,7 +263,7 @@ namespace Emby.Dlna.Didl
.FirstOrDefault(i => string.Equals(info.Format, i.Format, StringComparison.OrdinalIgnoreCase)
&& i.Method == SubtitleDeliveryMethod.External);
- if (subtitleProfile == null)
+ if (subtitleProfile is null)
{
return false;
}
@@ -392,7 +392,7 @@ namespace Emby.Dlna.Didl
var filename = url.Substring(0, url.IndexOf('?', StringComparison.Ordinal));
- var mimeType = mediaProfile == null || string.IsNullOrEmpty(mediaProfile.MimeType)
+ var mimeType = mediaProfile is null || string.IsNullOrEmpty(mediaProfile.MimeType)
? MimeTypes.GetMimeType(filename)
: mediaProfile.MimeType;
@@ -533,7 +533,7 @@ namespace Emby.Dlna.Didl
{
writer.WriteStartElement(string.Empty, "res", NsDidl);
- if (streamInfo == null)
+ if (streamInfo is null)
{
var sources = _mediaSourceManager.GetStaticMediaSources(audio, true, _user);
@@ -598,7 +598,7 @@ namespace Emby.Dlna.Didl
var filename = url.Substring(0, url.IndexOf('?', StringComparison.Ordinal));
- var mimeType = mediaProfile == null || string.IsNullOrEmpty(mediaProfile.MimeType)
+ var mimeType = mediaProfile is null || string.IsNullOrEmpty(mediaProfile.MimeType)
? MimeTypes.GetMimeType(filename)
: mediaProfile.MimeType;
@@ -652,7 +652,7 @@ namespace Emby.Dlna.Didl
{
writer.WriteAttributeString("id", clientId);
- if (context != null)
+ if (context is not null)
{
writer.WriteAttributeString("parentID", GetClientId(context, null));
}
@@ -695,13 +695,13 @@ namespace Emby.Dlna.Didl
}
// Not a samsung device
- if (secAttribute == null)
+ if (secAttribute is null)
{
return;
}
var userdata = _userDataManager.GetUserData(user, item);
- var playbackPositionTicks = (streamInfo != null && streamInfo.StartPositionTicks > 0) ? streamInfo.StartPositionTicks : userdata.PlaybackPositionTicks;
+ var playbackPositionTicks = (streamInfo is not null && streamInfo.StartPositionTicks > 0) ? streamInfo.StartPositionTicks : userdata.PlaybackPositionTicks;
if (playbackPositionTicks > 0)
{
@@ -909,14 +909,14 @@ namespace Emby.Dlna.Didl
AddValue(writer, "dc", "creator", artist, NsDc);
// If it doesn't support album artists (musicvideo), then tag as both
- if (hasAlbumArtists == null)
+ if (hasAlbumArtists is null)
{
AddAlbumArtist(writer, artist);
}
}
}
- if (hasAlbumArtists != null)
+ if (hasAlbumArtists is not null)
{
foreach (var albumArtist in hasAlbumArtists.AlbumArtists)
{
@@ -973,7 +973,7 @@ namespace Emby.Dlna.Didl
{
ImageDownloadInfo imageInfo = GetImageInfo(item);
- if (imageInfo == null)
+ if (imageInfo is null)
{
return;
}
@@ -1036,7 +1036,7 @@ namespace Emby.Dlna.Didl
{
var imageInfo = GetImageInfo(item);
- if (imageInfo == null)
+ if (imageInfo is null)
{
return;
}
@@ -1093,7 +1093,7 @@ namespace Emby.Dlna.Didl
if (item is Audio audioItem)
{
var album = audioItem.AlbumEntity;
- return album != null && album.HasImage(ImageType.Primary)
+ return album is not null && album.HasImage(ImageType.Primary)
? GetImageInfo(album, ImageType.Primary)
: null;
}
@@ -1106,7 +1106,7 @@ namespace Emby.Dlna.Didl
// For other item types check parents, but be aware that image retrieved from a parent may be not suitable for this media item.
var parentWithImage = GetFirstParentWithImageBelowUserRoot(item);
- if (parentWithImage != null)
+ if (parentWithImage is not null)
{
return GetImageInfo(parentWithImage, ImageType.Primary);
}
@@ -1116,7 +1116,7 @@ namespace Emby.Dlna.Didl
private BaseItem GetFirstParentWithImageBelowUserRoot(BaseItem item)
{
- if (item == null)
+ if (item is null)
{
return null;
}
diff --git a/Emby.Dlna/DlnaManager.cs b/Emby.Dlna/DlnaManager.cs
index 2ea2c130f2..99b3e6e7ef 100644
--- a/Emby.Dlna/DlnaManager.cs
+++ b/Emby.Dlna/DlnaManager.cs
@@ -105,9 +105,9 @@ namespace Emby.Dlna
ArgumentNullException.ThrowIfNull(deviceInfo);
var profile = GetProfiles()
- .FirstOrDefault(i => i.Identification != null && IsMatch(deviceInfo, i.Identification));
+ .FirstOrDefault(i => i.Identification is not null && IsMatch(deviceInfo, i.Identification));
- if (profile == null)
+ if (profile is null)
{
_logger.LogInformation("No matching device profile found. The default will need to be used. \n{@Profile}", deviceInfo);
}
@@ -171,8 +171,8 @@ namespace Emby.Dlna
{
ArgumentNullException.ThrowIfNull(headers);
- var profile = GetProfiles().FirstOrDefault(i => i.Identification != null && IsMatch(headers, i.Identification));
- if (profile == null)
+ var profile = GetProfiles().FirstOrDefault(i => i.Identification is not null && IsMatch(headers, i.Identification));
+ if (profile is null)
{
_logger.LogDebug("No matching device profile found. {@Headers}", headers);
}
@@ -199,6 +199,11 @@ namespace Emby.Dlna
if (headers.TryGetValue(header.Name, out StringValues value))
{
+ if (StringValues.IsNullOrEmpty(value))
+ {
+ return false;
+ }
+
switch (header.Match)
{
case HeaderMatchType.Equals:
@@ -208,7 +213,8 @@ namespace Emby.Dlna
// _logger.LogDebug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch);
return isMatch;
case HeaderMatchType.Regex:
- return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase);
+ // Can't be null, we checked above the switch statement
+ return Regex.IsMatch(value!, header.Value, RegexOptions.IgnoreCase);
default:
throw new ArgumentException("Unrecognized HeaderMatchType");
}
@@ -224,7 +230,7 @@ namespace Emby.Dlna
return _fileSystem.GetFilePaths(path)
.Where(i => string.Equals(Path.GetExtension(i), ".xml", StringComparison.OrdinalIgnoreCase))
.Select(i => ParseProfileFile(i, type))
- .Where(i => i != null)
+ .Where(i => i is not null)
.ToList()!; // We just filtered out all the nulls
}
catch (IOException)
@@ -265,14 +271,11 @@ namespace Emby.Dlna
/// <inheritdoc />
public DeviceProfile? GetProfile(string id)
{
- if (string.IsNullOrEmpty(id))
- {
- throw new ArgumentNullException(nameof(id));
- }
+ ArgumentException.ThrowIfNullOrEmpty(id);
var info = GetProfileInfosInternal().FirstOrDefault(i => string.Equals(i.Info.Id, id, StringComparison.OrdinalIgnoreCase));
- if (info == null)
+ if (info is null)
{
return null;
}
@@ -371,10 +374,7 @@ namespace Emby.Dlna
{
profile = ReserializeProfile(profile);
- if (string.IsNullOrEmpty(profile.Name))
- {
- throw new ArgumentException("Profile is missing Name");
- }
+ ArgumentException.ThrowIfNullOrEmpty(profile.Name);
var newFilename = _fileSystem.GetValidFilename(profile.Name) + ".xml";
var path = Path.Combine(UserProfilesPath, newFilename);
@@ -387,15 +387,9 @@ namespace Emby.Dlna
{
profile = ReserializeProfile(profile);
- if (string.IsNullOrEmpty(profile.Id))
- {
- throw new ArgumentException("Profile is missing Id");
- }
+ ArgumentException.ThrowIfNullOrEmpty(profile.Id);
- if (string.IsNullOrEmpty(profile.Name))
- {
- throw new ArgumentException("Profile is missing Name");
- }
+ ArgumentException.ThrowIfNullOrEmpty(profile.Name);
var current = GetProfileInfosInternal().First(i => string.Equals(i.Info.Id, profileId, StringComparison.OrdinalIgnoreCase));
if (current.Info.Type == DeviceProfileType.System)
@@ -470,7 +464,7 @@ namespace Emby.Dlna
var resource = GetType().Namespace + ".Images." + filename.ToLowerInvariant();
var stream = _assembly.GetManifestResourceStream(resource);
- if (stream == null)
+ if (stream is null)
{
return null;
}
diff --git a/Emby.Dlna/Emby.Dlna.csproj b/Emby.Dlna/Emby.Dlna.csproj
index d59b43ef03..7ffb7118aa 100644
--- a/Emby.Dlna/Emby.Dlna.csproj
+++ b/Emby.Dlna/Emby.Dlna.csproj
@@ -17,13 +17,13 @@
</ItemGroup>
<PropertyGroup>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net7.0</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+ <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
<!-- Code Analyzers-->
@@ -80,7 +80,7 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
</ItemGroup>
</Project>
diff --git a/Emby.Dlna/Eventing/DlnaEventManager.cs b/Emby.Dlna/Eventing/DlnaEventManager.cs
index 68895a7fed..c0eacf5d83 100644
--- a/Emby.Dlna/Eventing/DlnaEventManager.cs
+++ b/Emby.Dlna/Eventing/DlnaEventManager.cs
@@ -35,7 +35,7 @@ namespace Emby.Dlna.Eventing
public EventSubscriptionResponse RenewEventSubscription(string subscriptionId, string notificationType, string requestedTimeoutString, string callbackUrl)
{
var subscription = GetSubscription(subscriptionId, false);
- if (subscription != null)
+ if (subscription is not null)
{
subscription.TimeoutSeconds = ParseTimeout(requestedTimeoutString) ?? 300;
int timeoutSeconds = subscription.TimeoutSeconds;
diff --git a/Emby.Dlna/IDlnaEventManager.cs b/Emby.Dlna/IDlnaEventManager.cs
index eea030d6d1..bb1eeb963d 100644
--- a/Emby.Dlna/IDlnaEventManager.cs
+++ b/Emby.Dlna/IDlnaEventManager.cs
@@ -1,3 +1,4 @@
+#nullable disable
#pragma warning disable CS1591
namespace Emby.Dlna
diff --git a/Emby.Dlna/Main/DlnaEntryPoint.cs b/Emby.Dlna/Main/DlnaEntryPoint.cs
index 15021c19d6..2dc079254a 100644
--- a/Emby.Dlna/Main/DlnaEntryPoint.cs
+++ b/Emby.Dlna/Main/DlnaEntryPoint.cs
@@ -199,7 +199,7 @@ namespace Emby.Dlna.Main
{
try
{
- if (_communicationsServer == null)
+ if (_communicationsServer is null)
{
var enableMultiSocketBinding = OperatingSystem.IsWindows() ||
OperatingSystem.IsLinux();
@@ -222,7 +222,7 @@ namespace Emby.Dlna.Main
{
try
{
- if (communicationsServer != null)
+ if (communicationsServer is not null)
{
((DeviceDiscovery)_deviceDiscovery).Start(communicationsServer);
}
@@ -253,7 +253,7 @@ namespace Emby.Dlna.Main
return;
}
- if (_publisher != null)
+ if (_publisher is not null)
{
return;
}
@@ -382,7 +382,7 @@ namespace Emby.Dlna.Main
{
lock (_syncLock)
{
- if (_manager != null)
+ if (_manager is not null)
{
return;
}
@@ -417,7 +417,7 @@ namespace Emby.Dlna.Main
{
lock (_syncLock)
{
- if (_manager != null)
+ if (_manager is not null)
{
try
{
@@ -436,7 +436,7 @@ namespace Emby.Dlna.Main
public void DisposeDevicePublisher()
{
- if (_publisher != null)
+ if (_publisher is not null)
{
_logger.LogInformation("Disposing SsdpDevicePublisher");
_publisher.Dispose();
@@ -456,7 +456,7 @@ namespace Emby.Dlna.Main
DisposePlayToManager();
DisposeDeviceDiscovery();
- if (_communicationsServer != null)
+ if (_communicationsServer is not null)
{
_logger.LogInformation("Disposing SsdpCommunicationsServer");
_communicationsServer.Dispose();
diff --git a/Emby.Dlna/PlayTo/Device.cs b/Emby.Dlna/PlayTo/Device.cs
index 34981bd3f4..9c476119df 100644
--- a/Emby.Dlna/PlayTo/Device.cs
+++ b/Emby.Dlna/PlayTo/Device.cs
@@ -220,14 +220,14 @@ namespace Emby.Dlna.PlayTo
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetMute");
- if (command == null)
+ if (command is null)
{
return false;
}
var service = GetServiceRenderingControl();
- if (service == null)
+ if (service is null)
{
return false;
}
@@ -260,14 +260,14 @@ namespace Emby.Dlna.PlayTo
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetVolume");
- if (command == null)
+ if (command is null)
{
return;
}
var service = GetServiceRenderingControl();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
@@ -291,14 +291,14 @@ namespace Emby.Dlna.PlayTo
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Seek");
- if (command == null)
+ if (command is null)
{
return;
}
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
@@ -324,7 +324,7 @@ namespace Emby.Dlna.PlayTo
_logger.LogDebug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", Properties.Name, url, header);
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetAVTransportURI");
- if (command == null)
+ if (command is null)
{
return;
}
@@ -337,7 +337,7 @@ namespace Emby.Dlna.PlayTo
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
@@ -381,7 +381,7 @@ namespace Emby.Dlna.PlayTo
_logger.LogDebug("{PropertyName} - SetNextAvTransport Uri: {Url} DlnaHeaders: {Header}", Properties.Name, url, header);
var command = avCommands.ServiceActions.FirstOrDefault(c => string.Equals(c.Name, "SetNextAVTransportURI", StringComparison.OrdinalIgnoreCase));
- if (command == null)
+ if (command is null)
{
return;
}
@@ -394,7 +394,7 @@ namespace Emby.Dlna.PlayTo
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
@@ -418,13 +418,13 @@ namespace Emby.Dlna.PlayTo
private Task SetPlay(TransportCommands avCommands, CancellationToken cancellationToken)
{
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "Play");
- if (command == null)
+ if (command is null)
{
return Task.CompletedTask;
}
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
@@ -440,7 +440,7 @@ namespace Emby.Dlna.PlayTo
public async Task SetPlay(CancellationToken cancellationToken)
{
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
- if (avCommands == null)
+ if (avCommands is null)
{
return;
}
@@ -455,7 +455,7 @@ namespace Emby.Dlna.PlayTo
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Stop");
- if (command == null)
+ if (command is null)
{
return;
}
@@ -479,7 +479,7 @@ namespace Emby.Dlna.PlayTo
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Pause");
- if (command == null)
+ if (command is null)
{
return;
}
@@ -513,7 +513,7 @@ namespace Emby.Dlna.PlayTo
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
- if (avCommands == null)
+ if (avCommands is null)
{
return;
}
@@ -538,12 +538,12 @@ namespace Emby.Dlna.PlayTo
var currentObject = tuple.Track;
- if (tuple.Success && currentObject == null)
+ if (tuple.Success && currentObject is null)
{
currentObject = await GetMediaInfo(avCommands, cancellationToken).ConfigureAwait(false);
}
- if (currentObject != null)
+ if (currentObject is not null)
{
UpdateMediaInfo(currentObject, transportState.Value);
}
@@ -585,7 +585,7 @@ namespace Emby.Dlna.PlayTo
if (_connectFailureCount >= 3)
{
var action = OnDeviceUnavailable;
- if (action != null)
+ if (action is not null)
{
_logger.LogDebug("Disposing device due to loss of connection");
action();
@@ -607,14 +607,14 @@ namespace Emby.Dlna.PlayTo
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "GetVolume");
- if (command == null)
+ if (command is null)
{
return;
}
var service = GetServiceRenderingControl();
- if (service == null)
+ if (service is null)
{
return;
}
@@ -626,12 +626,12 @@ namespace Emby.Dlna.PlayTo
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
- if (result == null || result.Document == null)
+ if (result is null || result.Document is null)
{
return;
}
- var volume = result.Document.Descendants(UPnpNamespaces.RenderingControl + "GetVolumeResponse").Select(i => i.Element("CurrentVolume")).FirstOrDefault(i => i != null);
+ var volume = result.Document.Descendants(UPnpNamespaces.RenderingControl + "GetVolumeResponse").Select(i => i.Element("CurrentVolume")).FirstOrDefault(i => i is not null);
var volumeValue = volume?.Value;
if (string.IsNullOrWhiteSpace(volumeValue))
@@ -657,14 +657,14 @@ namespace Emby.Dlna.PlayTo
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "GetMute");
- if (command == null)
+ if (command is null)
{
return;
}
var service = GetServiceRenderingControl();
- if (service == null)
+ if (service is null)
{
return;
}
@@ -676,14 +676,14 @@ namespace Emby.Dlna.PlayTo
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
- if (result == null || result.Document == null)
+ if (result is null || result.Document is null)
{
return;
}
var valueNode = result.Document.Descendants(UPnpNamespaces.RenderingControl + "GetMuteResponse")
.Select(i => i.Element("CurrentMute"))
- .FirstOrDefault(i => i != null);
+ .FirstOrDefault(i => i is not null);
IsMuted = string.Equals(valueNode?.Value, "1", StringComparison.OrdinalIgnoreCase);
}
@@ -691,13 +691,13 @@ namespace Emby.Dlna.PlayTo
private async Task<TransportState?> GetTransportInfo(TransportCommands avCommands, CancellationToken cancellationToken)
{
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetTransportInfo");
- if (command == null)
+ if (command is null)
{
return null;
}
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
return null;
}
@@ -709,17 +709,17 @@ namespace Emby.Dlna.PlayTo
avCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
- if (result == null || result.Document == null)
+ if (result is null || result.Document is null)
{
return null;
}
var transportState =
- result.Document.Descendants(UPnpNamespaces.AvTransport + "GetTransportInfoResponse").Select(i => i.Element("CurrentTransportState")).FirstOrDefault(i => i != null);
+ result.Document.Descendants(UPnpNamespaces.AvTransport + "GetTransportInfoResponse").Select(i => i.Element("CurrentTransportState")).FirstOrDefault(i => i is not null);
var transportStateValue = transportState?.Value;
- if (transportStateValue != null
+ if (transportStateValue is not null
&& Enum.TryParse(transportStateValue, true, out TransportState state))
{
return state;
@@ -731,19 +731,19 @@ namespace Emby.Dlna.PlayTo
private async Task<UBaseObject> GetMediaInfo(TransportCommands avCommands, CancellationToken cancellationToken)
{
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetMediaInfo");
- if (command == null)
+ if (command is null)
{
return null;
}
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
- if (rendererCommands == null)
+ if (rendererCommands is null)
{
return null;
}
@@ -755,14 +755,14 @@ namespace Emby.Dlna.PlayTo
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
- if (result == null || result.Document == null)
+ if (result is null || result.Document is null)
{
return null;
}
var track = result.Document.Descendants("CurrentURIMetaData").FirstOrDefault();
- if (track == null)
+ if (track is null)
{
return null;
}
@@ -778,7 +778,7 @@ namespace Emby.Dlna.PlayTo
track = result.Document.Descendants("CurrentURI").FirstOrDefault();
- if (track == null)
+ if (track is null)
{
return null;
}
@@ -801,21 +801,21 @@ namespace Emby.Dlna.PlayTo
private async Task<(bool Success, UBaseObject Track)> GetPositionInfo(TransportCommands avCommands, CancellationToken cancellationToken)
{
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetPositionInfo");
- if (command == null)
+ if (command is null)
{
return (false, null);
}
var service = GetAvTransportService();
- if (service == null)
+ if (service is null)
{
throw new InvalidOperationException("Unable to find service");
}
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
- if (rendererCommands == null)
+ if (rendererCommands is null)
{
return (false, null);
}
@@ -827,15 +827,15 @@ namespace Emby.Dlna.PlayTo
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
- if (result == null || result.Document == null)
+ if (result is null || result.Document is null)
{
return (false, null);
}
- var trackUriElem = result.Document.Descendants(UPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackURI")).FirstOrDefault(i => i != null);
+ var trackUriElem = result.Document.Descendants(UPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackURI")).FirstOrDefault(i => i is not null);
var trackUri = trackUriElem?.Value;
- var durationElem = result.Document.Descendants(UPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackDuration")).FirstOrDefault(i => i != null);
+ var durationElem = result.Document.Descendants(UPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackDuration")).FirstOrDefault(i => i is not null);
var duration = durationElem?.Value;
if (!string.IsNullOrWhiteSpace(duration)
@@ -848,7 +848,7 @@ namespace Emby.Dlna.PlayTo
Duration = null;
}
- var positionElem = result.Document.Descendants(UPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("RelTime")).FirstOrDefault(i => i != null);
+ var positionElem = result.Document.Descendants(UPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("RelTime")).FirstOrDefault(i => i is not null);
var position = positionElem?.Value;
if (!string.IsNullOrWhiteSpace(position) && !string.Equals(position, "NOT_IMPLEMENTED", StringComparison.OrdinalIgnoreCase))
@@ -858,7 +858,7 @@ namespace Emby.Dlna.PlayTo
var track = result.Document.Descendants("TrackMetaData").FirstOrDefault();
- if (track == null)
+ if (track is null)
{
// If track is null, some vendors do this, use GetMediaInfo instead.
return (true, null);
@@ -882,7 +882,7 @@ namespace Emby.Dlna.PlayTo
_logger.LogError(ex, "Uncaught exception while parsing xml");
}
- if (uPnpResponse == null)
+ if (uPnpResponse is null)
{
_logger.LogError("Failed to parse xml: \n {Xml}", trackString);
return (true, null);
@@ -959,11 +959,11 @@ namespace Emby.Dlna.PlayTo
var resElement = container.Element(UPnpNamespaces.Res);
- if (resElement != null)
+ if (resElement is not null)
{
var info = resElement.Attribute(UPnpNamespaces.ProtocolInfo);
- if (info != null && !string.IsNullOrWhiteSpace(info.Value))
+ if (info is not null && !string.IsNullOrWhiteSpace(info.Value))
{
return info.Value.Split(':');
}
@@ -974,7 +974,7 @@ namespace Emby.Dlna.PlayTo
private async Task<TransportCommands> GetAVProtocolAsync(CancellationToken cancellationToken)
{
- if (AvCommands != null)
+ if (AvCommands is not null)
{
return AvCommands;
}
@@ -985,7 +985,7 @@ namespace Emby.Dlna.PlayTo
}
var avService = GetAvTransportService();
- if (avService == null)
+ if (avService is null)
{
return null;
}
@@ -995,7 +995,7 @@ namespace Emby.Dlna.PlayTo
var httpClient = new DlnaHttpClient(_logger, _httpClientFactory);
var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
- if (document == null)
+ if (document is null)
{
return null;
}
@@ -1006,7 +1006,7 @@ namespace Emby.Dlna.PlayTo
private async Task<TransportCommands> GetRenderingProtocolAsync(CancellationToken cancellationToken)
{
- if (RendererCommands != null)
+ if (RendererCommands is not null)
{
return RendererCommands;
}
@@ -1017,17 +1017,14 @@ namespace Emby.Dlna.PlayTo
}
var avService = GetServiceRenderingControl();
- if (avService == null)
- {
- throw new ArgumentException("Device AvService is null");
- }
+ ArgumentNullException.ThrowIfNull(avService);
string url = NormalizeUrl(Properties.BaseUrl, avService.ScpdUrl);
var httpClient = new DlnaHttpClient(_logger, _httpClientFactory);
_logger.LogDebug("Dlna Device.GetRenderingProtocolAsync");
var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
- if (document == null)
+ if (document is null)
{
return null;
}
@@ -1062,7 +1059,7 @@ namespace Emby.Dlna.PlayTo
var ssdpHttpClient = new DlnaHttpClient(logger, httpClientFactory);
var document = await ssdpHttpClient.GetDataAsync(url.ToString(), cancellationToken).ConfigureAwait(false);
- if (document == null)
+ if (document is null)
{
return null;
}
@@ -1070,13 +1067,13 @@ namespace Emby.Dlna.PlayTo
var friendlyNames = new List<string>();
var name = document.Descendants(UPnpNamespaces.Ud.GetName("friendlyName")).FirstOrDefault();
- if (name != null && !string.IsNullOrWhiteSpace(name.Value))
+ if (name is not null && !string.IsNullOrWhiteSpace(name.Value))
{
friendlyNames.Add(name.Value);
}
var room = document.Descendants(UPnpNamespaces.Ud.GetName("roomName")).FirstOrDefault();
- if (room != null && !string.IsNullOrWhiteSpace(room.Value))
+ if (room is not null && !string.IsNullOrWhiteSpace(room.Value))
{
friendlyNames.Add(room.Value);
}
@@ -1088,74 +1085,74 @@ namespace Emby.Dlna.PlayTo
};
var model = document.Descendants(UPnpNamespaces.Ud.GetName("modelName")).FirstOrDefault();
- if (model != null)
+ if (model is not null)
{
deviceProperties.ModelName = model.Value;
}
var modelNumber = document.Descendants(UPnpNamespaces.Ud.GetName("modelNumber")).FirstOrDefault();
- if (modelNumber != null)
+ if (modelNumber is not null)
{
deviceProperties.ModelNumber = modelNumber.Value;
}
var uuid = document.Descendants(UPnpNamespaces.Ud.GetName("UDN")).FirstOrDefault();
- if (uuid != null)
+ if (uuid is not null)
{
deviceProperties.UUID = uuid.Value;
}
var manufacturer = document.Descendants(UPnpNamespaces.Ud.GetName("manufacturer")).FirstOrDefault();
- if (manufacturer != null)
+ if (manufacturer is not null)
{
deviceProperties.Manufacturer = manufacturer.Value;
}
var manufacturerUrl = document.Descendants(UPnpNamespaces.Ud.GetName("manufacturerURL")).FirstOrDefault();
- if (manufacturerUrl != null)
+ if (manufacturerUrl is not null)
{
deviceProperties.ManufacturerUrl = manufacturerUrl.Value;
}
var presentationUrl = document.Descendants(UPnpNamespaces.Ud.GetName("presentationURL")).FirstOrDefault();
- if (presentationUrl != null)
+ if (presentationUrl is not null)
{
deviceProperties.PresentationUrl = presentationUrl.Value;
}
var modelUrl = document.Descendants(UPnpNamespaces.Ud.GetName("modelURL")).FirstOrDefault();
- if (modelUrl != null)
+ if (modelUrl is not null)
{
deviceProperties.ModelUrl = modelUrl.Value;
}
var serialNumber = document.Descendants(UPnpNamespaces.Ud.GetName("serialNumber")).FirstOrDefault();
- if (serialNumber != null)
+ if (serialNumber is not null)
{
deviceProperties.SerialNumber = serialNumber.Value;
}
var modelDescription = document.Descendants(UPnpNamespaces.Ud.GetName("modelDescription")).FirstOrDefault();
- if (modelDescription != null)
+ if (modelDescription is not null)
{
deviceProperties.ModelDescription = modelDescription.Value;
}
var icon = document.Descendants(UPnpNamespaces.Ud.GetName("icon")).FirstOrDefault();
- if (icon != null)
+ if (icon is not null)
{
deviceProperties.Icon = CreateIcon(icon);
}
foreach (var services in document.Descendants(UPnpNamespaces.Ud.GetName("serviceList")))
{
- if (services == null)
+ if (services is null)
{
continue;
}
var servicesList = services.Descendants(UPnpNamespaces.Ud.GetName("service"));
- if (servicesList == null)
+ if (servicesList is null)
{
continue;
}
@@ -1164,7 +1161,7 @@ namespace Emby.Dlna.PlayTo
{
var service = Create(element);
- if (service != null)
+ if (service is not null)
{
deviceProperties.Services.Add(service);
}
@@ -1212,14 +1209,14 @@ namespace Emby.Dlna.PlayTo
var previousMediaInfo = CurrentMediaInfo;
CurrentMediaInfo = mediaInfo;
- if (mediaInfo == null)
+ if (mediaInfo is null)
{
- if (previousMediaInfo != null)
+ if (previousMediaInfo is not null)
{
OnPlaybackStop(previousMediaInfo);
}
}
- else if (previousMediaInfo == null)
+ else if (previousMediaInfo is null)
{
if (state != TransportState.STOPPED)
{
diff --git a/Emby.Dlna/PlayTo/PlayToController.cs b/Emby.Dlna/PlayTo/PlayToController.cs
index 65367e24f2..4cda1d8b7a 100644
--- a/Emby.Dlna/PlayTo/PlayToController.cs
+++ b/Emby.Dlna/PlayTo/PlayToController.cs
@@ -84,7 +84,7 @@ namespace Emby.Dlna.PlayTo
_mediaEncoder = mediaEncoder;
}
- public bool IsSessionActive => !_disposed && _device != null;
+ public bool IsSessionActive => !_disposed && _device is not null;
public bool SupportsMediaControl => IsSessionActive;
@@ -156,7 +156,7 @@ namespace Emby.Dlna.PlayTo
try
{
var streamInfo = StreamParams.ParseFromUrl(e.OldMediaInfo.Url, _libraryManager, _mediaSourceManager);
- if (streamInfo.Item != null)
+ if (streamInfo.Item is not null)
{
var positionTicks = GetProgressPositionTicks(streamInfo);
@@ -164,7 +164,7 @@ namespace Emby.Dlna.PlayTo
}
streamInfo = StreamParams.ParseFromUrl(e.NewMediaInfo.Url, _libraryManager, _mediaSourceManager);
- if (streamInfo.Item == null)
+ if (streamInfo.Item is null)
{
return;
}
@@ -199,7 +199,7 @@ namespace Emby.Dlna.PlayTo
{
var streamInfo = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager, _mediaSourceManager);
- if (streamInfo.Item == null)
+ if (streamInfo.Item is null)
{
return;
}
@@ -210,7 +210,7 @@ namespace Emby.Dlna.PlayTo
var mediaSource = await streamInfo.GetMediaSource(CancellationToken.None).ConfigureAwait(false);
- var duration = mediaSource == null
+ var duration = mediaSource is null
? _device.Duration?.Ticks
: mediaSource.RunTimeTicks;
@@ -268,7 +268,7 @@ namespace Emby.Dlna.PlayTo
{
var info = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager, _mediaSourceManager);
- if (info.Item != null)
+ if (info.Item is not null)
{
var progress = GetProgressInfo(info);
@@ -299,7 +299,7 @@ namespace Emby.Dlna.PlayTo
var info = StreamParams.ParseFromUrl(mediaUrl, _libraryManager, _mediaSourceManager);
- if (info.Item != null)
+ if (info.Item is not null)
{
var progress = GetProgressInfo(info);
@@ -441,11 +441,11 @@ namespace Emby.Dlna.PlayTo
{
var media = _device.CurrentMediaInfo;
- if (media != null)
+ if (media is not null)
{
var info = StreamParams.ParseFromUrl(media.Url, _libraryManager, _mediaSourceManager);
- if (info.Item != null && !EnableClientSideSeek(info))
+ if (info.Item is not null && !EnableClientSideSeek(info))
{
var user = _session.UserId.Equals(default)
? null
@@ -760,11 +760,11 @@ namespace Emby.Dlna.PlayTo
{
var media = _device.CurrentMediaInfo;
- if (media != null)
+ if (media is not null)
{
var info = StreamParams.ParseFromUrl(media.Url, _libraryManager, _mediaSourceManager);
- if (info.Item != null)
+ if (info.Item is not null)
{
var newPosition = GetProgressPositionTicks(info) ?? 0;
@@ -791,11 +791,11 @@ namespace Emby.Dlna.PlayTo
{
var media = _device.CurrentMediaInfo;
- if (media != null)
+ if (media is not null)
{
var info = StreamParams.ParseFromUrl(media.Url, _libraryManager, _mediaSourceManager);
- if (info.Item != null)
+ if (info.Item is not null)
{
var newPosition = GetProgressPositionTicks(info) ?? 0;
@@ -865,7 +865,7 @@ namespace Emby.Dlna.PlayTo
throw new ObjectDisposedException(GetType().Name);
}
- if (_device == null)
+ if (_device is null)
{
return Task.CompletedTask;
}
@@ -916,7 +916,7 @@ namespace Emby.Dlna.PlayTo
public async Task<MediaSourceInfo> GetMediaSource(CancellationToken cancellationToken)
{
- if (_mediaSource != null)
+ if (_mediaSource is not null)
{
return _mediaSource;
}
@@ -926,7 +926,7 @@ namespace Emby.Dlna.PlayTo
return null;
}
- if (_mediaSourceManager != null)
+ if (_mediaSourceManager is not null)
{
_mediaSource = await _mediaSourceManager.GetMediaSource(Item, MediaSourceId, LiveStreamId, false, cancellationToken).ConfigureAwait(false);
}
@@ -936,10 +936,7 @@ namespace Emby.Dlna.PlayTo
private static Guid GetItemId(string url)
{
- if (string.IsNullOrEmpty(url))
- {
- throw new ArgumentNullException(nameof(url));
- }
+ ArgumentException.ThrowIfNullOrEmpty(url);
var parts = url.Split('/');
@@ -962,10 +959,7 @@ namespace Emby.Dlna.PlayTo
public static StreamParams ParseFromUrl(string url, ILibraryManager libraryManager, IMediaSourceManager mediaSourceManager)
{
- if (string.IsNullOrEmpty(url))
- {
- throw new ArgumentNullException(nameof(url));
- }
+ ArgumentException.ThrowIfNullOrEmpty(url);
var request = new StreamParams
{
diff --git a/Emby.Dlna/PlayTo/PlayToManager.cs b/Emby.Dlna/PlayTo/PlayToManager.cs
index 294bda5b6a..f4a9a90af4 100644
--- a/Emby.Dlna/PlayTo/PlayToManager.cs
+++ b/Emby.Dlna/PlayTo/PlayToManager.cs
@@ -176,10 +176,10 @@ namespace Emby.Dlna.PlayTo
var controller = sessionInfo.SessionControllers.OfType<PlayToController>().FirstOrDefault();
- if (controller == null)
+ if (controller is null)
{
var device = await Device.CreateuPnpDeviceAsync(uri, _httpClientFactory, _logger, cancellationToken).ConfigureAwait(false);
- if (device == null)
+ if (device is null)
{
_logger.LogError("Ignoring device as xml response is invalid.");
return;
diff --git a/Emby.Dlna/PlayTo/PlaylistItemFactory.cs b/Emby.Dlna/PlayTo/PlaylistItemFactory.cs
index 6574913032..53cd05cfda 100644
--- a/Emby.Dlna/PlayTo/PlaylistItemFactory.cs
+++ b/Emby.Dlna/PlayTo/PlaylistItemFactory.cs
@@ -29,7 +29,7 @@ namespace Emby.Dlna.PlayTo
var directPlay = profile.DirectPlayProfiles
.FirstOrDefault(i => i.Type == DlnaProfileType.Photo && IsSupported(i, item));
- if (directPlay != null)
+ if (directPlay is not null)
{
playlistItem.StreamInfo.PlayMethod = PlayMethod.DirectStream;
playlistItem.StreamInfo.Container = Path.GetExtension(item.Path);
@@ -40,7 +40,7 @@ namespace Emby.Dlna.PlayTo
var transcodingProfile = profile.TranscodingProfiles
.FirstOrDefault(i => i.Type == DlnaProfileType.Photo);
- if (transcodingProfile != null)
+ if (transcodingProfile is not null)
{
playlistItem.StreamInfo.PlayMethod = PlayMethod.Transcode;
playlistItem.StreamInfo.Container = "." + transcodingProfile.Container.TrimStart('.');
diff --git a/Emby.Dlna/PlayTo/TransportCommands.cs b/Emby.Dlna/PlayTo/TransportCommands.cs
index 9c3a9103be..c463727329 100644
--- a/Emby.Dlna/PlayTo/TransportCommands.cs
+++ b/Emby.Dlna/PlayTo/TransportCommands.cs
@@ -31,7 +31,7 @@ namespace Emby.Dlna.PlayTo
var stateValues = document.Descendants(UPnpNamespaces.ServiceStateTable).FirstOrDefault();
- if (stateValues != null)
+ if (stateValues is not null)
{
foreach (var container in stateValues.Elements(UPnpNamespaces.Svc + "stateVariable"))
{
@@ -77,7 +77,7 @@ namespace Emby.Dlna.PlayTo
var element = container.Descendants(UPnpNamespaces.Svc + "allowedValueList")
.FirstOrDefault();
- if (element != null)
+ if (element is not null)
{
var values = element.Descendants(UPnpNamespaces.Svc + "allowedValue");
@@ -167,7 +167,7 @@ namespace Emby.Dlna.PlayTo
{
var state = StateVariables.FirstOrDefault(a => string.Equals(a.Name, argument.RelatedStateVariable, StringComparison.OrdinalIgnoreCase));
- if (state != null)
+ if (state is not null)
{
var sendValue = state.AllowedValues.FirstOrDefault(a => string.Equals(a, commandParameter, StringComparison.OrdinalIgnoreCase)) ??
(state.AllowedValues.Count > 0 ? state.AllowedValues[0] : value);
diff --git a/Emby.Dlna/Server/DescriptionXmlBuilder.cs b/Emby.Dlna/Server/DescriptionXmlBuilder.cs
index 8adaaea77e..d00df781d6 100644
--- a/Emby.Dlna/Server/DescriptionXmlBuilder.cs
+++ b/Emby.Dlna/Server/DescriptionXmlBuilder.cs
@@ -22,15 +22,8 @@ namespace Emby.Dlna.Server
public DescriptionXmlBuilder(DeviceProfile profile, string serverUdn, string serverAddress, string serverName, string serverId)
{
- if (string.IsNullOrEmpty(serverUdn))
- {
- throw new ArgumentNullException(nameof(serverUdn));
- }
-
- if (string.IsNullOrEmpty(serverAddress))
- {
- throw new ArgumentNullException(nameof(serverAddress));
- }
+ ArgumentException.ThrowIfNullOrEmpty(serverUdn);
+ ArgumentException.ThrowIfNullOrEmpty(serverAddress);
_profile = profile;
_serverUdn = serverUdn;
diff --git a/Emby.Dlna/Service/BaseControlHandler.cs b/Emby.Dlna/Service/BaseControlHandler.cs
index 9c423b3958..bff5307a49 100644
--- a/Emby.Dlna/Service/BaseControlHandler.cs
+++ b/Emby.Dlna/Service/BaseControlHandler.cs
@@ -173,7 +173,7 @@ namespace Emby.Dlna.Service
}
}
- if (localName != null && namespaceURI != null)
+ if (localName is not null && namespaceURI is not null)
{
return new ControlRequestInfo(localName, namespaceURI);
}
diff --git a/Emby.Dlna/Service/BaseService.cs b/Emby.Dlna/Service/BaseService.cs
index 68fd987585..67e7bf6a63 100644
--- a/Emby.Dlna/Service/BaseService.cs
+++ b/Emby.Dlna/Service/BaseService.cs
@@ -1,3 +1,4 @@
+#nullable disable
#pragma warning disable CS1591
using System.Net.Http;
diff --git a/Emby.Dlna/Ssdp/DeviceDiscovery.cs b/Emby.Dlna/Ssdp/DeviceDiscovery.cs
index 391dda1479..8a4e5ff455 100644
--- a/Emby.Dlna/Ssdp/DeviceDiscovery.cs
+++ b/Emby.Dlna/Ssdp/DeviceDiscovery.cs
@@ -71,7 +71,7 @@ namespace Emby.Dlna.Ssdp
{
lock (_syncLock)
{
- if (_listenerCount > 0 && _deviceLocator == null && _commsServer != null)
+ if (_listenerCount > 0 && _deviceLocator is null && _commsServer is not null)
{
_deviceLocator = new SsdpDeviceLocator(_commsServer);
@@ -97,7 +97,7 @@ namespace Emby.Dlna.Ssdp
{
var originalHeaders = e.DiscoveredDevice.ResponseHeaders;
- var headerDict = originalHeaders == null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
+ var headerDict = originalHeaders is null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
var headers = headerDict.ToDictionary(i => i.Key, i => i.Value.Value.FirstOrDefault(), StringComparer.OrdinalIgnoreCase);
@@ -116,7 +116,7 @@ namespace Emby.Dlna.Ssdp
{
var originalHeaders = e.DiscoveredDevice.ResponseHeaders;
- var headerDict = originalHeaders == null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
+ var headerDict = originalHeaders is null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
var headers = headerDict.ToDictionary(i => i.Key, i => i.Value.Value.FirstOrDefault(), StringComparer.OrdinalIgnoreCase);
@@ -136,7 +136,7 @@ namespace Emby.Dlna.Ssdp
if (!_disposed)
{
_disposed = true;
- if (_deviceLocator != null)
+ if (_deviceLocator is not null)
{
_deviceLocator.Dispose();
_deviceLocator = null;