UNPKG

wave-roll

Version:

JavaScript Library for Comparative MIDI Piano-Roll Visualization

78 lines 1.85 kB
/** * Volume and mute state management utilities */ export interface VolumeState { volume: number; muted: boolean; } /** * Manages volume and mute states for multiple sources */ export declare class VolumeStateManager<T extends string = string> { private onStateChange?; private volumes; private mutes; private masterVolume; private masterMuted; constructor(onStateChange?: ((wasSilent: boolean, isSilent: boolean) => void) | undefined); /** * Set volume for a specific source */ setVolume(id: T, volume: number): void; /** * Get volume for a specific source */ getVolume(id: T): number; /** * Set mute state for a specific source */ setMuted(id: T, muted: boolean): void; /** * Get mute state for a specific source */ isMuted(id: T): boolean; /** * Set master volume */ setMasterVolume(volume: number): void; /** * Get master volume */ getMasterVolume(): number; /** * Set master mute state */ setMasterMuted(muted: boolean): void; /** * Check if master is muted */ isMasterMuted(): boolean; /** * Get effective volume for a source (considering mute states and master) */ getEffectiveVolume(id: T): number; /** * Check if all sources are effectively silent */ isAllSilent(): boolean; /** * Check if a specific source is silent */ isSilent(id: T): boolean; /** * Get all sources that are currently audible */ getAudibleSources(): T[]; /** * Clear all volume and mute states */ clear(): void; /** * Get state summary */ getState(): { sources: Map<T, VolumeState>; master: VolumeState; }; } //# sourceMappingURL=volume-state-manager.d.ts.map