ez-web-audio
Version:
Making the Web Audio API super EZ since 2024.
81 lines • 2.76 kB
TypeScript
import { DebugMessage } from './messages';
export type { DebugMessage };
export { formatDebugMessage } from './messages';
/**
* Enable or disable global debug mode.
*
* When enabled, all sounds will log lifecycle events (play, stop, end),
* connection changes, and warnings (like suspended AudioContext).
*
* @param enabled - Whether to enable debug mode
*
* @example
* setDebugMode(true)
* await sound.play() // Logs: [ez-audio:event] [0.000] mySound: play
*/
export declare function setDebugMode(enabled: boolean): void;
/**
* Set a custom debug handler.
*
* Pass null to restore the default console.log handler.
*
* @param handler - Custom handler function, or null for default
*
* @example
* const messages: DebugMessage[] = []
* setDebugHandler((msg) => messages.push(msg))
* // ... run code ...
* console.log(messages) // All debug messages captured
*/
export declare function setDebugHandler(handler: ((msg: DebugMessage) => void) | null): void;
/**
* Interface for objects that can be logged (Sound, Oscillator, etc.)
*/
export interface DebugSource {
name?: string;
debug?: boolean;
}
/**
* Main logging function - short-circuits immediately when debug disabled.
*
* @param source - The sound or object emitting the message
* @param message - The debug message (without source, which is derived)
*
* @example
* debugLog(this, {
* type: 'event',
* message: 'play',
* timestamp: audioContext.currentTime
* })
*/
export declare function debugLog(source: DebugSource, message: Omit<DebugMessage, 'source'> & {
source?: string;
}): void;
/**
* Log a lifecycle event (play, stop, end).
*
* @param source - The sound emitting the event
* @param event - Event name (play, stop, end)
* @param timestamp - audioContext.currentTime
* @param details - Optional additional details
*/
export declare function debugEvent(source: DebugSource, event: string, timestamp: number, details?: Record<string, unknown>): void;
/**
* Log a connection chain change.
*
* @param source - The sound with changed connections
* @param message - Description of the change
* @param timestamp - audioContext.currentTime
* @param details - Optional additional details
*/
export declare function debugConnection(source: DebugSource, message: string, timestamp: number, details?: Record<string, unknown>): void;
/**
* Log a warning (suspended AudioContext, etc.).
*
* @param source - The sound with the warning
* @param message - Warning message
* @param timestamp - audioContext.currentTime
* @param details - Optional additional details
*/
export declare function debugWarning(source: DebugSource, message: string, timestamp: number, details?: Record<string, unknown>): void;
//# sourceMappingURL=index.d.ts.map