Пример #1
0
        private void SubtypeChangedCB(object sender, EventArgs e)
        {
            if (State == RemoteValueState.Remove)
            {
                return;
            }

            var subtype = FValuePin.SubType.Split(',');

            Type    = subtype[0];
            Default = float.Parse(subtype[2], FNumberFormat);
            Minimum = float.Parse(subtype[3], FNumberFormat);
            Maximum = float.Parse(subtype[4], FNumberFormat);

            State = RemoteValueState.Update;
        }
Пример #2
0
        public RemoteValue(INode2 node, List <string> prefixes)
        {
            FNumberFormat.NumberDecimalSeparator = ".";
            Node      = node;
            FPrefixes = prefixes;

            //note: this will break if patches are renamed!
            RuntimeNodePath = Node.GetNodePath(false);
            SourceNodePath  = Node.Parent.NodeInfo.Filename + "/" + node.ID;

            FNamePin          = node.LabelPin;
            FNamePin.Changed += ValueChangedCB;
            Name              = FNamePin[0];
            if (string.IsNullOrEmpty(Name))
            {
                Name = RuntimeNodePath;
            }

            FValuePin                 = Node.FindPin("Y Input Value");
            FValuePin.Changed        += ValueChangedCB;
            FValuePin.SubtypeChanged += SubtypeChangedCB;

            Value = float.Parse(FValuePin[0], FNumberFormat);

            var subtype = FValuePin.SubType.Split(',');

            Type    = subtype[0];
            Default = float.Parse(subtype[2], FNumberFormat);
            Minimum = float.Parse(subtype[3], FNumberFormat);
            Maximum = float.Parse(subtype[4], FNumberFormat);

            if (Type == "Slider")
            {
                Stepsize = 1;
            }
            else
            {
                Stepsize = 0.01f;
            }

            State = RemoteValueState.Add;
        }
Пример #3
0
        private void ValueChangedCB(object sender, EventArgs e)
        {
            if (State == RemoteValueState.Remove)
            {
                return;
            }

            var pin = sender as IPin2;

            if (pin == FValuePin)
            {
                Value = float.Parse(FValuePin[0], FNumberFormat);
            }
            else if (pin == FNamePin)
            {
                Name = FNamePin[0];
            }

            State = RemoteValueState.Update;
        }
Пример #4
0
 public void InvalidateState()
 {
     State = RemoteValueState.Idle;
 }