summaryrefslogtreecommitdiff
path: root/tools/timeline_editor/timeline-viewport.js
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-15 15:00:57 +0100
committerskal <pascal.massimino@gmail.com>2026-02-15 15:00:57 +0100
commitf23bd208b38ccfdc814daa99818a7e119f5ee313 (patch)
tree3580311b5f4376604f3dde81e3632940e262ab19 /tools/timeline_editor/timeline-viewport.js
parent2031e24c976d1a11eb48badb97e824b1db07741a (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.js5
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;
}
}