|
|
|
@ -219,7 +219,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
{
|
|
|
|
|
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = rendererCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetMute");
|
|
|
|
|
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetMute");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
@ -253,7 +253,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
{
|
|
|
|
|
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = rendererCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetVolume");
|
|
|
|
|
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetVolume");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -278,7 +278,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
{
|
|
|
|
|
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "Seek");
|
|
|
|
|
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Seek");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -305,7 +305,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");
|
|
|
|
|
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetAVTransportURI");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -378,6 +378,10 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
public async Task SetPlay(CancellationToken cancellationToken)
|
|
|
|
|
{
|
|
|
|
|
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
if (avCommands == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await SetPlay(avCommands, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
@ -388,7 +392,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
{
|
|
|
|
|
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "Stop");
|
|
|
|
|
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Stop");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -406,7 +410,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
{
|
|
|
|
|
var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "Pause");
|
|
|
|
|
var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Pause");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -528,7 +532,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
|
|
|
|
|
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = rendererCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetVolume");
|
|
|
|
|
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "GetVolume");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -578,7 +582,7 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
|
|
|
|
|
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var command = rendererCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetMute");
|
|
|
|
|
var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "GetMute");
|
|
|
|
|
if (command == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
@ -665,6 +669,10 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
if (rendererCommands == null)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var result = await new SsdpHttpClient(_httpClientFactory).SendCommandAsync(
|
|
|
|
|
Properties.BaseUrl,
|
|
|
|
@ -733,6 +741,11 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
|
|
|
|
|
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
if (rendererCommands == null)
|
|
|
|
|
{
|
|
|
|
|
return (false, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var result = await new SsdpHttpClient(_httpClientFactory).SendCommandAsync(
|
|
|
|
|
Properties.BaseUrl,
|
|
|
|
|
service,
|
|
|
|
@ -914,6 +927,10 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
var httpClient = new SsdpHttpClient(_httpClientFactory);
|
|
|
|
|
|
|
|
|
|
var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
if (document == null)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
AvCommands = TransportCommands.Create(document);
|
|
|
|
|
return AvCommands;
|
|
|
|
@ -942,6 +959,10 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
var httpClient = new SsdpHttpClient(_httpClientFactory);
|
|
|
|
|
_logger.LogDebug("Dlna Device.GetRenderingProtocolAsync");
|
|
|
|
|
var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
if (document == null)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RendererCommands = TransportCommands.Create(document);
|
|
|
|
|
return RendererCommands;
|
|
|
|
@ -973,6 +994,10 @@ namespace Emby.Dlna.PlayTo
|
|
|
|
|
var ssdpHttpClient = new SsdpHttpClient(httpClientFactory);
|
|
|
|
|
|
|
|
|
|
var document = await ssdpHttpClient.GetDataAsync(url.ToString(), cancellationToken).ConfigureAwait(false);
|
|
|
|
|
if (document == null)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var friendlyNames = new List<string>();
|
|
|
|
|
|
|
|
|
|