public static IEnumIn CreateEnumInput(this IPluginHost host, InputAttribute attribute, Type type)
        {
            //this creates and sets the default for a .NET enum
            if (!typeof(EnumEntry).IsAssignableFrom(type))
            {
                var entries = Enum.GetNames(type);
                host.UpdateEnum(type.FullName, entries[0], entries);
            }

            IEnumIn result = null;

            host.CreateEnumInput(attribute.Name, (TSliceMode)attribute.SliceMode, (TPinVisibility)attribute.Visibility, out result);

            if (!string.IsNullOrWhiteSpace(attribute.DefaultEnumEntry))
            {
                result.SetDefaultEntry(attribute.DefaultEnumEntry);
            }

            if (!typeof(EnumEntry).IsAssignableFrom(type))
            {
                result.SetSubType(type.FullName);
            }
            else
            {
                result.SetSubType(attribute.EnumName);
            }

            SetInputProperties(result, attribute);

            return(result);
        }
Exemple #2
0
        public void Configurate(IPluginConfig Input)
        {
            if (Input == this.FPinInManualTiming)
            {
                try
                {
                    double dblmanual;
                    this.FPinInManualTiming.GetValue(0, out dblmanual);

                    if (dblmanual < 0.5)
                    {
                        if (this.FPinInTime != null)
                        {
                            this.FHost.DeletePin(this.FPinInTime);
                            this.FPinInTime = null;
                        }

                        this.FHost.CreateEnumInput("Clock", TSliceMode.Single, TPinVisibility.True, out this.FPinInDevice);
                        this.FPinInDevice.SetSubType("Clock Input Devices");
                    }
                    else
                    {
                        if (this.FPinInDevice != null)
                        {
                            this.FHost.DeletePin(this.FPinInDevice);
                            this.FPinInDevice = null;
                        }

                        this.FHost.CreateValueInput("Time", 1, null, TSliceMode.Single, TPinVisibility.True, out this.FPinInTime);
                        this.FPinInTime.SetSubType(0, double.MaxValue, 0.01, 0, false, false, false);
                    }
                }
                catch (Exception ex)
                {
                    this.FHost.Log(TLogType.Error, ex.Message);
                }
            }
        }
Exemple #3
0
        public static IEnumIn CreateEnumInput(this IPluginHost host, InputAttribute attribute, Type type)
        {
            if (!typeof(EnumEntry).IsAssignableFrom(type))
            {
                var entries  = Enum.GetNames(type);
                var defEntry = !string.IsNullOrEmpty(attribute.DefaultEnumEntry) ? attribute.DefaultEnumEntry : entries[0];
                host.UpdateEnum(type.FullName, defEntry, entries);
            }

            IEnumIn result = null;

            host.CreateEnumInput(attribute.Name, (TSliceMode)attribute.SliceMode, (TPinVisibility)attribute.Visibility, out result);
            if (!typeof(EnumEntry).IsAssignableFrom(type))
            {
                result.SetSubType(type.FullName);
            }
            else
            {
                result.SetSubType(attribute.EnumName);
            }
            SetInputProperties(result, attribute);
            return(result);
        }
Exemple #4
0
 public DynamicEnumInStream(IEnumIn enumIn, string enumName)
     : base(enumIn)
 {
     FEnumName = enumName;
 }
Exemple #5
0
 public EnumInStream(IEnumIn enumIn)
 {
     FEnumIn       = enumIn;
     FAutoValidate = enumIn.AutoValidate;
 }
Exemple #6
0
 public DynamicEnumInStream(IEnumIn enumIn, string enumName)
     : base(enumIn)
 {
     FEnumName = enumName;
     enumIn.SetEnumChangedListener(this);
 }
Exemple #7
0
        public void CreateEnumInput(string Name, TSliceMode SliceMode, TPinVisibility Visibility, out IEnumIn Pin)
        {
            Pin = new TEnumPin(this, Name, TPinDirection.Input, null, SliceMode, Visibility);

            AddPin(Pin as TBasePin);
        }