private void CreateJoystickSurfaceItem(Dictionary <string, FixtureReference> references, XElement xeSurfaceItem, out SliderSurfaceItem xSurfaceItem, out SliderSurfaceItem ySurfaceItem) { xSurfaceItem = null; ySurfaceItem = null; var xaName = xeSurfaceItem.Attribute("name"); string name = ""; if (xaName != null) { name = xaName.Value; } var xePanOutput = xeSurfaceItem.Element("PanOutput"); if (xePanOutput == null) { throw new Exception("missing Output element for " + xeSurfaceItem); } xSurfaceItem = CreateJoystickAxisSurfaceItem(name + "X", references, xePanOutput); var xeTiltOutput = xeSurfaceItem.Element("TiltOutput"); if (xeTiltOutput == null) { throw new Exception("missing Output element for " + xeSurfaceItem); } ySurfaceItem = CreateJoystickAxisSurfaceItem(name + "Y", references, xeTiltOutput); }
private SliderSurfaceItem CreateJoystickAxisSurfaceItem(string name, Dictionary <string, FixtureReference> references, XElement xeAxisOutput) { var xaRefFixtMinMax = xeAxisOutput.Attribute("ref-minmaxfixture"); var xaRefRangeMinMax = xeAxisOutput.Attribute("ref-minmaxrange"); byte min = 0; byte max = 255; byte defaultValue = 0; if (xaRefFixtMinMax != null) { var fixt = fixturesDb.Fixtures[references[xaRefFixtMinMax.Value].DbFixtureId]; if (fixt == null) { throw new Exception("Invalid fixture reference '" + xaRefFixtMinMax.Value + "' in mapping file"); } var rangeMinMax = fixt.GetInputRangeByNum(xaRefRangeMinMax.Value); if (rangeMinMax == null) { throw new Exception("Invalid range num reference '" + xaRefRangeMinMax.Value + "' in mapping file"); } min = rangeMinMax.Minimum; max = rangeMinMax.Maximum; } var xaDefaultValue = xeAxisOutput.Attribute("default"); if (xaDefaultValue != null) { defaultValue = byte.Parse(xaDefaultValue.Value); } if (defaultValue < min) { defaultValue = min; } List <DmxBinding> dmxChannelTargets = BuildBindingList(references, xeAxisOutput); var ssi = new SliderSurfaceItem(name, dmxChannelTargets, min, max, defaultValue); return(ssi); }
private void CreateColorSelectorSurfaceItem(Dictionary <string, FixtureReference> references, XElement xeSurfaceItem, out SliderSurfaceItem redSurfaceItem, out SliderSurfaceItem greenSurfaceItem, out SliderSurfaceItem blueSurfaceItem) { redSurfaceItem = null; greenSurfaceItem = null; blueSurfaceItem = null; var xaName = xeSurfaceItem.Attribute("name"); string name = ""; if (xaName != null) { name = xaName.Value; } var xeRedOutput = xeSurfaceItem.Element("RedOutput"); if (xeRedOutput == null) { throw new Exception("missing Output element for " + xeSurfaceItem); } redSurfaceItem = CreateJoystickAxisSurfaceItem(name + "RED", references, xeRedOutput); var xeGreenOutput = xeSurfaceItem.Element("GreenOutput"); if (xeGreenOutput == null) { throw new Exception("missing Output element for " + xeSurfaceItem); } greenSurfaceItem = CreateJoystickAxisSurfaceItem(name + "GREEN", references, xeGreenOutput); var xeBlueOutput = xeSurfaceItem.Element("BlueOutput"); if (xeBlueOutput == null) { throw new Exception("missing Output element for " + xeSurfaceItem); } blueSurfaceItem = CreateJoystickAxisSurfaceItem(name + "BLUE", references, xeBlueOutput); }
private SliderSurfaceItem CreateSliderSurfaceItem(Dictionary <string, FixtureReference> references, XElement xeSurfaceItem) { var xeOutput = xeSurfaceItem.Element("Output"); if (xeOutput == null) { throw new Exception("missing Output element for " + xeSurfaceItem); } var xaRefFixtMinMax = xeSurfaceItem.Attribute("ref-minmaxfixture"); var xaRefRangeMinMax = xeSurfaceItem.Attribute("ref-minmaxrange"); var xaName = xeSurfaceItem.Attribute("name"); string name = ""; if (xaName != null) { name = xaName.Value; } byte min = 0; byte max = 255; byte defaultValue = 0; string rangeMinMaxRef = null; if (xaRefFixtMinMax != null) { var fixt = fixturesDb.Fixtures[references[xaRefFixtMinMax.Value].DbFixtureId]; if (fixt == null) { throw new Exception("Invalid fixture reference '" + xaRefFixtMinMax.Value + "' in mapping file"); } var rangeMinMax = fixt.GetInputRangeByNum(xaRefRangeMinMax.Value); if (rangeMinMax == null) { throw new Exception("Invalid range num reference '" + xaRefRangeMinMax.Value + "' in mapping file"); } min = rangeMinMax.Minimum; max = rangeMinMax.Maximum; rangeMinMaxRef = rangeMinMax.Num; } var xaDefaultValue = xeOutput.Attribute("default"); if (xaDefaultValue != null) { defaultValue = byte.Parse(xaDefaultValue.Value); } if (defaultValue < min) { defaultValue = min; } List <DmxBinding> dmxChannelTargets = BuildBindingList(references, xeOutput, rangeMinMaxRef); var ssi = new SliderSurfaceItem(name, dmxChannelTargets, min, max, defaultValue); var xaImg = xeSurfaceItem.Attribute("img"); if (xaImg != null) { ssi.ImageResourceName = xaImg.Value; } return(ssi); }