public TestMidi1(IEnumerable <string> args)
{
p = new PhysicalDevices
{
SmallLED = new Physical.SmallRGBStrobe(testLight1, 1),
CatAir = new Physical.GenericDimmer(catAir, 10),
CatLight = new Physical.GenericDimmer(catLight, 11)
};
inputBrightness.ConnectTo(testLight1.InputBrightness);
inputBrightness.ConnectTo(testLight2.InputBrightness);
acnOutput.Connect(p.SmallLED, 20);
acnOutput.Connect(p.CatAir, 20);
acnOutput.Connect(p.CatLight, 20);
buttonTest2.ConnectTo(catAir.Control);
inputH.Output.Subscribe(x =>
{
testLight1.SetOnlyColor(HSV.ColorFromHSV(x.Value.GetByteScale(), inputS.Value, inputV.Value));
});
inputS.Output.Subscribe(x =>
{
testLight1.SetOnlyColor(HSV.ColorFromHSV(inputH.Value.GetByteScale(), x.Value, inputV.Value));
});
inputV.Output.Subscribe(x =>
{
testLight1.SetOnlyColor(HSV.ColorFromHSV(inputH.Value.GetByteScale(), inputS.Value, x.Value));
});
inputBrightness.Output.Subscribe(x =>
{
midiOutput.Send(0, 81, x.Value.GetByteScale(127));
});
midiInput.Controller(1, 1).Controls(inputBrightness.Control);
midiInput.Controller(0, 81).Controls(inputBrightness.Control);
midiInput.Controller(1, 2).Controls(inputH.Control);
midiInput.Controller(1, 3).Controls(inputS.Control);
midiInput.Controller(1, 4).Controls(inputV.Control);
midiInput.Note(1, 36).Controls(buttonTest1.Control);
midiInput.Note(1, 37).Controls(buttonTest2.Control);
midiInput.Note(1, 38).Controls(buttonTest3.Control);
buttonTest2.Output.Subscribe(catAir.Control);
buttonTest3.Output.Subscribe(catLight.Control);
buttonTest1.Output.Subscribe(x =>
{
if (x)
{
testLight1.RunEffect(new Effect2.Fader(0.0, 1.0), S(1.0));
}
else
{
if (testLight1.Brightness > 0)
{
testLight1.RunEffect(new Effect2.Fader(1.0, 0.0), S(1.0));
}
}
});
}