wam-extensions
Version:
Unofficial extensions to the Web Audio Module 2 API
33 lines (28 loc) • 853 B
text/typescript
export type PatternEntry = {
id: string
name: string
}
export type PatternDelegate = {
getPatternList: () => PatternEntry[]
createPattern: (id: string) => void
deletePattern: (id: string) => void
playPattern: (id: string | undefined) => void
getPatternState: (id: string) => any
setPatternState: (id: string, state: any) => any
}
export class PatternExtension {
delegates: Map<string, PatternDelegate>
constructor() {
this.delegates = new Map()
}
setPatternDelegate(pluginId: string, delegate?: PatternDelegate) {
if (delegate) {
this.delegates.set(pluginId, delegate)
} else {
this.delegates.delete(pluginId)
}
}
getPatternViewDelegate(pluginId: string): PatternDelegate | undefined{
return this.delegates.get(pluginId)
}
}