public LOREvent(IEnumerable<BaseImporter.MappedDeviceDimmer> devices, LMS.channelsChannelEffect effect) { this.devices = devices; base.endCentisecond = effect.endCentisecond; base.endIntensity = effect.endIntensity; base.intensity = effect.intensity; base.startCentisecond = effect.startCentisecond; base.startIntensity = effect.startIntensity; base.type = effect.type; }
private IEnumerable<ChannelEffect> GetChannelEffects(LMS.channelsChannelEffect effect) { int startMs = effect.startCentisecond * 10; int endMs = effect.endCentisecond * 10; switch (effect.type) { case "intensity": if (!string.IsNullOrEmpty(effect.intensity)) { return new List<ChannelEffect>() { new InstantChannelEffect { StartMs = startMs, Brightness = double.Parse(effect.intensity) / 100.0 }, new InstantChannelEffect { StartMs = endMs, Brightness = 0 }}; } else { return new List<ChannelEffect>() { new FadeChannelEffect { StartMs = startMs, EndMs = endMs, StartBrightness = double.Parse(effect.startIntensity) / 100.0, EndBrightness = double.Parse(effect.endIntensity) / 100.0 }}; } case "shimmer": return new List<ChannelEffect>() { new ShimmerChannelEffect { StartMs = startMs, EndMs = endMs }}; case "twinkle": if (!string.IsNullOrEmpty(effect.intensity)) return new List<ChannelEffect>() { new TwinkleChannelEffect { StartMs = startMs, EndMs = endMs, StartBrightness = double.Parse(effect.intensity) / 100.0, EndBrightness = double.Parse(effect.intensity) / 100.0 }}; else return new List<ChannelEffect>() { new TwinkleChannelEffect { StartMs = startMs, EndMs = endMs, StartBrightness = double.Parse(effect.startIntensity) / 100.0, EndBrightness = double.Parse(effect.endIntensity) / 100.0 }}; default: throw new NotImplementedException("Unknown effect type " + effect.type); } }