Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
        /// <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);
        }