diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-15 15:00:57 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-15 15:00:57 +0100 |
| commit | f23bd208b38ccfdc814daa99818a7e119f5ee313 (patch) | |
| tree | 3580311b5f4376604f3dde81e3632940e262ab19 /tools/timeline_editor/timeline-viewport.js | |
| parent | 2031e24c976d1a11eb48badb97e824b1db07741a (diff) | |
refactor(timeline-editor): centralize BPM calculations
Replace repeated 60.0/bpm calculations with precomputed secondsPerBeat
and beatsPerSecond properties. Add computeBPMValues helper and updateBPM
function for consistency. Also prevent wheel events on time markers.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'tools/timeline_editor/timeline-viewport.js')
| -rw-r--r-- | tools/timeline_editor/timeline-viewport.js | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/timeline_editor/timeline-viewport.js b/tools/timeline_editor/timeline-viewport.js index 396b648..eeb2582 100644 --- a/tools/timeline_editor/timeline-viewport.js +++ b/tools/timeline_editor/timeline-viewport.js @@ -32,6 +32,7 @@ export class ViewportController { this.dom.propertiesPanel.addEventListener('wheel', e => e.stopPropagation()); document.querySelector('.zoom-controls').addEventListener('wheel', e => e.stopPropagation()); document.querySelector('.stats').addEventListener('wheel', e => e.stopPropagation()); + document.getElementById('timeMarkers').addEventListener('wheel', e => e.stopPropagation()); // Waveform hover tracking this.dom.waveformContainer.addEventListener('mouseenter', () => this.showWaveformCursor()); @@ -146,7 +147,7 @@ export class ViewportController { const mouseX = e.clientX - rect.left; const scrollLeft = this.dom.timelineContent.scrollLeft; const timeBeats = (scrollLeft + mouseX - this.TIMELINE_LEFT_PADDING) / this.state.pixelsPerSecond; - const timeSeconds = timeBeats * 60.0 / this.state.bpm; + const timeSeconds = timeBeats * this.state.secondsPerBeat; // Position cursor this.dom.waveformCursor.style.left = `${mouseX}px`; @@ -164,6 +165,6 @@ export class ViewportController { // Helper timeToBeats(seconds) { - return seconds * this.state.bpm / 60.0; + return seconds * this.state.beatsPerSecond; } } |
