コード例 #1
0
        public void ImportButtons(EnumButtonImportMode importMode, List <ButtonExport> buttonExports)
        {
            var streamDeckButtons = buttonExports.Where(o => o.LayerName == _name).Select(m => m.Button).ToList();

            if (streamDeckButtons.Count > 0)
            {
                ImportButtons(importMode, streamDeckButtons);
            }
        }
コード例 #2
0
        public void ImportButtons(EnumButtonImportMode importMode, List <ButtonExport> buttonExports)
        {
            var importLayerNames = buttonExports.Select(o => o.LayerName).Distinct().ToList();

            foreach (var importLayerName in importLayerNames)
            {
                if (!LayerExists(importLayerName))
                {
                    var newLayer = new StreamDeckLayer {
                        Name = importLayerName
                    };
                    AddLayer(newLayer);
                }

                var layer = GetLayer(importLayerName);
                layer.ImportButtons(importMode, buttonExports);
            }
        }
コード例 #3
0
        public void ImportButtons(EnumButtonImportMode importMode, List <StreamDeckButton> newStreamDeckButtons)
        {
            var changesMade = false;

            foreach (var newStreamDeckButton in newStreamDeckButtons)
            {
                var found = false;

                newStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel;

                foreach (var oldStreamDeckButton in _streamDeckButtons)
                {
                    if (oldStreamDeckButton.StreamDeckButtonName == newStreamDeckButton.StreamDeckButtonName)
                    {
                        found = true;

                        if (importMode == EnumButtonImportMode.Replace)
                        {
                            oldStreamDeckButton.ClearConfiguration();
                            oldStreamDeckButton.Consume(true, newStreamDeckButton);
                            // Let propagate down so it isn't null
                            oldStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel;

                            changesMade = true;
                        }
                        else if (importMode == EnumButtonImportMode.Overwrite)
                        {
                            oldStreamDeckButton.Consume(true, newStreamDeckButton);
                            // Let propagate down so it isn't null
                            oldStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel;

                            changesMade = true;
                        }
                        else if (importMode == EnumButtonImportMode.None)
                        {
                            if (oldStreamDeckButton.Face == null && newStreamDeckButton.Face != null)
                            {
                                var face = newStreamDeckButton.Face.DeepClone();
                                face.AfterClone();
                                oldStreamDeckButton.Face = face;
                                changesMade = true;
                            }
                            if (oldStreamDeckButton.ActionForPress == null && newStreamDeckButton.ActionForPress != null)
                            {
                                oldStreamDeckButton.ActionForPress = newStreamDeckButton.ActionForPress.DeepClone();

                                changesMade = true;
                            }
                            if (oldStreamDeckButton.ActionForRelease == null && newStreamDeckButton.ActionForRelease != null)
                            {
                                oldStreamDeckButton.ActionForRelease = newStreamDeckButton.ActionForRelease.DeepClone();

                                changesMade = true;
                            }
                            // Let propagate down so it isn't null
                            oldStreamDeckButton.StreamDeckPanelInstance = _streamDeckPanel;
                        }

                        break;
                    }
                }

                if (!found)
                {
                    _streamDeckButtons.Add(newStreamDeckButton);
                    changesMade = true;
                }
            }

            if (changesMade)
            {
                NotifyChanges();
            }
        }
コード例 #4
0
 public void ImportButtons(EnumButtonImportMode importMode, List <ButtonExport> buttonExports)
 {
     _streamDeckLayerHandler.ImportButtons(importMode, buttonExports);
 }