wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
27 lines • 1.07 kB
TypeScript
import { AudioPlayerContainer } from "@/lib/core/audio/audio-player";
/** Loop window expressed in percentage (0-100) relative to the full track. */
export interface LoopWindow {
prev: number | null;
next: number | null;
}
export interface SeekBarDeps {
/** Audio player - used for seek / drag */
audioPlayer: AudioPlayerContainer | null;
/** Optional: piano roll instance to forward loop markers */
pianoRoll?: {
setLoopWindow?: (a: number | null, b: number | null) => void;
};
/** HH:MM formatter injected from caller to avoid duplication */
formatTime: (seconds: number) => string;
}
export interface SeekBarInstance {
/** <div> element (root) - append to the DOM. */
element: HTMLElement;
/**
* Update visual state (progress + loop markers).
* Should be called inside the player’s update‑loop.
*/
update: (current: number, duration: number, loop: LoopWindow | null) => void;
}
export declare function createSeekBar(deps: SeekBarDeps): SeekBarInstance;
//# sourceMappingURL=seek-bar.d.ts.map