89 lines
2.2 KiB
TypeScript
89 lines
2.2 KiB
TypeScript
import { DeviceListState } from "tc-shared/audio/Recorder";
|
|
export declare type MicrophoneSetting = "volume" | "vad-type" | "ppt-key" | "ppt-release-delay" | "ppt-release-delay-active" | "threshold-threshold" | "rnnoise";
|
|
export declare type MicrophoneDevice = {
|
|
id: string;
|
|
name: string;
|
|
driver: string;
|
|
default: boolean;
|
|
};
|
|
export declare type SelectedMicrophone = {
|
|
type: "default";
|
|
} | {
|
|
type: "none";
|
|
} | {
|
|
type: "device";
|
|
deviceId: string;
|
|
};
|
|
export declare type MicrophoneDevices = {
|
|
status: "error";
|
|
error: string;
|
|
} | {
|
|
status: "audio-not-initialized";
|
|
} | {
|
|
status: "no-permissions";
|
|
shouldAsk: boolean;
|
|
} | {
|
|
status: "success";
|
|
devices: MicrophoneDevice[];
|
|
selectedDevice: SelectedMicrophone;
|
|
};
|
|
export declare type InputDeviceLevel = {
|
|
status: "success";
|
|
level: number;
|
|
} | {
|
|
status: "uninitialized";
|
|
} | {
|
|
status: "error";
|
|
message: string;
|
|
};
|
|
export interface MicrophoneSettingsEvents {
|
|
"query_devices": {
|
|
refresh_list: boolean;
|
|
};
|
|
"query_help": {};
|
|
"query_setting": {
|
|
setting: MicrophoneSetting;
|
|
};
|
|
"query_input_level": {};
|
|
"action_help_click": {};
|
|
"action_request_permissions": {};
|
|
"action_set_selected_device": {
|
|
target: SelectedMicrophone;
|
|
};
|
|
"action_set_selected_device_result": {
|
|
status: "error";
|
|
reason: string;
|
|
};
|
|
"action_open_processor_properties": {};
|
|
"action_set_setting": {
|
|
setting: MicrophoneSetting;
|
|
value: any;
|
|
};
|
|
notify_setting: {
|
|
setting: MicrophoneSetting;
|
|
value: any;
|
|
};
|
|
notify_devices: MicrophoneDevices;
|
|
notify_device_selected: {
|
|
device: SelectedMicrophone;
|
|
};
|
|
notify_device_level: {
|
|
level: {
|
|
[key: string]: {
|
|
deviceId: string;
|
|
status: "success" | "error";
|
|
level?: number;
|
|
error?: string;
|
|
};
|
|
};
|
|
status: Exclude<DeviceListState, "error">;
|
|
};
|
|
notify_input_level: {
|
|
level: InputDeviceLevel;
|
|
};
|
|
notify_highlight: {
|
|
field: "hs-0" | "hs-1" | "hs-2" | undefined;
|
|
};
|
|
notify_destroy: {};
|
|
}
|