private void ImportAndMapChristmasCanon()
{
lorChristmasCanon.LoadFromFile(Path.Combine(expanderServer.ExpanderSharedFiles, "Seq", "Cannon Rock104.lms"));
lorChristmasCanon.Progress.Subscribe(x =>
{
log.Trace("Christmas Canon {0:N0} ms", x);
});
// lorChristmasCanon.Dump();
lorChristmasCanon.MapDevice("Roof 1", pixelsGround, Utils.AdditionalData(Color.Red));
lorChristmasCanon.MapDevice("Roof 2", pixelsTree, Utils.AdditionalData(Color.Green));
lorChristmasCanon.MapDevice("Roof 3", pixelsHeart, Utils.AdditionalData(Color.Red));
lorChristmasCanon.ControlDevice(pixelsBetweenTrees);
lorChristmasCanon.MapDevice("Big Tree 1",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 0, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 2",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 6, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 3",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 12, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 4",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 18, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 5",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 24, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 6",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 30, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 7",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 36, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Big Tree 8",
new VirtualDevice(b => pixelsBetweenTrees.SetColorRange(Color.Red, b, 42, 6, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Sidewalk 1", lightNet1);
lorChristmasCanon.MapDevice("Sidewalk 2", lightNet2);
lorChristmasCanon.MapDevice("Sidewalk 3", lightNet3);
lorChristmasCanon.MapDevice("Sidewalk 4", lightNet4);
lorChristmasCanon.MapDevice("Sidewalk 5", lightNet5);
lorChristmasCanon.MapDevice("Sidewalk 6", lightNet6);
lorChristmasCanon.MapDevice("Sidewalk 7", lightNet7);
lorChristmasCanon.MapDevice("Sidewalk 8", lightNet8);
lorChristmasCanon.MapDevice("Sidewalk 1", lightNet9);
lorChristmasCanon.MapDevice("Sidewalk 2", lightNet10);
lorChristmasCanon.MapDevice("Sidewalk 1", lightHat1);
lorChristmasCanon.MapDevice("Sidewalk 2", lightHat2);
lorChristmasCanon.MapDevice("Sidewalk 3", lightHat3);
lorChristmasCanon.MapDevice("Sidewalk 4", lightHat4);
lorChristmasCanon.MapDevice("Bush Right", lightSanta);
lorChristmasCanon.MapDevice("Bush Right", lightTopper1);
lorChristmasCanon.MapDevice("Column Red Right", lightFlood1, Utils.AdditionalData(Color.Red));
lorChristmasCanon.MapDevice("Column Blue Right", lightFlood2, Utils.AdditionalData(Color.Blue));
lorChristmasCanon.MapDevice("Column Red Right", lightFlood5, Utils.AdditionalData(Color.Red));
lorChristmasCanon.MapDevice("Column Blue Right", lightFlood6, Utils.AdditionalData(Color.Blue));
lorChristmasCanon.MapDevice("Rail Right", lightStairRail1);
lorChristmasCanon.MapDevice("Rail Right", lightInflatableTree);
lorChristmasCanon.MapDevice("Column Red Left", lightFlood3, Utils.AdditionalData(Color.Red));
lorChristmasCanon.MapDevice("Column Blue Left", lightFlood4, Utils.AdditionalData(Color.Blue));
lorChristmasCanon.MapDevice("Column Blue Left", lightFlood7, Utils.AdditionalData(Color.Blue));
lorChristmasCanon.MapDevice("Rail Left", lightStairRail2);
lorChristmasCanon.MapDevice("Ice Cycles", lightHangingStar);
lorChristmasCanon.MapDevice("Ice Cycles", lightTreeStars);
lorChristmasCanon.MapDevice("Left Window April", lightOlaf);
lorChristmasCanon.MapDevice("Left Wreif", lightR2D2);
lorChristmasCanon.MapDevice("Left Wreif", lightStairs3);
lorChristmasCanon.MapDevice("Main Door", lightPoppy);
lorChristmasCanon.MapDevice("Right Wreif", lightReindeers);
lorChristmasCanon.MapDevice("Right Wreif", lightStairs2);
lorChristmasCanon.MapDevice("Right Window", lightReindeerBig);
lorChristmasCanon.MapDevice("Right Window", lightStairs1);
lorChristmasCanon.MapDevice("Bush Left", lightSnowman);
lorChristmasCanon.MapDevice("Bush Left", lightTopper2);
lorChristmasCanon.ControlDevice(pixelsMatrix);
lorChristmasCanon.MapDevice("Tree 1",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.White, b, 0, 0, 3, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 2",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 3, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 3",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 4, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 4",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 5, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 5",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 6, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 6",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 7, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 7",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 8, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 8",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 9, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 01",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 10, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 02",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 11, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 03",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 12, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 04",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 13, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 05",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 14, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 06",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Red, b, 15, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 07",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.Blue, b, 16, 0, 1, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Tree 08",
new VirtualDevice(b => pixelsMatrix.SetColorRange(Color.White, b, 17, 0, 3, 10, lorChristmasCanon.Token)));
lorChristmasCanon.ControlDevice(pixelsRoofEdge);
lorChristmasCanon.MapDevice("Arch 1",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 0, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 2",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 10, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 3",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 20, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 4",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 30, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 5",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 40, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 6",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 50, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 7",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 60, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 8",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 70, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 9",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 80, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 10",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 90, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 11",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 100, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 12",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 110, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 13",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 120, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 14",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 130, 10, lorChristmasCanon.Token)));
lorChristmasCanon.MapDevice("Arch 15",
new VirtualDevice(b => pixelsRoofEdge.SetColorRange(Color.Red, b, 140, 10, lorChristmasCanon.Token)));
lorChristmasCanon.Prepare();
}