Exemple #1
0
        void EndMapping()
        {
            // Create the keybind for the currently pressed keys

            var binding = new CompoundKeyBind(ActiveKeyboardKeys, ActiveMouseButtons);

            Configuration.KeyBinds.Add(binding);

            if (MappingCompleted != null)
            {
                MappingCompleted(this, Configuration.KeyBinds);
            }

            ActiveMouseButtons.Clear();
            ActiveKeyboardKeys.Clear();
            IsMapping = false;
        }
        void OnKeysPressed(object sender, CompoundKeyBind e)
        {
            if (Logic.Configuration.Mode == Articulate.ListenMode.Continuous)
            {
                return;
            }

            PushToTalkRelease.Set();

            if (Enabled && Logic.Configuration.Mode == Articulate.ListenMode.PushToArm)
            {
                Enabled = false;
            }
            else
            {
                Enabled = Logic.Configuration.Mode == Articulate.ListenMode.PushToTalk || Logic.Configuration.Mode == Articulate.ListenMode.PushToArm;
            }
        }
Exemple #3
0
        void TestKeys()
        {
            var newActiveKeyBind = Configuration.KeyBinds.FirstOrDefault(x => x.IsActive(ActiveKeyboardKeys, ActiveMouseButtons));

            if (newActiveKeyBind != ActiveKeyBind)
            {
                if (newActiveKeyBind != null && KeysPressed != null)
                {
                    KeysPressed(this, newActiveKeyBind);
                }
                else if (newActiveKeyBind == null && KeysReleased != null)
                {
                    KeysReleased(this, ActiveKeyBind);
                }

                ActiveKeyBind = newActiveKeyBind;
            }
        }
        void OnKeysReleased(object sender, CompoundKeyBind e)
        {
            if (Logic.Configuration.Mode == Articulate.ListenMode.PushToArm)
            {
                return;                                                                          // Don't disable if we're armed
            }
            if (Logic.Configuration.Mode == Articulate.ListenMode.Continuous)
            {
                return;
            }

            PushToTalkRelease.Reset();

            ThreadPool.RegisterWaitForSingleObject(PushToTalkRelease, (state, completed) =>
            {
                if (completed)
                {
                    Dispatcher.Invoke(() =>
                    {
                        Enabled = Logic.Configuration.Mode == Articulate.ListenMode.Continuous || Logic.Configuration.Mode == Articulate.ListenMode.PushToIgnore;
                    });
                }
            }, null, 500, true);
        }