|
|
@ -145,7 +145,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var channelMsg = CreateSetMessage(i, command.Item1, command.Item2, _lockkey.Value);
|
|
|
|
var channelMsg = CreateSetMessage(i, command.Item1, command.Item2, _lockkey.Value);
|
|
|
|
await tcpClient.SendAsync(channelMsg, channelMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
|
|
|
|
await tcpClient.SendAsync(channelMsg, channelMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
|
|
|
|
await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
// parse response to make sure it worked
|
|
|
|
// parse response to make sure it worked
|
|
|
|
if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
|
|
|
|
if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -172,6 +172,29 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public async Task ChangeChannel(IHdHomerunChannelCommands commands, CancellationToken cancellationToken)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (!_lockkey.HasValue)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using (var tcpClient = _socketFactory.CreateTcpSocket(_remoteIp, HdHomeRunPort))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var commandList = commands.GetCommands();
|
|
|
|
|
|
|
|
foreach (Tuple<string, string> command in commandList)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var channelMsg = CreateSetMessage(_activeTuner, command.Item1, command.Item2, _lockkey.Value);
|
|
|
|
|
|
|
|
await tcpClient.SendAsync(channelMsg, channelMsg.Length, new IpEndPointInfo(_remoteIp, HdHomeRunPort), cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
var response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
|
|
|
// parse response to make sure it worked
|
|
|
|
|
|
|
|
string returnVal;
|
|
|
|
|
|
|
|
if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task StopStreaming()
|
|
|
|
public async Task StopStreaming()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (!_lockkey.HasValue)
|
|
|
|
if (!_lockkey.HasValue)
|
|
|
|