private void ChangeIdleMode() { if (AutoCycle) { if (DateTime.UtcNow - lastChange >= idleChangeTime) { int randomIdle = random.Next(2); while (randomIdle == previousIdleValue) { randomIdle = random.Next(2); } previousIdleValue = randomIdle; lastChange = DateTime.UtcNow; if (randomIdle == 0) { idleMode = IdleModes.Rainbow; } else if (randomIdle == 1) { idleMode = IdleModes.Flair; } ChangeReverse(); } } }
public MainPage() { this.InitializeComponent(); leftStrip = new DotStarStrip(78, "SPI0"); rightStrip = new DotStarStrip(78, "SPI1"); cube = new Cube(leftStrip, rightStrip); AutoCycle = true; Reverse = false; random = new Random(); currentMode = ActiveModes.SpeedRainbow; idleMode = IdleModes.Rainbow; lastChange = DateTime.UtcNow; quietTime = DateTime.UtcNow; changeTime = TimeSpan.FromSeconds(15); idleChangeTime = TimeSpan.FromSeconds(30); Idle = false; runningIdleAnimation = false; }