Skip to content

Add named replay queues with Store, Play and Clear hotkeys - #79

Open
ne0lines wants to merge 1 commit into
exeldro:masterfrom
ne0lines:codex/replay-types
Open

ne0lines wants to merge 1 commit into
exeldro:masterfrom
ne0lines:codex/replay-types

Conversation

@ne0lines

Copy link
Copy Markdown

A single Replay Source currently has one replay queue. This adds user-named replay types, such as Replay A and Replay B, so each can collect multiple clips and be played or cleared through its own hotkeys.

  • Add, rename, reorder and remove types in the source properties. Stable type IDs preserve hotkey bindings across edits and scene-collection reloads.
  • Give each type separate Store, Play and Clear actions. Store retains the rolling buffer without starting playback or switching scenes. Play uses a snapshot of the selected queue in capture order; Clear affects only that type and cancels its pending captures.
  • Limit each type to 1–10 clips (default 10), evicting the oldest clip when full. Clips remain in memory; type settings and hotkey bindings are saved.
  • Preserve the original replay queue and controls. Queue playback applies end actions to the whole queue and supports existing navigation, trimming and frame stepping.

The implementation retains shared video frames, owns copied audio samples, and processes queued hotkey commands on the video tick to avoid lock inversion.

Validation on macOS arm64 with OBS Studio 32.1.2:

  • Built the plugin and verified the signed bundle.
  • Passed 15 local native regression groups under AddressSanitizer and UndefinedBehaviorSanitizer (leak detection disabled).
  • Loaded the compiled module and checked properties and settings persistence in both en-US and sv-SE; all new labels use English.
  • Passed diff whitespace checks.

Physical keyboard delivery, interactive playback/audio quality, encoded export output, real frontend scene switching, and Windows/Linux builds still need runtime validation.

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