private void Update(EvaluationContext context) { if (!_initialized) { SetupMediaFoundation(); _initialized = true; } if (Texture.DirtyFlag.IsDirty || ShaderResourceView.DirtyFlag.IsDirty) { SetupTexture(new Size2(512, 512)); //Initialize(filepath: Path.GetValue(context)); } if (_engine == null) { return; } if (Path.DirtyFlag.IsDirty) { Url = Path.GetValue(context); } //TransferFrame(); UpdateVideo(); }
public static T GetValueOfFieldWithType <T>(EvaluationContext context, InputSlot <StructuredList> dataListInput, InputSlot <int> itemIndex, InputSlot <int> FieldIndex, InputSlot <string> orFieldName, ref FieldInfo fieldRef) { var list = dataListInput.GetValue(context); if (list == null || list.NumElements == 0) { return(default);
public static T GetEnumValue <T>(this InputSlot <int> intInputSlot, EvaluationContext context) where T : Enum { return(CastTo <T> .From(intInputSlot.GetValue(context))); }
private void Update(EvaluationContext context) { _trainedDeviceName = Device.GetValue(context); _trainedChannel = Channel.GetValue(context); _trainedControllerId = Control.GetValue(context); _allowPresets = AllowPresets.GetValue(context); _controlRange = ControlRange.GetValue(context); _printLogMessages = PrintLogMessages.GetValue(context); var teachTrigger = !TeachTrigger.GetValue(context); var teachJustTriggered = !teachTrigger && !_oldTeachTrigger; _oldTeachTrigger = !teachTrigger; var controlRangeSize = (_controlRange.Height - _controlRange.Width).Clamp(1, 128); if (_valuesForControlRange == null || _valuesForControlRange.Count != controlRangeSize) { _valuesForControlRange = new List <float>(controlRangeSize); _valuesForControlRange.AddRange(new float[controlRangeSize]); //initialize list values } if (teachJustTriggered) { MidiInConnectionManager.Rescan(); _teachingActive = true; _lastMatchingSignals.Clear(); _currentControllerValue = 0; } lock (this) { foreach (var signal in _lastMatchingSignals) { if (_teachingActive) { Device.TypedInputValue.Value = _lastMessageDevice.ProductName; Device.Input.IsDefault = false; Device.DirtyFlag.Invalidate(); Channel.TypedInputValue.Value = signal.Channel; Channel.Input.IsDefault = false; Channel.DirtyFlag.Invalidate(); Control.TypedInputValue.Value = signal.ControllerId; Control.Input.IsDefault = false; Control.DirtyFlag.Invalidate(); _trainedDeviceName = _lastMessageDevice.ProductName; _trainedChannel = signal.Channel; _trainedControllerId = signal.ControllerId; _teachingActive = false; TeachTrigger.TypedInputValue.Value = false; } _currentControllerValue = signal.ControllerValue; _currentControllerId = signal.ControllerId; var isWithinControlRange = signal.ControllerId >= _controlRange.Width && signal.ControllerId < _controlRange.Height; if (isWithinControlRange) { var index = signal.ControllerId - _controlRange.Width; _valuesForControlRange[index] = signal.ControllerValue; } _isDefaultValue = false; } _lastMatchingSignals.Clear(); } if (_isDefaultValue) { Result.Value = DefaultMidiValue.GetValue(context); return; } var outRange = OutputRange.GetValue(context); Result.Value = UseControlRange ? _currentControllerId : MathUtils.RemapAndClamp(_currentControllerValue, 0, 127, outRange.X, outRange.Y); Range.Value = _valuesForControlRange; }