|
@@ -357,18 +357,26 @@ namespace MediaBrowser.Dlna.PlayTo
|
|
|
return;
|
|
|
|
|
|
((Timer)sender).Stop();
|
|
|
- var hasTrack = await GetPositionInfo().ConfigureAwait(false);
|
|
|
|
|
|
- // TODO: Why make these requests if hasTrack==false?
|
|
|
- if (_count > 4)
|
|
|
+ try
|
|
|
{
|
|
|
- await GetTransportInfo().ConfigureAwait(false);
|
|
|
- if (!hasTrack)
|
|
|
+ var hasTrack = await GetPositionInfo().ConfigureAwait(false);
|
|
|
+
|
|
|
+ // TODO: Why make these requests if hasTrack==false?
|
|
|
+ if (_count > 4)
|
|
|
{
|
|
|
- await GetMediaInfo().ConfigureAwait(false);
|
|
|
+ await GetTransportInfo().ConfigureAwait(false);
|
|
|
+ if (!hasTrack)
|
|
|
+ {
|
|
|
+ await GetMediaInfo().ConfigureAwait(false);
|
|
|
+ }
|
|
|
+ await GetVolume().ConfigureAwait(false);
|
|
|
+ _count = 0;
|
|
|
}
|
|
|
- await GetVolume().ConfigureAwait(false);
|
|
|
- _count = 0;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ _logger.ErrorException("Error updating device info", ex);
|
|
|
}
|
|
|
|
|
|
_count++;
|
|
@@ -390,18 +398,8 @@ namespace MediaBrowser.Dlna.PlayTo
|
|
|
throw new InvalidOperationException("Unable to find service");
|
|
|
}
|
|
|
|
|
|
- XDocument result;
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
- .ConfigureAwait(false);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- _logger.ErrorException("Error getting volume info", ex);
|
|
|
- return;
|
|
|
- }
|
|
|
+ var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
+ .ConfigureAwait(false);
|
|
|
|
|
|
if (result == null || result.Document == null)
|
|
|
return;
|
|
@@ -431,18 +429,8 @@ namespace MediaBrowser.Dlna.PlayTo
|
|
|
if (service == null)
|
|
|
return;
|
|
|
|
|
|
- XDocument result;
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
- .ConfigureAwait(false);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- _logger.ErrorException("Error getting transport info", ex);
|
|
|
- return;
|
|
|
- }
|
|
|
+ var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
+ .ConfigureAwait(false);
|
|
|
|
|
|
if (result == null || result.Document == null)
|
|
|
return;
|
|
@@ -471,18 +459,8 @@ namespace MediaBrowser.Dlna.PlayTo
|
|
|
throw new InvalidOperationException("Unable to find service");
|
|
|
}
|
|
|
|
|
|
- XDocument result;
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
- .ConfigureAwait(false);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- _logger.ErrorException("Error getting media info", ex);
|
|
|
- return;
|
|
|
- }
|
|
|
+ var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
+ .ConfigureAwait(false);
|
|
|
|
|
|
if (result == null || result.Document == null)
|
|
|
return;
|
|
@@ -522,18 +500,8 @@ namespace MediaBrowser.Dlna.PlayTo
|
|
|
throw new InvalidOperationException("Unable to find service");
|
|
|
}
|
|
|
|
|
|
- XDocument result;
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
- .ConfigureAwait(false);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- _logger.ErrorException("Error getting position info", ex);
|
|
|
- return false;
|
|
|
- }
|
|
|
+ var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, RendererCommands.BuildPost(command, service.ServiceType))
|
|
|
+ .ConfigureAwait(false);
|
|
|
|
|
|
if (result == null || result.Document == null)
|
|
|
return true;
|