예제 #1
0
        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)));
        }
예제 #2
0
        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));
        }
 public DeviceController(IDeviceDiscovery deviceDiscovery, IDevicePairing devicePairing, IPlayerNotificationProvider notificationProvider, IDeviceSettingProvider settingProvider)
 {
     if (deviceDiscovery == null)
     {
         Console.WriteLine("deviceDiscovery null.");
         throw new ArgumentNullException("deviceDiscovery");
     }
     if (devicePairing == null)
     {
         Console.WriteLine("devicePairing null.");
         throw new ArgumentNullException("devicePairing");
     }
     if (settingProvider == null)
     {
         Console.WriteLine("settingProvider null.");
         throw new ArgumentNullException("settingProvider");
     }
     if (notificationProvider == null)
     {
         Console.WriteLine("notificationProvider null");
         throw new ArgumentNullException("notificationProvider");
     }
     this.deviceDiscovery = deviceDiscovery;
     this.deviceDiscovery.DeviceConnected    += new EventHandler <DeviceInfoEventArgs>(this.deviceDiscovery_DeviceConnected);
     this.deviceDiscovery.DeviceUpdated      += new EventHandler <DeviceInfoEventArgs>(this.deviceDiscovery_DeviceUpdated);
     this.deviceDiscovery.DeviceDisconnected += new EventHandler <DeviceInfoEventArgs>(this.deviceDiscovery_DeviceDisconnected);
     this.devicePairing        = devicePairing;
     this.notificationProvider = notificationProvider;
     this.settingProvider      = settingProvider;
     this.Devices     = new ObservableCollection <DeviceInfo>();
     this.tokenSource = new CancellationTokenSource();
 }
        private static void OnPlayerNotificationProvider(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            MediaElementExt             mediaElementExt = d as MediaElementExt;
            IPlayerNotificationProvider newValue        = e.NewValue as IPlayerNotificationProvider;

            if (newValue != null && mediaElementExt != null)
            {
                newValue.CCDataReceived += new EventHandler <CCDataEventArgs>(mediaElementExt.OnCCDataReceived);
            }
            if (e.OldValue != null && mediaElementExt != null)
            {
                ((IPlayerNotificationProvider)e.OldValue).CCDataReceived -= new EventHandler <CCDataEventArgs>(mediaElementExt.OnCCDataReceived);
            }
        }
예제 #5
0
 public static ITargetDevice CreateTvDevice(DeviceInfo deviceInfo, IPlayerNotificationProvider playerNotification, IBaseDispatcher dispatcher)
 {
     return(DeviceFactory.CreateTvDevice(deviceInfo, playerNotification, dispatcher, new NoSecurityProvider()));
 }