5 Commits
Author SHA1 Message Date
Robin Anderson dbc01cd59a Let people choose what knocking twice or thrice does
Settings has a Knock actions screen with Knock twice and Knock thrice
side by side. Each lists four actions, and one press picks one: switch
passthrough, switch the style, show or hide SteamVR's performance graph,
or do nothing. The defaults stay the same, and the lists mark them with
(default).

config.json stores the actions under knock_actions, keyed by kind and
count, so each kind of knock can have its own actions and a new count
needs no format change. The screen sets every kind the same. The
performance graph is the SteamVR setting perfcheck.perfGraphInHMD. The
tour still teaches the default actions.
2026-10-17 12:18:18 -04:00
Robin Anderson a8a1e50f00 Share the test check helper in tests/check.hpp
Three test programs each defined the same check() and failure count.
update_test now prints the same summary as the other two.
2026-10-16 15:54:26 -04:00
Robin Anderson fce4b03b29 Parse the true or false settings from one table
Five settings repeated the same three lines. A test now loads each of
them and rejects a value that is not true or false. The test that named
the update check weekly now says daily, which is what the app does.
2026-10-16 15:53:38 -04:00
Robin Anderson e870557c1a Log SteamVR version changes and check for updates once a week
state.json remembers the SteamVR version, the date KnockThru first saw
it, and the version before. Each change goes in the log, and the report
shows the history, so a report after a Steam update names the cause.

A minute after start, KnockThru asks GitHub for the latest release if
the last automatic check was a week ago or more. A newer release puts a
dot on the Settings button and Install in the Settings header. Failures
only go in the log. check_updates: false in config.json turns it off.
2026-10-15 22:07:20 -04:00
Robin Anderson 7df3a7edf5 Add a first-run tour, tour replay, and factory reset
The tour shows the first time someone opens the KnockThru tab. It walks
through picking knock kinds, calibrating each kind that is on, and a
live double and triple knock that really switch passthrough and style.
Next stays off until a step is complete. Skip ends the tour from any step.
Anyone with an existing config.json or calibration.json skips it.

Settings now holds Calibrate, which moves off the main screen, plus a
Sounds switch, Replay for the tour, and Factory reset. Reset deletes
config.json and calibration.json, keeps application.log, and starts
the tour again.
2026-10-15 20:49:50 -04:00