public Halloween2015Manual(IEnumerable <string> args)
{
hoursSmall.AddRange("5:00 pm", "9:00 pm");
// Logging
hoursSmall.Output.Log("Hours small");
hoursSmall
.ControlsMasterPower(catAir);
// .ControlsMasterPower(eyes);
buttonOverrideHours.Output.Subscribe(x =>
{
if (x)
{
hoursSmall.SetForced(true);
}
else
{
hoursSmall.SetForced(null);
}
});
hoursSmall.Output.Subscribe(x =>
{
if (x)
{
flickerEffect.Start();
}
else
{
flickerEffect.Stop();
}
SetPixelColor();
});
flickerEffect.ConnectTo(stairs1Light.InputBrightness);
flickerEffect.ConnectTo(stairs2Light.InputBrightness);
acnOutput.Connect(new Physical.PixelRope(pixelsRoofEdge, 0, 50), 6, 1);
acnOutput.Connect(new Physical.PixelRope(pixelsRoofEdge, 50, 100), 5, 1);
acnOutput.Connect(new Physical.SmallRGBStrobe(spiderLight, 1), 1);
acnOutput.Connect(new Physical.RGBStrobe(wall1Light, 60), 1);
acnOutput.Connect(new Physical.RGBStrobe(wall2Light, 70), 1);
acnOutput.Connect(new Physical.RGBStrobe(wall3Light, 40), 1);
acnOutput.Connect(new Physical.RGBStrobe(wall4Light, 80), 1);
acnOutput.Connect(new Physical.GenericDimmer(stairs1Light, 50), 1);
acnOutput.Connect(new Physical.GenericDimmer(stairs2Light, 51), 1);
acnOutput.Connect(new Physical.AmericanDJStrobe(strobeDimmer, 100), 1);
acnOutput.Connect(new Physical.MonopriceRGBWPinSpot(pinSpot, 20), 1);
raspberryCat.DigitalInputs[4].Connect(catMotion, false);
raspberryCat.DigitalInputs[5].Connect(firstBeam, false);
raspberryCat.DigitalInputs[6].Connect(finalBeam, false);
raspberryCat.DigitalOutputs[7].Connect(spiderCeilingDrop);
raspberryCat.Connect(audioCat);
raspberryLocal.Connect(audioMain);
raspberry3dfx.Connect(video3dfx);
raspberryVideo2.Connect(video2);
raspberryPop.Connect(audioPop);
raspberryDIN.Connect(audioDIN);
raspberryDIN.DigitalInputs[4].Connect(motion2);
raspberryCat.DigitalOutputs[6].Connect(fog);
raspberryDIN.DigitalOutputs[1].Connect(candyEyes);
raspberryPop.DigitalOutputs[7].Connect(george1);
raspberryPop.DigitalOutputs[6].Connect(george2);
raspberryPop.DigitalOutputs[5].Connect(popper);
raspberryPop.DigitalOutputs[2].Connect(dropSpiderEyes);
acnOutput.Connect(new Physical.GenericDimmer(catAir, 10), 1);
acnOutput.Connect(new Physical.GenericDimmer(catLights, 11), 1);
oscServer.RegisterAction <int>("/1/push1", d => d.First() != 0, (msg, data) =>
{
audioCat.PlayEffect("266 Monster Growl 7", 1.0, 1.0);
});
oscServer.RegisterAction <int>("/1/push2", d => d.First() != 0, (msg, data) =>
{
audioCat.PlayEffect("285 Monster Snarl 2", 1.0, 1.0);
});
oscServer.RegisterAction <int>("/1/push3", d => d.First() != 0, (msg, data) =>
{
audioCat.PlayEffect("286 Monster Snarl 3", 1.0, 1.0);
});
oscServer.RegisterAction <int>("/1/push4", d => d.First() != 0, (msg, data) =>
{
audioCat.PlayEffect("287 Monster Snarl 4", 1.0, 1.0);
});
oscServer.RegisterAction <int>("/1/push5", (msg, data) =>
{
george1.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push6", (msg, data) =>
{
george2.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push7", (msg, data) =>
{
popper.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push8", d => d.First() != 0, (msg, data) =>
{
audioPop.PlayEffect("laugh.wav", 1.0, 0.0);
});
oscServer.RegisterAction <int>("/1/spiderEyes", (msg, data) =>
{
dropSpiderEyes.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push10", d => d.First() != 0, (msg, data) =>
{
audioPop.PlayEffect("348 Spider Hiss.wav", 0.0, 1.0);
});
oscServer.RegisterAction <int>("/1/push11", (msg, data) =>
{
spiderCeilingDrop.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push12", (msg, data) =>
{
fog.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push13", (msg, data) =>
{
candyEyes.Value = data.First() != 0;
});
oscServer.RegisterAction <int>("/1/push14", (msg, data) =>
{
// flickerEffect.Start();
spiderLight.Color = Color.Red;
spiderLight.Brightness = data.First();
pinSpot.Color = Color.Purple;
pinSpot.Brightness = data.First();
strobeDimmer.Brightness = data.First();
wall1Light.Color = Color.Purple;
wall1Light.Brightness = data.First();
wall2Light.Color = Color.Purple;
wall2Light.Brightness = data.First();
wall3Light.Color = Color.Purple;
wall3Light.Brightness = data.First();
wall4Light.Color = Color.Purple;
wall4Light.Brightness = data.First();
// audioDIN.PlayEffect("gollum_precious1.wav");
});
oscServer.RegisterAction <int>("/1/push20", d => d.First() != 0, (msg, data) =>
{
video3dfx.PlayVideo("PHA_Siren_ComeHither_3DFX_H.mp4");
});
oscServer.RegisterAction <int>("/1/push21", d => d.First() != 0, (msg, data) =>
{
// video2.PlayVideo("SkeletonSurprise_Door_Horz_HD.mp4");
video2.PlayVideo("Beauty_Startler_TVHolo_Hor_HD.mp4");
});
oscServer.RegisterAction <int>("/1/push22", d => d.First() != 0, (msg, data) =>
{
video2.PlayVideo("FearTheReaper_Door_Horz_HD.mp4");
});
oscServer.RegisterAction <int>("/1/push23", d => d.First() != 0, (msg, data) =>
{
video2.PlayVideo("SkeletonSurprise_Door_Horz_HD.mp4");
});
oscServer.RegisterAction <int>("/1/push24", d => d.First() != 0, (msg, data) =>
{
video2.PlayVideo("DancingDead_Wall_HD.mp4");
});
oscServer.RegisterAction("/1", msg =>
{
this.log.Information("Page 1");
manualFader.Value = false;
SetPixelColor();
});
oscServer.RegisterAction("/2", msg =>
{
this.log.Information("Page 2");
manualFader.Value = true;
SetPixelColor();
});
oscServer.RegisterAction <float>("/2/faderBright", (msg, data) =>
{
faderBright.Value = data.First();
SetPixelColor();
});
oscServer.RegisterAction <float>("/2/faderR", (msg, data) =>
{
faderR.Value = data.First();
SetPixelColor();
});
oscServer.RegisterAction <float>("/2/faderG", (msg, data) =>
{
faderG.Value = data.First();
SetPixelColor();
});
oscServer.RegisterAction <float>("/2/faderB", (msg, data) =>
{
faderB.Value = data.First();
SetPixelColor();
});
midiInput.Note(midiChannel, 36).Subscribe(x =>
{
if (x)
{
audioCat.PlayEffect("266 Monster Growl 7", 1.0, 1.0);
}
});
midiInput.Note(midiChannel, 37).Subscribe(x =>
{
if (x)
{
audioCat.PlayEffect("285 Monster Snarl 2", 1.0, 1.0);
}
});
midiInput.Note(midiChannel, 38).Subscribe(x =>
{
if (x)
{
audioCat.PlayEffect("286 Monster Snarl 3", 1.0, 1.0);
}
});
midiInput.Note(midiChannel, 39).Subscribe(x =>
{
if (x)
{
audioCat.PlayEffect("287 Monster Snarl 4", 1.0, 1.0);
}
});
midiInput.Note(midiChannel, 40).Subscribe(x =>
{
if (x)
{
audioMain.PlayBackground();
}
});
midiInput.Note(midiChannel, 41).Subscribe(x =>
{
if (x)
{
audioMain.PauseBackground();
}
});
midiInput.Note(midiChannel, 42).Subscribe(x =>
{
spiderCeilingDrop.Value = x;
});
// catMotion.Output.Subscribe(catLights.Control);
catMotion.Output.Subscribe(x =>
{
if (x && hoursSmall.IsOpen)
{
Executor.Current.Execute(catSeq);
}
touchOSC.Send("/1/led1", x ? 1 : 0);
});
firstBeam.Output.Subscribe(x =>
{
touchOSC.Send("/1/led2", x ? 1 : 0);
//if (x)
// Executor.Current.Execute(welcomeSeq);
});
finalBeam.Output.Subscribe(x =>
{
touchOSC.Send("/1/led3", x ? 1 : 0);
});
motion2.Output.Subscribe(x =>
{
if (x && hoursSmall.IsOpen)
{
Executor.Current.Execute(motionSeq);
}
touchOSC.Send("/1/led4", x ? 1 : 0);
});
welcomeSeq.WhenExecuted
.Execute(i =>
{
audioPop.PlayEffect("100471__robinhood76__01886-welcome-spell.wav");
i.WaitFor(S(3));
});
catSeq.WhenExecuted
.Execute(instance =>
{
var maxRuntime = System.Diagnostics.Stopwatch.StartNew();
catLights.Value = true;
while (true)
{
switch (random.Next(4))
{
case 0:
audioCat.PlayEffect("266 Monster Growl 7", 1.0, 1.0);
instance.WaitFor(TimeSpan.FromSeconds(2.0));
break;
case 1:
audioCat.PlayEffect("285 Monster Snarl 2", 1.0, 1.0);
instance.WaitFor(TimeSpan.FromSeconds(3.0));
break;
case 2:
audioCat.PlayEffect("286 Monster Snarl 3", 1.0, 1.0);
instance.WaitFor(TimeSpan.FromSeconds(2.5));
break;
case 3:
audioCat.PlayEffect("287 Monster Snarl 4", 1.0, 1.0);
instance.WaitFor(TimeSpan.FromSeconds(1.5));
break;
default:
instance.WaitFor(TimeSpan.FromSeconds(3.0));
break;
}
instance.CancelToken.ThrowIfCancellationRequested();
if (maxRuntime.Elapsed.TotalSeconds > 10)
{
break;
}
}
})
.TearDown(() =>
{
catLights.Value = false;
});
motionSeq.WhenExecuted
.Execute(instance =>
{
//video2.PlayVideo("DancingDead_Wall_HD.mp4");
instance.WaitFor(S(10));
})
.TearDown(() =>
{
});
SetPixelColor();
}