Skip to content

Commit 501e54e

Browse files
committed
Added velocity transmission toggle to GUI and RPC (NaLo support)
1 parent 5ff2677 commit 501e54e

9 files changed

Lines changed: 210 additions & 136 deletions

File tree

gui/public/i18n/en/translation.ftl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,9 @@ settings-general-fk_settings-enforce_joint_constraints-correct_constraints-descr
633633
settings-general-fk_settings-ik = Position data
634634
settings-general-fk_settings-ik-use_position = Use Position data
635635
settings-general-fk_settings-ik-use_position-description = Enables the use of position data from trackers that provide it. When enabling this make sure to full reset and recalibrate in game.
636+
settings-general-fk_settings-velocity_settings = Velocity Settings
637+
settings-general-fk_settings-velocity_settings-description = Send derived velocity data to SteamVR. Required for Natural Locomotion support.
638+
settings-general-fk_settings-velocity_settings-send_derived_velocity = Send derived velocity to driver
636639
settings-general-fk_settings-arm_fk = Arm tracking
637640
settings-general-fk_settings-arm_fk-description = Force arms to be tracked from the headset (HMD) even if positional hand data is available.
638641
settings-general-fk_settings-arm_fk-force_arms = Force arms from HMD

gui/src/components/settings/pages/GeneralSettings.tsx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
SteamVRTrackersSettingT,
1616
TapDetectionSettingsT,
1717
HIDSettingsT,
18+
VelocitySettingsT,
1819
} from 'solarxr-protocol';
1920
import { useConfig } from '@/hooks/config';
2021
import { useWebsocketAPI } from '@/hooks/websocket-api';
@@ -105,6 +106,9 @@ export type SettingsForm = {
105106
hidSettings: {
106107
trackersOverHID: boolean;
107108
};
109+
velocitySettings: {
110+
sendDerivedVelocity: boolean;
111+
};
108112
};
109113

110114
const defaultValues: SettingsForm = {
@@ -161,6 +165,7 @@ const defaultValues: SettingsForm = {
161165
resetsSettings: defaultResetSettings,
162166
stayAligned: defaultStayAlignedSettings,
163167
hidSettings: { trackersOverHID: false },
168+
velocitySettings: { sendDerivedVelocity: false },
164169
};
165170

166171
export function GeneralSettings() {
@@ -286,6 +291,11 @@ export function GeneralSettings() {
286291
hidSettings.trackersOverHid = values.hidSettings.trackersOverHID;
287292
settings.hidSettings = hidSettings;
288293

294+
const velocitySettings = new VelocitySettingsT();
295+
velocitySettings.sendDerivedVelocity =
296+
values.velocitySettings.sendDerivedVelocity;
297+
settings.velocitySettings = velocitySettings;
298+
289299
if (values.resetsSettings) {
290300
settings.resetsSettings = loadResetSettings(values.resetsSettings);
291301
}
@@ -407,6 +417,12 @@ export function GeneralSettings() {
407417
};
408418
}
409419

420+
if (settings.velocitySettings) {
421+
formData.velocitySettings = {
422+
sendDerivedVelocity: settings.velocitySettings.sendDerivedVelocity,
423+
};
424+
}
425+
410426
reset({ ...getValues(), ...formData });
411427
});
412428

@@ -994,6 +1010,32 @@ export function GeneralSettings() {
9941010
/>
9951011
</div>
9961012

1013+
<div className="flex flex-col pt-2 pb-1">
1014+
<Typography variant="section-title">
1015+
{l10n.getString(
1016+
'settings-general-fk_settings-velocity_settings'
1017+
)}
1018+
</Typography>
1019+
<div className="pt-2">
1020+
<Typography>
1021+
{l10n.getString(
1022+
'settings-general-fk_settings-velocity_settings-description'
1023+
)}
1024+
</Typography>
1025+
</div>
1026+
</div>
1027+
<div className="grid sm:grid-cols-1 pb-3">
1028+
<CheckBox
1029+
variant="toggle"
1030+
outlined
1031+
control={control}
1032+
name="velocitySettings.sendDerivedVelocity"
1033+
label={l10n.getString(
1034+
'settings-general-fk_settings-velocity_settings-send_derived_velocity'
1035+
)}
1036+
/>
1037+
</div>
1038+
9971039
{config?.debug && (
9981040
<>
9991041
<div className="flex flex-col pt-2 pb-3">

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"preinstall": "npx only-allow pnpm"
1818
},
1919
"devDependencies": {
20-
"husky": "^9.1.6",
21-
"lint-staged": "^15.2.10"
20+
"husky": "^9.1.7",
21+
"lint-staged": "^15.5.2"
2222
}
2323
}

0 commit comments

Comments
 (0)