diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-06-23 16:16:11 +0300 |
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-06-23 16:55:06 +0300 |
| commit | f8137f68a0f157c7dc7766a695a62d59b4198291 (patch) | |
| tree | 81ab1b95746346a5ed871fcb479d883c535ca696 /indra/newview/llvoiceclient.cpp | |
| parent | 9c57f89a7b214c9dda345a5a6cc94276e2061d1e (diff) | |
Reverted SL-6109 keybinding changes
Changes were moved to DRTVWR-514
Diffstat (limited to 'indra/newview/llvoiceclient.cpp')
| -rw-r--r-- | indra/newview/llvoiceclient.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index fca8de7410..cc590fc947 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -200,6 +200,8 @@ const LLVoiceVersionInfo LLVoiceClient::getVersion() void LLVoiceClient::updateSettings() { setUsePTT(gSavedSettings.getBOOL("PTTCurrentlyEnabled")); + std::string keyString = gSavedSettings.getString("PushToTalkButton"); + setPTTKey(keyString); setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle")); mDisableMic = gSavedSettings.getBOOL("VoiceDisableMic"); @@ -635,6 +637,32 @@ bool LLVoiceClient::getPTTIsToggle() return mPTTIsToggle; } +void LLVoiceClient::setPTTKey(std::string &key) +{ + // Value is stored as text for readability + if(key == "MiddleMouse") + { + mPTTMouseButton = LLMouseHandler::CLICK_MIDDLE; + } + else if(key == "MouseButton4") + { + mPTTMouseButton = LLMouseHandler::CLICK_BUTTON4; + } + else if (key == "MouseButton5") + { + mPTTMouseButton = LLMouseHandler::CLICK_BUTTON5; + } + else + { + mPTTMouseButton = 0; + if(!LLKeyboard::keyFromString(key, &mPTTKey)) + { + // If the call failed, don't match any key. + key = KEY_NONE; + } + } +} + void LLVoiceClient::inputUserControlState(bool down) { if(mPTTIsToggle) @@ -655,6 +683,43 @@ void LLVoiceClient::toggleUserPTTState(void) setUserPTTState(!getUserPTTState()); } +void LLVoiceClient::keyDown(KEY key, MASK mask) +{ + if (gKeyboard->getKeyRepeated(key)) + { + // ignore auto-repeat keys + return; + } + + if (mPTTMouseButton == 0 && LLAgent::isActionAllowed("speak") && (key == mPTTKey)) + { + bool down = gKeyboard->getKeyDown(mPTTKey); + if (down) + { + inputUserControlState(down); + } + } + +} +void LLVoiceClient::keyUp(KEY key, MASK mask) +{ + if (mPTTMouseButton == 0 && (key == mPTTKey)) + { + bool down = gKeyboard->getKeyDown(mPTTKey); + if (!down) + { + inputUserControlState(down); + } + } +} +void LLVoiceClient::updateMouseState(S32 click, bool down) +{ + if(mPTTMouseButton == click && LLAgent::isActionAllowed("speak")) + { + inputUserControlState(down); + } +} + //------------------------------------------- // nearby speaker accessors |
