wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
71 lines • 2.23 kB
TypeScript
import { StateManager } from "@/core/state";
import { VisualizationEngine } from "@/core/visualization";
import { UIComponentDependencies } from "@/lib/components/ui";
import { MultiMidiManager } from "@/lib/core/midi/multi-midi-manager";
export declare class UIUpdater {
private stateManager;
private visualizationEngine;
private midiManager;
private config;
private updateLoopId;
private hasSeenNonZeroTime;
private lastKnownDurationSec;
constructor(stateManager: StateManager, visualizationEngine: VisualizationEngine, midiManager: MultiMidiManager, config: {
updateInterval: number;
});
/**
* Compute total duration for UI (seekbar/time labels) in raw content seconds.
* Takes the maximum of MIDI duration and registered WAV duration.
* Tempo/playback rate does NOT scale this value to avoid seek mismatches.
*/
private computeEffectiveDuration;
/**
* Get UI dependencies object for UIComponents
*/
getUIDependencies(uiDeps: UIComponentDependencies | null): UIComponentDependencies;
/**
* Start the update loop for UI synchronization
*/
startUpdateLoop(uiDeps: UIComponentDependencies | null): void;
/**
* Stop update loop
*/
stopUpdateLoop(): void;
/**
* Update piano roll
*/
private updatePianoRoll;
/**
* Update seek bar
*/
updateSeekBar(uiDeps: UIComponentDependencies | null): void;
/**
* Update play button
*/
updatePlayButton(deps: UIComponentDependencies | null): void;
/**
* Update time display
*/
updateTimeDisplay(overrideTime?: number, timeDisplay?: HTMLElement): void;
/**
* Update mute state
*/
private updateMuteState;
/**
* Open settings modal
*/
private openSettingsModal;
/**
* Open evaluation results modal
*/
private openEvaluationResultsModal;
/**
* Update sidebar with current files
*/
updateSidebar(sidebarContainer: HTMLElement): void;
/**
* Update file toggle section
*/
updateFileToggleSection(fileToggleContainer: HTMLElement | null, deps: UIComponentDependencies): void;
}
//# sourceMappingURL=ui-updater.d.ts.map