public static Fixture GetMovingFixture(string axisName, int axisMin, int axisMax, JObject options = null)
 {
     Definition definition = FixtureDefinitionTests.GetMovingFixtureDefinition(axisName, axisMin, axisMax);
     Group group = GroupTests.GetGroup();
     Fixture fixture = new Fixture(definition, 1, group, options ?? new JObject());
     return fixture;
 }
 public static Fixture GetColorWheelFixture(IEnumerable<ColorWheelEntry> colors)
 {
     Definition definition = new Definition();
     definition.Channels.Add(new DMXChannel("ColorWheel", definition.Channels.Count + 1));
     definition.Channels.Add(new DMXChannel("Master", definition.Channels.Count + 1));
     definition.ColorWheel.AddRange(colors);
     Fixture fixture = new Fixture(definition, 1, GroupTests.GetGroup(), new Newtonsoft.Json.Linq.JObject());
     return fixture;
 }
 public static Fixture GetRGBFixture(JObject options = null)
 {
     var definition = new Definition();
     definition.Channels.Add(new DMXChannel("Red", definition.Channels.Count + 1));
     definition.Channels.Add(new DMXChannel("Green", definition.Channels.Count + 1));
     definition.Channels.Add(new DMXChannel("Blue", definition.Channels.Count + 1));
     var fixture = new Fixture(definition, 1, GroupTests.GetGroup(), options ?? new JObject());
     return fixture;
 }
 public RandomMove(Fixture fixture) : base(fixture, "RandomMove" )
 {
     Axis = new Dictionary<string, AnimatableAxis>();
     foreach (string name in fixture.MovementAxis.Keys)
     {
         AnimatableAxis animAxis = new AnimatableAxis(name);
         Axis.Add(name, animAxis);
     }
 }
 public static Fixture Get16BitMovingFixture(params string[] axis)
 {
     var definition = new Definition();
     foreach (string axisName in axis)
     {
         definition.Axis.Add(new MovementAxis(axisName, -90, 90));
         definition.Channels.Add(new DMXChannel(axisName + "Coarse", definition.Channels.Count + 1));
         definition.Channels.Add(new DMXChannel(axisName + "Fine", definition.Channels.Count + 1));
     }
     Fixture fixture = new Fixture(definition, 1, GroupTests.GetGroup(), new Newtonsoft.Json.Linq.JObject());
     return fixture;
 }
        public MovementRestrictionSolver(Fixture fixture, JObject options) : base(fixture)
        {
            Axis = new Dictionary<string, RestrictableMovementAxis>();
            foreach(JObject obj in options["axisRestrictions"].Values<JObject>())
            {
                MovementAxis movement = fixture.MovementAxis[obj["name"].Value<string>()];

                int min = obj["min"].Value<int>();
                int max = obj["max"].Value<int>();
                var axis = new RestrictableMovementAxis(movement, min, max);
                Axis.Add(movement.Name, axis);
            }
        }
 public static IEnumerable<FixtureSolver> GetDefaultSolvers(Fixture fixture, JObject options)
 {
     List<FixtureSolver> solvers = new List<FixtureSolver>();
     if (MasterAtFullSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new MasterAtFullSolver(fixture));
     }
     if(FakeUVSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new FakeUVSolver(fixture));
     }
     if (FakeStrobeSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new FakeStrobeSolver(fixture));
     }
     if(ApeshitFixtureSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new ApeshitFixtureSolver(fixture));
     }
     if (HSBtoRGBSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new HSBtoRGBSolver(fixture));
     }
     if (HSBtoColorWheelSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new HSBtoColorWheelSolver(fixture));
     }
     if (BrightnessLimiterSolver.SuitableFor(fixture.Definition, options))
     {
         solvers.Add(new BrightnessLimiterSolver(fixture, options));
     }
     if (RandomMove.SuitableFor(fixture.Definition))
     {
         solvers.Add(new RandomMove(fixture));
     }
     if (MovementRestrictionSolver.SuitableFor(fixture.Definition, options))
     {
         solvers.Add(new MovementRestrictionSolver(fixture, options));
     }
     if (MovementInversionSolver.SuitableFor(fixture.Definition, options))
     {
         solvers.Add(new MovementInversionSolver(fixture, options));
     }
     if (PanTilt16BitSolver.SuitableFor(fixture.Definition))
     {
         solvers.Add(new PanTilt16BitSolver(fixture));
     }
     return solvers;
 }
 public FakeStrobeSolver(Fixture fixture, Strobe strobe) : base(fixture, "Strobe")
 {
     Strobe = strobe;
 }
 public FixtureSolver(Fixture fixture, params string[] attributes) : base(fixture.Settables, fixture.FrameSettables, attributes)
 { }
        public MasterAtFullSolver(Fixture fixture) : base(fixture)
        {

        }
 public HSBtoColorWheelSolver(Fixture fixture) : base(fixture, "Hue", "Saturation", "Brightness")
 {
     ColorWheel = fixture.Definition.ColorWheel;
 }
 public PanTilt16BitSolver(Fixture fixture) : base(fixture, Get16BitAxisNames(fixture.Definition).ToArray())
 {
     AxisNames = from axis in fixture.Definition.Axis
                 select axis.Name;
 }
 public HSBtoRGBSolver(Fixture fixture) : base(fixture, "Hue", "Saturation", "Brightness")
 {
     
 }
 public static Fixture Load(JObject obj)
 {
     int startChannel = obj["channel"].Value<int>();
     string type = obj["type"].Value<string>();
     Definition definition = Definition.Load(type);
     string groupName = obj["group"].Value<string>();
     Group group = MasterController.Instance.Groups.ContainsKey(groupName) ? MasterController.Instance.Groups[groupName] : MasterController.Instance.Groups.Values.First();
     JObject options = obj["options"].Value<JObject>();
     Fixture fixture = new Fixture(definition, startChannel, group, options);
     return fixture;
 }
 public FakeStrobeSolver(Fixture fixture) : this(fixture, MasterController.Instance?.Strobe ?? new Strobe(20)) { }
        public ApeshitFixtureSolver(Fixture fixture) : base(fixture, "Apeshit", "ApeshitFixtureSelected")
        {

        }
        public FakeUVSolver(Fixture fixture) : base(fixture, "UV")
        {

        }
 public BrightnessLimiterSolver(Fixture fixture, JObject options) : base(fixture)
 {
     MaxBrightness = options["maxBrightness"].Value<float>();
 }
 public MovementInversionSolver(Fixture fixture, JObject options) : base(fixture)
 {
     InvertedAxis = GetInvertedAxis(fixture.Definition, options);
 }