Skip to content

Simagic: keep the rotation until unplugged, never offer to save it - #23

Merged
Adiakys merged 1 commit into
mainfrom
fix/simagic-rotation-save
Nov 12, 2026
Merged

Adiakys merged 1 commit into
mainfrom
fix/simagic-rotation-save

Conversation

@Adiakys

@Adiakys Adiakys commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

For #22 (left open until it is confirmed on the hardware).

What was wrong

On Simagic bases the rotation was declared persistent (every Setting in the plugin kit was), but the plugin refuses to save it: applied at plug-in, it could catch the wheel outside the new rotation and the base would lose its force feedback. So the GUI marked the rotation as "Changed: save it to keep it", and pressing Save failed with -32005 ("The rotation is not saved for the next plug-in…"). Presets hit the same contradiction and reported "not saved".

What changed

  • simrig-plugin-kit: Setting gets a persistent flag (on by default). When off, the parameter is reported as lasting until unplugged.
  • Simagic: the rotation is declared with persistent: false. The special case in Base::save is gone, since the SDK dispatch already refuses saving a volatile parameter.
  • The check that refuses a rotation change with the wheel outside the new rotation is unchanged.
  • docs/architecture.md: one sentence on the rotation lasting until unplugged.

For the reviewer

  • The GUI no longer offers to save the Simagic rotation; a preset applies it with the note "lasts until unplugged".
  • Side effect: capturing a preset from a Simagic base no longer includes the rotation, since presets capture persistent values only. A rotation in a preset made on another brand still applies.
  • Tests: the Simagic adapter test checks the rotation is volatile, ffb_strength stays persistent, and a preset with rotation = 720 applies without trying to save; a kit unit test covers the flag. cargo fmt --check, clippy -D warnings and cargo test --workspace pass. Not tested on real hardware.

@Adiakys
Adiakys merged commit 2b4ca40 into main Nov 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant