@ -145,7 +145,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
var channelMsg = CreateSetMessage ( i , command . Item1 , command . Item2 , _lockkey . Value ) ;
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
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 ( )
{
if ( ! _lockkey . HasValue )