예제 #1
0
            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);
                    }
                }
            }
예제 #4
0
            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();
            }
        }
예제 #7
0
        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);
        }