public void MapDevice(string channelName, IReceivesBrightness device, params Tuple <DataElements, object>[] additionalData) { var id = ChannelIdentityFromName(channelName); var deviceController = ConnectTo(device, additionalData); InternalMapDevice(id, deviceController); }
public Flicker ConnectTo(IReceivesBrightness device) { lock (lockObject) { this.devices.Add(new DeviceController(device)); } return(this); }
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(); }); }
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); }
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)); }); }
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); }
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); } } } }
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); } }
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(); })); }
public void ConnectTo(IReceivesBrightness device) { Add(device); }
public override void Execute(IReceivesBrightness device, IControlToken token) { Executor.Current.MasterEffect.Shimmer(device, StartBrightness, EndBrightness, DurationMs, token: token); }
public override void Execute(IReceivesBrightness device, IControlToken token) { device.SetBrightness(Brightness, token); }
public void ControlDevice(IReceivesBrightness device) { ConnectTo(device); }
public abstract void Execute(IReceivesBrightness device, IControlToken token);
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; } }
public void MapDevice(string channelName, IReceivesBrightness device, params Tuple<DataElements, object>[] additionalData) { var id = ChannelIdentityFromName(channelName); var deviceController = ConnectTo(device, additionalData); InternalMapDevice(id, deviceController); }
public static double GetCurrentBrightness(this IReceivesBrightness device) { return((double)device.GetCurrentData(DataElements.Brightness)); }
public static void SetBrightness(this IReceivesBrightness device, bool value, IControlToken token = null) { device.SetData(token, Utils.Data(DataElements.Brightness, value ? 1.0 : 0.0)); }
public static void SetBrightness(this IReceivesBrightness device, double brightness, IControlToken token = null) { device.SetData(token, Utils.Data(DataElements.Brightness, brightness)); }
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(); }); }
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(); }); }
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; }