public override Timeline CreateTimeline(int?iterations) { var timeline = InternalCreateTimeline(iterations); foreach (var kvp in this.mappedDevices) { var channelIdentity = kvp.Key; var effectData = effectDataPerChannel[channelIdentity]; byte?lastValue = null; for (int i = 0; i < effectData.Length; i++) { if (effectData[i] == lastValue) { continue; } lastValue = effectData[i]; var timelineEvent = new SimpleDimmerEvent(kvp.Value, (double)effectData[i] / 255); timeline.AddMs(i * eventPeriodInMilliseconds, timelineEvent); } } foreach (var kvp in this.mappedRGBDevices) { var channelIdentity = kvp.Key; var effectDataR = effectDataPerChannel[channelIdentity.R]; var effectDataG = effectDataPerChannel[channelIdentity.G]; var effectDataB = effectDataPerChannel[channelIdentity.B]; Color?lastValue = null; for (int i = 0; i < effectDataR.Length; i++) { var color = Color.FromArgb(effectDataR[i], effectDataG[i], effectDataB[i]); if (color == lastValue) { continue; } lastValue = color; var timelineEvent = new SimpleColorEvent(kvp.Value, color); timeline.AddMs(i * eventPeriodInMilliseconds, timelineEvent); //log.Debug("Pos {0} set color {1} for device R:{2}/G:{3}/B:{4}", i, color, channelIdentity.R, // channelIdentity.G, channelIdentity.B); } } return(timeline); }
public override Timeline CreateTimeline(int? iterations) { var timeline = InternalCreateTimeline(iterations); foreach (var kvp in this.mappedDevices) { var channelIdentity = kvp.Key; var effectData = effectDataPerChannel[channelIdentity]; byte? lastValue = null; for (int i = 0; i < effectData.Length; i++) { if (effectData[i] == lastValue) continue; lastValue = effectData[i]; var timelineEvent = new SimpleDimmerEvent(kvp.Value, (double)effectData[i] / 255); timeline.AddMs(i * eventPeriodInMilliseconds, timelineEvent); } } foreach (var kvp in this.mappedRGBDevices) { var channelIdentity = kvp.Key; var effectDataR = effectDataPerChannel[channelIdentity.R]; var effectDataG = effectDataPerChannel[channelIdentity.G]; var effectDataB = effectDataPerChannel[channelIdentity.B]; Color? lastValue = null; for (int i = 0; i < effectDataR.Length; i++) { var color = Color.FromArgb(effectDataR[i], effectDataG[i], effectDataB[i]); if (color == lastValue) continue; lastValue = color; var timelineEvent = new SimpleColorEvent(kvp.Value, color); timeline.AddMs(i * eventPeriodInMilliseconds, timelineEvent); //log.Debug("Pos {0} set color {1} for device R:{2}/G:{3}/B:{4}", i, color, channelIdentity.R, // channelIdentity.G, channelIdentity.B); } } return timeline; }