public void PanelEvent(string profile, string panelHidId, PluginGamingPanelEnum panelId, int switchId, bool pressed, SortedList <int, IKeyPressInfo> keySequence)
 {
     /*
      * Your code here
      */
     PanelEventFileWriter.WriteEventInfoToFile(profile, panelHidId, panelId, switchId, pressed, keySequence);
 }
Пример #2
0
 public void PanelEvent(string profile, string panelHidId, PluginGamingPanelEnum panel, int switchId, bool pressed, SortedList <int, IKeyPressInfo> keySequence)
 {
     /*
      * Your code here
      */
     MessageBox.Show($"Profile : {profile}\nPanelID : {panel}\nSwitchId : {switchId}\nAction : {(pressed ? "Pressed" : "Released")}", $"This is a message from {PluginName}");
 }
Пример #3
0
 public static void WriteEventInfoToFile(string profile, string panelHidId, PluginGamingPanelEnum panelId, int switchId, bool pressed, SortedList <int, IKeyPressInfo> keySequence)
 {
     if (_panelEventFileWriter == null)
     {
         _panelEventFileWriter = new PanelEventFileWriter();
     }
     _panelEventFileWriter.WriteInfoToFile(profile, panelHidId, panelId, switchId, pressed, keySequence);
 }
        public void DoRelease()
        {
            while (_keyPressedThread != null)
            {
                _cancellationTokenSource?.Cancel();
                _keyPressedThread = null;
            }

            if (ActionForRelease == null)
            {
                /*
                 * Must do this here as there are no ActionTypeKey for this button, otherwise Plugin would never get any event
                 */
                if (PluginManager.PlugSupportActivated && PluginManager.HasPlugin())
                {
                    PluginGamingPanelEnum pluginPanel = _streamDeckPanel.TypeOfPanel switch
                    {
                        GamingPanelEnum.StreamDeckMini => PluginGamingPanelEnum.StreamDeckMini,
                        GamingPanelEnum.StreamDeck => PluginGamingPanelEnum.StreamDeck,
                        GamingPanelEnum.StreamDeckV2 => PluginGamingPanelEnum.StreamDeckV2,
                        GamingPanelEnum.StreamDeckMK2 => PluginGamingPanelEnum.StreamDeckMK2,
                        GamingPanelEnum.StreamDeckXL => PluginGamingPanelEnum.StreamDeckXL,
                        _ => PluginGamingPanelEnum.Unknown
                    };

                    PluginManager.DoEvent(
                        DCSFPProfile.SelectedProfile.Description,
                        StreamDeckPanelInstance.HIDInstance,
                        pluginPanel,
                        (int)StreamDeckButtonName,
                        false,
                        null);
                }
                return;
            }

            while (ActionForRelease.IsRunning())
            {
                _cancellationTokenSource?.Cancel();
            }

            /*
             * Can ActionForRelease really be repeatable??
             */
            /*if (ActionForRelease.IsRepeatable())
             * {
             *  _cancellationTokenSource = new CancellationTokenSource();
             *  var threadCancellationToken = _cancellationTokenSource.Token;
             *  ActionForRelease?.Execute(threadCancellationToken);
             * }
             * else
             * {*/
            ActionForRelease.Execute(CancellationToken.None);
            //}
        }
Пример #5
0
        public static void DoEvent(string profile, string panelHidId, PluginGamingPanelEnum panel, int switchId, bool pressed, SortedList <int, IKeyPressInfo> keySequence)
        {
            if (Get().Plugins == null)
            {
                return;
            }

            foreach (Lazy <IPanelEventHandler, IPanelEventHandlerMetaData> plugin in Get().Plugins)
            {
                plugin.Value.PanelEvent(profile, panelHidId, panel, switchId, pressed, keySequence);
            }
        }
Пример #6
0
        private static string GetInfoFromEnums(string profile, string panelHidId, PluginGamingPanelEnum panel, int switchId, bool pressed)
        {
            var result = $"{DateTime.Now:dd.MM.yyyy hh:mm:ss} {profile} {Enum.GetName(typeof(PluginGamingPanelEnum), panel)}  ";

            result += panel switch
            {
                PluginGamingPanelEnum.PZ55SwitchPanel => GetEventString <SwitchPanelPZ55Keys>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel => GetEventString <RadioPanelPZ69KnobsEmulator>(switchId, pressed),
                PluginGamingPanelEnum.PZ70MultiPanel => GetEventString <MultiPanelPZ70Knobs>(switchId, pressed),
                PluginGamingPanelEnum.TPM => GetEventString <TPMPanelSwitches>(switchId, pressed),
                PluginGamingPanelEnum.FarmingPanel => GetEventString <FarmingPanelMKKeys>(switchId, pressed),

                PluginGamingPanelEnum.StreamDeckMK2
                or PluginGamingPanelEnum.StreamDeckV2
                or PluginGamingPanelEnum.StreamDeck
                or PluginGamingPanelEnum.StreamDeckMini
                or PluginGamingPanelEnum.StreamDeckXL => GetEventString <EnumStreamDeckButtonNames>(switchId, pressed),

                PluginGamingPanelEnum.BackLitPanel => "BIP Event - ATTN : this panel cannot produce events",

                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_A10C => GetEventString <RadioPanelPZ69KnobsA10C>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_AJS37 => GetEventString <RadioPanelPZ69KnobsAJS37>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_AV8BNA => GetEventString <RadioPanelPZ69KnobsAV8BNA>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_BF109 => GetEventString <RadioPanelPZ69KnobsBf109>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_F14B => GetEventString <RadioPanelPZ69KnobsF14B>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_F5E => GetEventString <RadioPanelPZ69KnobsF5E>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_F86F => GetEventString <RadioPanelPZ69KnobsF86F>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_FA18C => GetEventString <RadioPanelPZ69KnobsFA18C>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_FW190 => GetEventString <RadioPanelPZ69KnobsFw190>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_KA50 => GetEventString <RadioPanelPZ69KnobsKa50>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_M2000C => GetEventString <RadioPanelPZ69KnobsM2000C>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_MI24P => GetEventString <RadioPanelPZ69KnobsMi24P>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_MI8 => GetEventString <RadioPanelPZ69KnobsMi8>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_MIG21BIS => GetEventString <RadioPanelPZ69KnobsMiG21Bis>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_P47D => GetEventString <RadioPanelPZ69KnobsP47D>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_P51D => GetEventString <RadioPanelPZ69KnobsP51D>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_SA342 => GetEventString <RadioPanelPZ69KnobsSA342>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_UH1H => GetEventString <RadioPanelPZ69KnobsUH1H>(switchId, pressed),
                PluginGamingPanelEnum.PZ69RadioPanel_PreProg_SPITFIRELFMKIX => GetEventString <RadioPanelPZ69KnobsSpitfireLFMkIX>(switchId, pressed),

                PluginGamingPanelEnum.Unknown
                or _ => "Unknown panel."
            };
            return(result += $" {panelHidId}\n");
        }
    }
Пример #7
0
        private void WriteInfoToFile(string profile, string panelHidId, PluginGamingPanelEnum panelId, int switchId, bool pressed, SortedList <int, IKeyPressInfo> keySequence)
        {
            lock (_lockObject)
            {
                File.AppendAllText(_filePath + _filename, GetInfoFromEnums(profile, panelHidId, panelId, switchId, pressed));

                if (keySequence == null)
                {
                    return;
                }

                foreach (var keyPressInfo in keySequence)
                {
                    File.AppendAllText(
                        _filePath + _filename,
                        "\t" +
                        Enum.GetName(typeof(KeyPressLength), keyPressInfo.Value.LengthOfBreak) + " " +
                        Enum.GetName(typeof(KeyPressLength), keyPressInfo.Value.LengthOfKeyPress) + " " +
                        keyPressInfo.Value.VirtualKeyCodesAsString
                        + "\n");
                }
            }
        }