private void KeyboardHookOnKeyDownCallback(KeyEventArgs e) { if (_layerModel == null) { return; } // Reset animation progress if layer wasn't drawn for 100ms if (new TimeSpan(0, 0, 0, 0, 100) < DateTime.Now - _layerModel.LastRender) { return; } lock (_keyPressLayers) { if (_keyPressLayers.Count >= 25) { return; } } var keyMatch = _deviceManager.ActiveKeyboard.GetKeyPosition(e.KeyCode); if (keyMatch == null) { return; } lock (_keyPressLayers) { // Ensure the layer has keypress properties SetupProperties(_layerModel); var properties = (KeyPressPropertiesModel)_layerModel.Properties; var layer = LayerModel.CreateLayer(); layer.Properties.X = keyMatch.Value.X - properties.Scale / 2; layer.Properties.Y = keyMatch.Value.Y - properties.Scale / 2; layer.Properties.Width = properties.Scale; layer.Properties.Height = properties.Scale; layer.Properties.AnimationSpeed = properties.AnimationSpeed; layer.LayerAnimation = new GrowAnimation(); // Setup the brush according to settings layer.Properties.Brush = properties.RandomColor ? ColorHelpers.RandomizeBrush(properties.Brush) : properties.Brush.CloneCurrentValue(); _keyPressLayers.Add(layer); } }
public LayerModel AddLayer(LayerModel afterLayer) { // Create a new layer var layer = LayerModel.CreateLayer(); if (afterLayer != null) { afterLayer.InsertAfter(layer); } else { Layers.Add(layer); FixOrder(); } return(layer); }
private void SetupHorizontal(AudioPropertiesModel settings) { _lines = (int)settings.Height; for (var i = 0; i < _lines; i++) { var layer = LayerModel.CreateLayer(); layer.Properties.X = settings.X; layer.Properties.Y = settings.Y + i; layer.Properties.Width = 0; layer.Properties.Height = 1; layer.LayerAnimation = new NoneAnimation(); layer.Properties.Brush = settings.Brush; layer.Properties.Contain = false; _audioLayers.Add(layer); layer.Update(null, false, true); } }
/// <summary> /// Adds a new layer to the profile and selects it /// </summary> public void AddLayer() { if (SelectedProfile == null) { return; } // Create a new layer var layer = LayerModel.CreateLayer(); if (ProfileViewModel.SelectedLayer != null) { ProfileViewModel.SelectedLayer.InsertAfter(layer); } else { SelectedProfile.Layers.Add(layer); SelectedProfile.FixOrder(); } UpdateLayerList(layer); }