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; } }
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); }