Skip to content

Commit

Permalink
Update virtual keycodes; Add controller sensitivity adjustment
Browse files Browse the repository at this point in the history
  • Loading branch information
oneup03 committed Sep 20, 2024
1 parent 6ee66b4 commit b6106ae
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 20 deletions.
27 changes: 23 additions & 4 deletions vrto3d/src/hmd_device_driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -489,15 +489,15 @@ void MockControllerDeviceDriver::PoseUpdate()
stereo_display_component_->AdjustDepth(-0.001f, true, device_index_);
}
// Ctrl+F4 Increase Depth
if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F4) & 0x8000)) {
else if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F4) & 0x8000)) {
stereo_display_component_->AdjustDepth(0.001f, true, device_index_);
}
// Ctrl+F5 Decrease Convergence
if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F5) & 0x8000)) {
stereo_display_component_->AdjustConvergence(-0.001f, true, device_index_);
}
// Ctrl+F6 Increase Convergence
if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F6) & 0x8000)) {
else if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F6) & 0x8000)) {
stereo_display_component_->AdjustConvergence(0.001f, true, device_index_);
}
// Ctrl+F7 Store settings into game profile
Expand All @@ -506,11 +506,11 @@ void MockControllerDeviceDriver::PoseUpdate()
SaveSettings();
}
// Ctrl+F10 Reload settings from default.vrsettings
if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F10) & 0x8000) && save_sleep == 0) {
else if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_F10) & 0x8000) && save_sleep == 0) {
save_sleep = stereo_display_component_->GetConfig().sleep_count_max;
stereo_display_component_->LoadDefaults(device_index_);
}
if (save_sleep > 0) {
else if (save_sleep > 0) {
save_sleep--;
}
}
Expand All @@ -530,6 +530,14 @@ void MockControllerDeviceDriver::PoseUpdate()
else if (height_sleep > 0) {
height_sleep--;
}
// Ctrl+- Decrease Sensitivity
if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_OEM_MINUS) & 0x8000)) {
stereo_display_component_->AdjustSensitivity(-0.001f);
}
// Ctrl++ Increase Sensitivity
if ((GetAsyncKeyState(VK_CONTROL) & 0x8000) && (GetAsyncKeyState(VK_OEM_PLUS) & 0x8000)) {
stereo_display_component_->AdjustSensitivity(0.001f);
}

// Check User binds
stereo_display_component_->CheckUserSettings(got_xinput_, state_, device_index_);
Expand Down Expand Up @@ -977,6 +985,17 @@ void StereoDisplayComponent::CheckUserSettings(bool got_xinput, XINPUT_STATE* st
}


//-----------------------------------------------------------------------------
// Purpose: Adjust XInput Right Stick sensitivity
//-----------------------------------------------------------------------------
void StereoDisplayComponent::AdjustSensitivity(float delta)
{
config_.ctrl_sensitivity += delta;
if (config_.ctrl_sensitivity < 0.0f)
config_.ctrl_sensitivity = 0.0f;
}


//-----------------------------------------------------------------------------
// Purpose: Adjust HMD Pitch using XInput Right Stick YAxis
//-----------------------------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions vrto3d/src/hmd_device_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ class StereoDisplayComponent : public vr::IVRDisplayComponent
float GetDepth();
float GetConvergence();
void CheckUserSettings(bool got_xinput, XINPUT_STATE* state, uint32_t device_index);
void AdjustSensitivity(float delta);
void AdjustPitch(float& currentPitch, XINPUT_STATE* state);
void AdjustYaw(vr::HmdQuaternion_t& currentYawQuat, XINPUT_STATE* state);
void SetHeight();
Expand Down
43 changes: 27 additions & 16 deletions vrto3d/src/key_mappings.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,39 +25,33 @@

// Create a mapping between string names and virtual key codes
static std::unordered_map<std::string, int> VirtualKeyMappings = {
// Mouse buttons
{"VK_LMOUSE", VK_LBUTTON},
{"VK_RMOUSE", VK_RBUTTON},
{"VK_MMOUSE", VK_MBUTTON},
{"VK_MOUSE4", VK_XBUTTON1},
{"VK_MOUSE5", VK_XBUTTON2},
// Keyboard keys
{"VK_LBUTTON", VK_LBUTTON},
{"VK_RBUTTON", VK_RBUTTON},
{"VK_CANCEL", VK_CANCEL},
{"VK_MBUTTON", VK_MBUTTON},
{"VK_XBUTTON1", VK_XBUTTON1},
{"VK_XBUTTON2", VK_XBUTTON2},
{"VK_BACK", VK_BACK},
{"VK_BACKSPACE", VK_BACK},
{"VK_TAB", VK_TAB},
{"VK_CLEAR", VK_CLEAR},
{"VK_RETURN", VK_RETURN},
{"VK_SHIFT", VK_SHIFT},
{"VK_CONTROL", VK_CONTROL},
{"VK_MENU", VK_MENU},
{"VK_PAUSE", VK_PAUSE},
{"VK_CAPITAL", VK_CAPITAL},
{"VK_CAPS", VK_CAPITAL},
{"VK_ESCAPE", VK_ESCAPE},
{"VK_SPACE", VK_SPACE},
{"VK_PRIOR", VK_PRIOR},
{"VK_NEXT", VK_NEXT},
{"VK_PGUP", VK_PRIOR},
{"VK_PGDWN", VK_NEXT},
{"VK_END", VK_END},
{"VK_HOME", VK_HOME},
{"VK_LEFT", VK_LEFT},
{"VK_UP", VK_UP},
{"VK_RIGHT", VK_RIGHT},
{"VK_DOWN", VK_DOWN},
{"VK_SELECT", VK_SELECT},
{"VK_PRINT", VK_PRINT},
{"VK_EXECUTE", VK_EXECUTE},
{"VK_SNAPSHOT", VK_SNAPSHOT},
{"VK_INSERT", VK_INSERT},
{"VK_DELETE", VK_DELETE},
{"VK_HELP", VK_HELP},
{"VK_NUMPAD0", VK_NUMPAD0},
{"VK_NUMPAD1", VK_NUMPAD1},
{"VK_NUMPAD2", VK_NUMPAD2},
Expand All @@ -68,6 +62,11 @@ static std::unordered_map<std::string, int> VirtualKeyMappings = {
{"VK_NUMPAD7", VK_NUMPAD7},
{"VK_NUMPAD8", VK_NUMPAD8},
{"VK_NUMPAD9", VK_NUMPAD9},
{"VK_MULTIPLY", VK_MULTIPLY},
{"VK_ADD", VK_ADD},
{"VK_SUBTRACT", VK_SUBTRACT},
{"VK_DECIMAL", VK_DECIMAL},
{"VK_DIVIDE", VK_DIVIDE},
{"VK_F1", VK_F1},
{"VK_F2", VK_F2},
{"VK_F3", VK_F3},
Expand All @@ -92,6 +91,18 @@ static std::unordered_map<std::string, int> VirtualKeyMappings = {
{"VK_F22", VK_F22},
{"VK_F23", VK_F23},
{"VK_F24", VK_F24},
{"VK_1", VK_1},
{"VK_2", VK_2},
{"VK_3", VK_3},
{"VK_4", VK_4},
{"VK_5", VK_5},
{"VK_6", VK_6},
{"VK_7", VK_7},
{"VK_8", VK_8},
{"VK_9", VK_9},
{"VK_0", VK_0},
{"VK_OEM_MINUS", VK_OEM_MINUS},
{"VK_OEM_PLUS", VK_OEM_PLUS},
};
// XInput gamepad buttons
#define XINPUT_GAMEPAD_LEFT_TRIGGER 0x10000
Expand Down

0 comments on commit b6106ae

Please sign in to comment.