voicemeeter-connector
Version:
A Connector to use the Voicemeeter API
89 lines (74 loc) • 2.69 kB
text/typescript
import { IKoffiRegisteredCallback } from "koffi";
import { AudioCallbackCommands } from "../lib/constants";
export type VoiceMeeterTypes = "voicemeeter" | "voicemeeterBanana" | "voicemeeterPotato" | undefined;
export interface VMLibrary {
VBVMR_Login: any;
VBVMR_Logout: any;
VBVMR_RunVoicemeeter: (voicemeeterType: any) => number;
VBVMR_IsParametersDirty: any;
VBVMR_GetLevel: any;
VBVMR_GetParameterFloat: any;
VBVMR_GetParameterStringA: any;
VBVMR_SetParameters: any;
VBVMR_Output_GetDeviceNumber: any;
VBVMR_Output_GetDeviceDescA: any;
VBVMR_Input_GetDeviceNumber: any;
VBVMR_Input_GetDeviceDescA: any;
VBVMR_GetVoicemeeterType: any;
VBVMR_GetVoicemeeterVersion: (versionPtr: any) => number;
VBVMR_MacroButton_IsDirty: any;
VBVMR_MacroButton_GetStatus: any;
VBVMR_MacroButton_SetStatus: any;
VBVMR_AudioCallbackRegister: any;
VBVMR_AudioCallbackStart: any;
VBVMR_AudioCallbackStop: any;
VBVMR_AudioCallbackUnregister: any;
}
export interface Device {
name: string;
hardwareId: string;
type: number;
}
export type AudioCallbackFunction = (error: Error | null, event?: AudioCallbackEvent) => void;
export interface VBVMR_T_AUDIOINFO {
samplerate: number;
nbSamplePerFrame: number;
}
export interface AudioCallbackInfo {
sampleRate: number;
samplesPerFrame: number;
}
export interface VBVMR_T_AUDIOBUFFER {
audiobuffer_sr: number;
audiobuffer_nbs: number;
audiobuffer_nbi: number;
audiobuffer_nbo: number;
audiobuffer_r: Float32Array[];
audiobuffer_w: Float32Array[];
}
export interface AudioCallbackState {
pointer: IKoffiRegisteredCallback | null;
awaitUnregister: Array<() => void>;
ended: boolean;
}
export interface AudioCallbackBuffer {
sampleRate: number;
samplesPerFrame: number;
inputChannelCount: number;
outputChannelCount: number;
inputChannels: Float32Array[];
outputChannels: Float32Array[];
}
export interface BaseAudioCallbackEvent {
lpUser: Buffer | null;
nnn: number;
}
export interface AudioCallbackInfoEvent extends BaseAudioCallbackEvent {
command: AudioCallbackCommands.STARTING | AudioCallbackCommands.CHANGE | AudioCallbackCommands.ENDING;
data: AudioCallbackInfo;
}
export interface AudioCallbackBufferEvent extends BaseAudioCallbackEvent {
command: AudioCallbackCommands.BUFFER_IN | AudioCallbackCommands.BUFFER_OUT | AudioCallbackCommands.BUFFER_MAIN;
data: AudioCallbackBuffer;
}
export type AudioCallbackEvent = AudioCallbackInfoEvent | AudioCallbackBufferEvent;