Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@Looking4OffSwitch
Copy link

Add a keyboard modifier-based playback speed adjustment. Default proportional scroll behavior remains unchanged; the discrete stepping path is active only while the Option key is held.

This allows the user to quickly change the playback speed multiplier to [0.25x, 0.5x ... 3.75x, 4.0x] inclusive. The user can now quickly switch between standard playback speeds without excessive scrolling.

Example gif showing the behavior when the Option key is held down while scrolling.

  • Add 0.25x stepping for playback speed when holding Option while scrolling. Mouse wheel notches step ±0.25x per notch; trackpad precise scrolling accumulates until a full step is reached.
  • Keep proportional scroll behavior unchanged when no modifier is pressed.
  • Show a compact speed "chip" in Top/Bottom OSC layouts when speed != 1.00x; hide it at exactly 1.00x. Floating layout continues to use the left/right arrow labels.
  • Centralize the scroll upper bound via PlayerWindowController.playbackSpeedScrollUpperBound (4.0) so both paths stay consistent.
  • Add PlaybackSpeedStep.swift with pure 0.25x stepping helpers (clamp, snap, step) for reuse and testability.
  • Wire up oscSpeedChipLabel in MainWindowController.xib and update label visibility when layout changes.

UI/XIB: update Base.lproj/MainWindowController.xib; no new localizable strings.

  Add a keyboard modifier-based playback speed adjustment. Default proportional scroll behavior remains unchanged; the discrete stepping path is active only while the Option key is held.

  This allows the user to quickly change the playback speed multiplier to [0.25, 0.5 ... 3.75, 4.0] inclusive.

  - Add 0.25x stepping for playback speed when holding Option while
    scrolling. Mouse wheel notches step ±0.25x per notch; trackpad precise
    scrolling accumulates until a full step is reached.
  - Keep proportional scroll behavior unchanged when no modifier is pressed.
  - Show a compact speed "chip" in Top/Bottom OSC layouts when speed != 1.00x;
    hide it at exactly 1.00x. Floating layout continues to use the
    left/right arrow labels.
  - Centralize the scroll upper bound via
    PlayerWindowController.playbackSpeedScrollUpperBound (4.0) so both
    paths stay consistent.
  - Add PlaybackSpeedStep.swift with pure 0.25x stepping helpers (clamp,
    snap, step) for reuse and testability.
  - Wire up oscSpeedChipLabel in MainWindowController.xib and update
    label visibility when layout changes.

  UI/XIB: update Base.lproj/MainWindowController.xib; no new localizable strings.
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