wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
78 lines • 1.85 kB
TypeScript
/**
* 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