Example #1
0
        public void MapDevice(string channelName, IReceivesBrightness device, params Tuple <DataElements, object>[] additionalData)
        {
            var id = ChannelIdentityFromName(channelName);

            var deviceController = ConnectTo(device, additionalData);

            InternalMapDevice(id, deviceController);
        }
Example #2
0
        public Flicker ConnectTo(IReceivesBrightness device)
        {
            lock (lockObject)
            {
                this.devices.Add(new DeviceController(device));
            }

            return(this);
        }
Example #3
0
        public Task Custom(double[] customList, IReceivesBrightness device, int durationMs, int? loop = null, int priority = 1)
        {
            var controlToken = device.TakeControl(priority);

            return Custom(customList, device.GetDataObserver(controlToken), durationMs, loop)
                .ContinueWith(x =>
                {
                    controlToken.Dispose();
                });
        }
Example #4
0
        public Task Custom(IData[] customList, IReceivesBrightness device, int durationMs, int?loop = null, int priority = 1)
        {
            var controlToken = device.TakeControl(priority);

            return(Custom(customList, device.GetDataObserver(controlToken), durationMs, loop)
                   .ContinueWith(x =>
            {
                controlToken.Dispose();
            }));
        }
        public BaseSweeperEffect ConnectTo(IReceivesBrightness device, params Tuple <DataElements, object>[] additionalData)
        {
            IData data = additionalData.GenerateIData();

            lock (this.lockObject)
            {
                this.devices.Add(new DeviceController(device, data));
            }

            return(this);
        }
Example #6
0
        public HalloweenSpiderDrop(
            IReceivesBrightness eyesLight,
            IReceivesBrightness smallSpiderEyes,
            DigitalOutput2 drop,
            DigitalOutput2 venom,
            StrobeDimmer3 strobeLight,
            AudioPlayer audioPlayer,
            [System.Runtime.CompilerServices.CallerMemberName] string name = "")
            : base(name)
        {
            pulsating.ConnectTo(smallSpiderEyes);

            OutputPower.Subscribe(x =>
            {
                if (x)
                {
                    LockDevices(drop, venom, eyesLight, strobeLight, smallSpiderEyes);

                    pulsating.Start(token: this.controlToken);
                }
                else
                {
                    pulsating.Stop();
                    UnlockDevices();
                }
            });

            PowerOn.RunAction(ins =>
            {
                pulsating.Stop();
                audioPlayer.PlayNewEffect("348 Spider Hiss.wav", 0, 1);
                eyesLight.SetBrightness(1);
                drop.SetValue(true);
                ins.WaitFor(S(0.2));
                strobeLight.SetBrightnessStrobeSpeed(1, 1);
                venom.SetValue(true);
                ins.WaitFor(S(2.0));
                venom.SetValue(false);
                strobeLight.SetBrightnessStrobeSpeed(0, 0);
                ins.WaitFor(S(2.0));
            })
            .TearDown(ins =>
            {
                drop.SetValue(false);
                venom.SetValue(false);
                eyesLight.SetBrightness(0);
                strobeLight.SetBrightnessStrobeSpeed(0, 0);
                pulsating.Start(token: this.controlToken);
                ins.WaitFor(S(1.0));
            });
        }
Example #7
0
        private ControlledObserver <double> GetControlledObserverBrightness(IReceivesBrightness device)
        {
            ControlledObserver <double> observer;

            if (!this.deviceObserversBrightness.TryGetValue(device, out observer))
            {
                //FIXME
                //observer = device.GetBrightnessObserver();

                //this.deviceObserversBrightness.Add(device, observer);
            }

            return(observer);
        }
Example #8
0
        public Task Shimmer(IReceivesBrightness device, double minBrightness, double maxBrightness, int durationMs, int priority = 1, IControlToken token = null)
        {
            if (token != null)
            {
                return(Shimmer(device.GetDataObserver(token), minBrightness, maxBrightness, durationMs));
            }

            var controlToken = device.TakeControl(priority);

            return(Shimmer(device.GetDataObserver(controlToken), minBrightness, maxBrightness, durationMs)
                   .ContinueWith(x =>
            {
                controlToken.Dispose();
            }));
        }
        public void SetAdditionalData(IReceivesBrightness device, params Tuple <DataElements, object>[] additionalData)
        {
            lock (this.lockObject)
            {
                var foundDevice = this.devices.FirstOrDefault(x => x.Device == device);

                if (foundDevice != null)
                {
                    foundDevice.AdditionalData = additionalData.GenerateIData();

                    if (foundDevice.Observer != null)
                    {
                        foundDevice.Observer.SetDataFromIData(foundDevice.AdditionalData);
                    }
                }
            }
        }
Example #10
0
        protected DeviceController ConnectTo(IReceivesBrightness device, params Tuple <DataElements, object>[] additionalData)
        {
            lock (this.lockObject)
            {
                IData data = null;
                if (additionalData.Any())
                {
                    data = new Data();
                    foreach (var kvp in additionalData)
                    {
                        data[kvp.Item1] = kvp.Item2;
                    }
                }

                var deviceController = new DeviceController(device, data);
                this.devices.Add(deviceController);

                return(deviceController);
            }
        }
Example #11
0
        public Task Fade(
            IReceivesBrightness device,
            double start,
            double end,
            int durationMs,
            int priority             = 1,
            ITransformer transformer = null,
            IControlToken token      = null,
            params Tuple <DataElements, object>[] additionalData)
        {
            if (token != null)
            {
                return(Fade(device.GetDataObserver(token), start, end, durationMs, transformer, additionalData));
            }

            var controlToken = device.TakeControl(priority);

            return(Fade(device.GetDataObserver(controlToken), start, end, durationMs, transformer, additionalData)
                   .ContinueWith(x =>
            {
                controlToken.Dispose();
            }));
        }
Example #12
0
 public void ConnectTo(IReceivesBrightness device)
 {
     Add(device);
 }
Example #13
0
 public override void Execute(IReceivesBrightness device, IControlToken token)
 {
     Executor.Current.MasterEffect.Shimmer(device, StartBrightness, EndBrightness, DurationMs, token: token);
 }
Example #14
0
 public override void Execute(IReceivesBrightness device, IControlToken token)
 {
     device.SetBrightness(Brightness, token);
 }
Example #15
0
 public void ControlDevice(IReceivesBrightness device)
 {
     ConnectTo(device);
 }
Example #16
0
 public abstract void Execute(IReceivesBrightness device, IControlToken token);
Example #17
0
        protected DeviceController ConnectTo(IReceivesBrightness device, params Tuple<DataElements, object>[] additionalData)
        {
            lock (this.lockObject)
            {
                IData data = null;
                if (additionalData.Any())
                {
                    data = new Data();
                    foreach (var kvp in additionalData)
                        data[kvp.Item1] = kvp.Item2;
                }

                var deviceController = new DeviceController(device, data);
                this.devices.Add(deviceController);

                return deviceController;
            }
        }
Example #18
0
        public void MapDevice(string channelName, IReceivesBrightness device, params Tuple<DataElements, object>[] additionalData)
        {
            var id = ChannelIdentityFromName(channelName);

            var deviceController = ConnectTo(device, additionalData);

            InternalMapDevice(id, deviceController);
        }
Example #19
0
 public static double GetCurrentBrightness(this IReceivesBrightness device)
 {
     return((double)device.GetCurrentData(DataElements.Brightness));
 }
Example #20
0
 public static void SetBrightness(this IReceivesBrightness device, bool value, IControlToken token = null)
 {
     device.SetData(token, Utils.Data(DataElements.Brightness, value ? 1.0 : 0.0));
 }
Example #21
0
 public static void SetBrightness(this IReceivesBrightness device, double brightness, IControlToken token = null)
 {
     device.SetData(token, Utils.Data(DataElements.Brightness, brightness));
 }
Example #22
0
        public Task Fade(
            IReceivesBrightness device,
            double start,
            double end,
            int durationMs,
            int priority = 1,
            ITransformer transformer = null,
            IControlToken token = null,
            params Tuple<DataElements, object>[] additionalData)
        {
            if (token != null)
                return Fade(device.GetDataObserver(token), start, end, durationMs, transformer, additionalData);

            var controlToken = device.TakeControl(priority);

            return Fade(device.GetDataObserver(controlToken), start, end, durationMs, transformer, additionalData)
                .ContinueWith(x =>
                {
                    controlToken.Dispose();
                });
        }
Example #23
0
        public Task Shimmer(IReceivesBrightness device, double minBrightness, double maxBrightness, int durationMs, int priority = 1, IControlToken token = null)
        {
            if (token != null)
                return Shimmer(device.GetDataObserver(token), minBrightness, maxBrightness, durationMs);

            var controlToken = device.TakeControl(priority);

            return Shimmer(device.GetDataObserver(controlToken), minBrightness, maxBrightness, durationMs)
                .ContinueWith(x =>
                {
                    controlToken.Dispose();
                });
        }
Example #24
0
 public void ConnectTo(IReceivesBrightness device)
 {
     Add(device);
 }
Example #25
0
        private ControlledObserver<double> GetControlledObserverBrightness(IReceivesBrightness device)
        {
            ControlledObserver<double> observer;

            if (!this.deviceObserversBrightness.TryGetValue(device, out observer))
            {
                //FIXME
                //observer = device.GetBrightnessObserver();

                //this.deviceObserversBrightness.Add(device, observer);
            }

            return observer;
        }
Example #26
0
 public void ControlDevice(IReceivesBrightness device)
 {
     ConnectTo(device);
 }
Example #27
0
 public override void Execute(IReceivesBrightness device, IControlToken token)
 {
     device.SetBrightness(Brightness, token);
 }
Example #28
0
 public abstract void Execute(IReceivesBrightness device, IControlToken token);
Example #29
0
 public override void Execute(IReceivesBrightness device, IControlToken token)
 {
     Executor.Current.MasterEffect.Shimmer(device, StartBrightness, EndBrightness, DurationMs, token: token);
 }