private async Task InitTargetDevice(DeviceInfo device) { Console.WriteLine("InitTargetDevice - started... "); Logger instance = Logger.Instance; object[] encryptionEnabled = new object[] { this.devicePairing.EncryptionEnabled }; instance.LogMessageFormat("InitTargetDevice - EncryptionEnabled : {0}", encryptionEnabled); ISecondTvSecurityProvider noSecurityProvider = null; if (!this.devicePairing.EncryptionEnabled) { noSecurityProvider = new NoSecurityProvider(); } else { noSecurityProvider = new AesSecurityProvider(this.devicePairing.SpcApi.GetKey(), this.devicePairing.SessionId); } Console.WriteLine("InitTargetDevice - Created Tv device."); ITargetDevice targetDevice = SmartTVRemoteControl.DeviceFactory.CreateTvDevice(device, this.notificationProvider, new DispatcherWrapper(Dispatcher.CurrentDispatcher), noSecurityProvider); Console.WriteLine("InitTargetDevice - Set current device."); this.SetCurrentDevice(targetDevice); try { Console.WriteLine("InitTargetDevice - Initialize Tv device."); AsyncContext.Run(() => targetDevice.InitializeAsync()); //await targetDevice.InitializeAsync(); } catch (Exception exception1) { Exception exception = exception1; Console.WriteLine("[ERROR]Catch exception when initialize TV."); Logger logger = Logger.Instance; logger.LogMessageFormat("Exception message: {0}", new object[] { exception.Message }); Logger instance1 = Logger.Instance; instance1.LogMessageFormat("Exception stacktrace: {0}", new object[] { exception.StackTrace }); } finally { Console.WriteLine("InitTargetDevice is complete"); } }
private async Task InitTargetDevice(DeviceInfo device) { Logger.Instance.LogMessageFormat("[SmartView2][DeviceController]InitTargetDevice - started... ", new object[0]); Logger instance = Logger.Instance; object[] encryptionEnabled = new object[] { this.devicePairing.EncryptionEnabled }; instance.LogMessageFormat("[SmartView2][DeviceController]InitTargetDevice - EncryptionEnabled : {0}", encryptionEnabled); ISecondTvSecurityProvider noSecurityProvider = null; if (!this.devicePairing.EncryptionEnabled) { noSecurityProvider = new NoSecurityProvider(); } else { noSecurityProvider = new AesSecurityProvider(this.devicePairing.SpcApi.GetKey(), this.devicePairing.SessionId); } Logger.Instance.LogMessageFormat("[SmartView2][DeviceController]InitTargetDevice - Created Tv device.", new object[0]); ITargetDevice targetDevice = SmartView2.DeviceFactory.CreateTvDevice(device, this.notificationProvider, this.dispatcher, noSecurityProvider); Logger.Instance.LogMessageFormat("[SmartView2][DeviceController]InitTargetDevice - Set current device.", new object[0]); this.SetCurrentDevice(targetDevice); try { Logger.Instance.LogMessageFormat("[SmartView2][DeviceController]InitTargetDevice - Initialize Tv device.", new object[0]); await targetDevice.InitializeAsync(); } catch (Exception exception1) { Exception exception = exception1; Logger.Instance.LogMessageFormat("[SmartView2][DeviceController][ERROR]Catch exception when initialize TV.", new object[0]); Logger logger = Logger.Instance; logger.LogMessageFormat("[SmartView2][DeviceController]Exception message: {0}", new object[] { exception.Message }); Logger instance1 = Logger.Instance; instance1.LogMessageFormat("[SmartView2][DeviceController]Exception stacktrace: {0}", new object[] { exception.StackTrace }); } }
internal static ITargetDevice CreateTvDevice(DeviceInfo deviceInfo, IPlayerNotificationProvider playerNotification, IBaseDispatcher dispatcher, ISecondTvSecurityProvider securityProvider) { if (deviceInfo == null) { throw new ArgumentNullException("deviceInfo"); } if (playerNotification == null) { throw new ArgumentNullException("playerNotification"); } if (dispatcher == null) { throw new ArgumentNullException("dispatcher"); } SecondTvSyncTransport secondTvSyncTransport = new SecondTvSyncTransport(securityProvider); SecondTvAsyncTransport secondTvAsyncTransport = new SecondTvAsyncTransport(securityProvider); secondTvSyncTransport.Connect(deviceInfo.DeviceAddress); secondTvAsyncTransport.Connect(deviceInfo.DeviceAddress); SecondTv secondTv = new SecondTv(secondTvSyncTransport, deviceInfo.LocalAddress); SecondTvRemoteInput secondTvRemoteInput = new SecondTvRemoteInput(secondTvAsyncTransport, deviceInfo.LocalAddress); secondTvRemoteInput.Connect(secondTvSyncTransport); MbrKeySender mbrKeySender = new MbrKeySender(secondTvSyncTransport, deviceInfo.LocalAddress); RemoteControlFactory remoteControlFactory = new RemoteControlFactory(secondTvRemoteInput, mbrKeySender); return(new TvDevice(deviceInfo, secondTv, playerNotification, secondTvRemoteInput, remoteControlFactory, dispatcher, new HttpServer(), new MultiScreenController(), new DlnaServer(), new DataLibrary(dispatcher))); }
internal static ITargetDevice CreateTvDevice(DeviceInfo deviceInfo, IPlayerNotificationProvider playerNotification, IBaseDispatcher dispatcher, ISecondTvSecurityProvider securityProvider) { if (deviceInfo == null) { throw new ArgumentNullException("deviceInfo"); } if (playerNotification == null) { } if (dispatcher == null) { Console.WriteLine("Dispatcher is null"); } //Dispatcher backgroundSerialQeueue = new Dispatcher; SecondTvSyncTransport secondTvSyncTransport = new SecondTvSyncTransport(securityProvider); SecondTvAsyncTransport secondTvAsyncTransport = new SecondTvAsyncTransport(securityProvider); secondTvSyncTransport.Connect(deviceInfo.DeviceAddress); secondTvAsyncTransport.Connect(deviceInfo.DeviceAddress); SecondTv secondTv = new SecondTv(secondTvSyncTransport, deviceInfo.LocalAddress); SecondTvRemoteInput secondTvRemoteInput = new SecondTvRemoteInput(secondTvAsyncTransport, deviceInfo.LocalAddress); secondTvRemoteInput.Connect(secondTvSyncTransport); MbrKeySender mbrKeySender = new MbrKeySender(secondTvSyncTransport, deviceInfo.LocalAddress); RemoteControlFactory remoteControlFactory = new RemoteControlFactory(secondTvRemoteInput, mbrKeySender); HttpServer _https = new HttpServer(); MultiScreenController _msc = new MultiScreenController(); DlnaServer _dlnas = new DlnaServer(); DataLibrary _dl = new DataLibrary(_dispatcher); return(new TvDevice(deviceInfo, secondTv, playerNotification, secondTvRemoteInput, remoteControlFactory, dispatcher, _https, _msc, _dlnas, _dl)); }