2024-10-28 07:53:09 +01:00

33 lines
645 B
TypeScript

import { AudioSinksChangedEvent } from "../events";
import { getApp } from "../olympusapp";
/* Base audio sink class */
export abstract class AudioSink {
#name: string;
#gainNode: GainNode;
constructor() {
this.#gainNode = getApp().getAudioManager().getAudioContext().createGain();
}
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
disconnect() {
this.getInputNode().disconnect();
AudioSinksChangedEvent.dispatch(getApp().getAudioManager().getSinks());
}
getInputNode() {
return this.#gainNode;
}
abstract setPtt(ptt: boolean): void;
abstract getPtt(): boolean;
}