protected override void OnParameter(GlowParameterBase glow, int[] path) { var glowValue = glow.Value; if (glowValue != null) { var item = OpenItem(path, true); if (item.IsValue) { var valueKind = item.Parent.Key.GetValueKind(item.Name); switch (valueKind) { case RegistryValueKind.DWord: item.Parent.Key.SetValue(item.Name, (int)glowValue.Integer); break; case RegistryValueKind.QWord: item.Parent.Key.SetValue(item.Name, glowValue.Integer); break; case RegistryValueKind.String: item.Parent.Key.SetValue(item.Name, glowValue.String); break; } var glowRoot = GlowRootElementCollection.CreateRoot(); CreateGlowParameter(item, path, null, GlowFieldFlags.Value, glowRoot); _client.Write(glowRoot); } CloseItem(item); } }
void IDynamicPathHandler.HandleParameter(GlowParameterBase parameter, int[] path, Client source) { var offset = Path.Length; if (path.Length == offset + 5 && path[offset + 0] == ParametersSubIdentifier && path[offset + 1] == 3) // connections { Dictionary <int, XpointParams> dict; if (_xpointParameters.TryGetValue(path[offset + 2], out dict)) // target { XpointParams xpointParams; if (dict.TryGetValue(path[offset + 3], out xpointParams)) // source { if (path[offset + 4] == 1) // gain { var value = parameter.Value; if (value != null && value.Type == GlowParameterType.Real) { xpointParams.Gain = value.Real; Dispatcher.NotifyParameterValueChanged(path, new GlowValue(xpointParams.Gain)); } } } } } }
protected override void OnParameter(GlowParameterBase glow, int[] path) { IDynamicPathHandler dynamicPathHandler; var parameter = _dispatcher.Root.ResolveChild(path, out dynamicPathHandler) as ParameterBase; if (parameter != null) { var glowValue = glow.Value; if (glowValue != null) { switch (glowValue.Type) { case GlowParameterType.Boolean: { var booleanParameter = parameter as BooleanParameter; if (booleanParameter != null) { booleanParameter.Value = glowValue.Boolean; } break; } case GlowParameterType.Integer: { var integerParameter = parameter as IntegerParameter; if (integerParameter != null) { integerParameter.Value = glowValue.Integer; } break; } case GlowParameterType.String: { var stringParameter = parameter as StringParameter; if (stringParameter != null) { stringParameter.Value = glowValue.String; } break; } } } } else { if (dynamicPathHandler != null) { dynamicPathHandler.HandleParameter(glow, path, _source); } } }
void RemapParameterStreamIdentifier(GlowParameterBase glow) { var streamIdentifier = glow.StreamIdentifier; if (streamIdentifier != null) { glow.StreamIdentifier = streamIdentifier.Value + StreamIdentifierFactor * EndPointNumber; } }
void FillParameter(GlowParameterBase glow, XElement xml) { var contentsXml = xml.Element("contents"); if (contentsXml != null) { contentsXml.Element("identifier").Do(value => glow.Identifier = value); contentsXml.Element("description").Do(value => glow.Description = value); var valueXml = contentsXml.Element("value"); if (valueXml != null) { glow.Value = ConvertValue(valueXml); } var minimumXml = contentsXml.Element("minimum"); if (minimumXml != null) { glow.Minimum = ConvertMinMax(minimumXml); } var maximumXml = contentsXml.Element("maximum"); if (maximumXml != null) { glow.Maximum = ConvertMinMax(maximumXml); } contentsXml.Element("enumeration").Do(value => glow.Enumeration = value); contentsXml.Element("factor").Do(value => glow.Factor = XmlConvert.ToInt32(value)); contentsXml.Element("format").Do(value => glow.Format = value); contentsXml.Element("step").Do(value => glow.Step = XmlConvert.ToInt32(value)); contentsXml.Element("access").Do(value => glow.Access = XmlConvert.ToInt32(value)); contentsXml.Element("type").Do(value => glow.Type = XmlConvert.ToInt32(value)); contentsXml.Element("isOnline").Do(value => glow.IsOnline = XmlConvert.ToBoolean(value)); contentsXml.Element("streamIdentifier").Do(value => glow.StreamIdentifier = XmlConvert.ToInt32(value)); var enumMapXml = contentsXml.Element("enumMap"); if (enumMapXml != null) { glow.EnumMap = ConvertStringIntegerCollection(GlowTags.ParameterContents.EnumMap, enumMapXml); } var streamDescriptorXml = contentsXml.Element("streamDescriptor"); if (streamDescriptorXml != null) { glow.StreamDescriptor = ConvertStreamDescription(GlowTags.ParameterContents.StreamDescriptor, streamDescriptorXml); } } var childrenXml = xml.Element("children"); if (childrenXml != null) { FillElementCollection(glow.EnsureChildren(), childrenXml); } }
void ConvertParameter(GlowParameterBase glow, XmlWriter writer) { if (glow.HasContents) { writer.WriteStartElement("contents"); glow.Identifier.Do(value => writer.WriteElementString("identifier", value)); glow.Description.Do(value => writer.WriteElementString("description", value)); var glowValue = glow.Value; if (glowValue != null) { ConvertValue("value", glowValue, writer); } var glowMinMax = glow.Minimum; if (glowMinMax != null) { ConvertMinMax("minimum", glowMinMax, writer); } glowMinMax = glow.Maximum; if (glowMinMax != null) { ConvertMinMax("maximum", glowMinMax, writer); } glowValue = glow.Default; if (glowValue != null) { ConvertValue("default", glowValue, writer); } glow.Enumeration.Do(value => writer.WriteElementString("enumeration", value)); glow.Factor.Do(value => writer.WriteElementString("factor", XmlConvert.ToString(value))); glow.Format.Do(value => writer.WriteElementString("format", value)); glow.Step.Do(value => writer.WriteElementString("step", XmlConvert.ToString(value))); glow.Access.Do(value => writer.WriteElementString("access", XmlConvert.ToString(value))); glow.Type.Do(value => writer.WriteElementString("type", XmlConvert.ToString(value))); glow.IsOnline.Do(value => writer.WriteElementString("isOnlin", XmlConvert.ToString(value))); glow.StreamIdentifier.Do(value => writer.WriteElementString("streamIdentifier", XmlConvert.ToString(value))); var enumMap = glow.EnumMap; if (enumMap != null) { ConvertStringIntegerCollection("enumMap", enumMap, writer); } var streamDescriptor = glow.StreamDescriptor; if (streamDescriptor != null) { ConvertStreamDescription("streamDescriptor", streamDescriptor, writer); } writer.WriteEndElement(); } var children = glow.Children; if (children != null) { writer.WriteStartElement("children"); children.Accept(this, writer); writer.WriteEndElement(); } }
void FillParameter(GlowParameterBase glow, XElement xml) { var contentsXml = xml.Element("contents"); if(contentsXml != null) { contentsXml.Element("identifier").Do(value => glow.Identifier = value); contentsXml.Element("description").Do(value => glow.Description = value); var valueXml = contentsXml.Element("value"); if(valueXml != null) glow.Value = ConvertValue(valueXml); var minimumXml = contentsXml.Element("minimum"); if(minimumXml != null) glow.Minimum = ConvertMinMax(minimumXml); var maximumXml = contentsXml.Element("maximum"); if(maximumXml != null) glow.Maximum = ConvertMinMax(maximumXml); contentsXml.Element("enumeration").Do(value => glow.Enumeration = value); contentsXml.Element("factor").Do(value => glow.Factor = XmlConvert.ToInt32(value)); contentsXml.Element("format").Do(value => glow.Format = value); contentsXml.Element("step").Do(value => glow.Step = XmlConvert.ToInt32(value)); contentsXml.Element("access").Do(value => glow.Access = XmlConvert.ToInt32(value)); contentsXml.Element("type").Do(value => glow.Type = XmlConvert.ToInt32(value)); contentsXml.Element("isOnline").Do(value => glow.IsOnline = XmlConvert.ToBoolean(value)); contentsXml.Element("streamIdentifier").Do(value => glow.StreamIdentifier = XmlConvert.ToInt32(value)); var enumMapXml = contentsXml.Element("enumMap"); if(enumMapXml != null) glow.EnumMap = ConvertStringIntegerCollection(GlowTags.ParameterContents.EnumMap, enumMapXml); var streamDescriptorXml = contentsXml.Element("streamDescriptor"); if(streamDescriptorXml != null) glow.StreamDescriptor = ConvertStreamDescription(GlowTags.ParameterContents.StreamDescriptor, streamDescriptorXml); } var childrenXml = xml.Element("children"); if(childrenXml != null) FillElementCollection(glow.EnsureChildren(), childrenXml); }