UNPKG

wave-roll

Version:

JavaScript Library for Comparative MIDI Piano-Roll Visualization

62 lines 1.74 kB
/** * Playback Controller * Handles core transport operations: play, pause, seek, restart */ import { AudioPlayerState, OperationState } from "../player-types"; import { SamplerManager } from "../managers/sampler-manager"; import { WavPlayerManager } from "../managers/wav-player-manager"; import { TransportSyncManager } from "../managers/transport-sync-manager"; import { LoopManager } from "../managers/loop-manager"; export interface PlaybackControllerDeps { state: AudioPlayerState; operationState: OperationState; samplerManager: SamplerManager; wavPlayerManager: WavPlayerManager; transportSyncManager: TransportSyncManager; loopManager: LoopManager; originalTempo: number; options: { repeat?: boolean; }; pianoRoll: { setTime(time: number): void; }; onPlaybackEnd?: () => void; uiSync?: (time: number, force?: boolean) => void; } export declare class PlaybackController { private deps; private pausedTime; private _playLock; constructor(deps: PlaybackControllerDeps); /** * Start or resume playback */ play(): Promise<void>; /** * Pause playback */ pause(): void; /** * Stop and restart from beginning */ restart(): void; /** * Seek to specific time position */ seek(seconds: number, updateVisual?: boolean): void; /** * Enable or disable repeat mode */ toggleRepeat(enabled: boolean): void; /** * Handle playback end (called by transport sync) */ handlePlaybackEnd(): void; /** * Get/set paused time */ getPausedTime(): number; setPausedTime(time: number): void; } //# sourceMappingURL=playback-controller.d.ts.map