128 lines
3.1 KiB
TypeScript
128 lines
3.1 KiB
TypeScript
import { ScreenCaptureDevice } from "tc-shared/video/VideoSource";
|
|
export declare type DeviceListResult = {
|
|
status: "success";
|
|
devices: {
|
|
id: string;
|
|
displayName: string;
|
|
}[];
|
|
selectedDeviceId: string | undefined;
|
|
fallbackSelectedDeviceName: string | undefined;
|
|
} | {
|
|
status: "error";
|
|
reason: "no-permissions" | "request-permissions" | "custom";
|
|
};
|
|
export declare type VideoPreviewStatus = {
|
|
status: "preview";
|
|
stream: MediaStream;
|
|
} | {
|
|
status: "error";
|
|
reason: "no-permissions" | "request-permissions" | "custom";
|
|
message?: string;
|
|
} | {
|
|
status: "none";
|
|
};
|
|
export declare type VideoSourceState = {
|
|
type: "none";
|
|
} | {
|
|
type: "selected";
|
|
deviceId: string;
|
|
name: string;
|
|
} | {
|
|
type: "errored";
|
|
error: string;
|
|
};
|
|
export declare type ScreenCaptureDeviceList = {
|
|
status: "success";
|
|
devices: ScreenCaptureDevice[];
|
|
} | {
|
|
status: "error";
|
|
reason: string;
|
|
} | {
|
|
status: "not-supported";
|
|
} | {
|
|
status: "loading";
|
|
};
|
|
export declare type SettingFrameRate = {
|
|
min: number;
|
|
max: number;
|
|
original: number;
|
|
current: number;
|
|
};
|
|
export declare type SettingBitrate = {
|
|
allowedBitrate: number | -1;
|
|
bitrate: number | 0;
|
|
};
|
|
export interface ModalVideoSourceEvents {
|
|
action_cancel: {};
|
|
action_start: {};
|
|
action_request_permissions: {};
|
|
action_select_source: {
|
|
id: string | undefined;
|
|
};
|
|
action_setting_dimension: {
|
|
width: number;
|
|
height: number;
|
|
};
|
|
action_setting_framerate: {
|
|
frameRate: number;
|
|
};
|
|
action_setting_bitrate_max: {
|
|
bitrate: number | 0;
|
|
};
|
|
action_setting_keyframe_sender: {
|
|
interval: number | 0;
|
|
};
|
|
action_toggle_screen_capture_device_select: {
|
|
shown: boolean;
|
|
};
|
|
action_preselect_screen_capture_device: {
|
|
deviceId: string;
|
|
};
|
|
query_source: {};
|
|
query_device_list: {};
|
|
query_video_preview: {};
|
|
query_start_button: {};
|
|
query_setting_dimension: {};
|
|
query_setting_framerate: {};
|
|
query_setting_bitrate_max: {};
|
|
query_setting_keyframe_sender: {};
|
|
query_screen_capture_devices: {};
|
|
notify_source: {
|
|
state: VideoSourceState;
|
|
};
|
|
notify_device_list: {
|
|
status: DeviceListResult;
|
|
};
|
|
notify_video_preview: {
|
|
status: VideoPreviewStatus;
|
|
};
|
|
notify_start_button: {
|
|
enabled: boolean;
|
|
};
|
|
notify_setting_dimension: {
|
|
setting: {
|
|
minWidth: number;
|
|
currentWidth: number;
|
|
originalWidth: number;
|
|
maxWidth: number;
|
|
minHeight: number;
|
|
currentHeight: number;
|
|
originalHeight: number;
|
|
maxHeight: number;
|
|
} | undefined;
|
|
};
|
|
notify_settings_framerate: {
|
|
frameRate: SettingFrameRate | undefined;
|
|
};
|
|
notify_screen_capture_devices: {
|
|
devices: ScreenCaptureDeviceList;
|
|
};
|
|
notify_setting_bitrate_max: {
|
|
bitrate: SettingBitrate | undefined;
|
|
};
|
|
notify_settings_keyframe_sender: {
|
|
interval: number | 0;
|
|
};
|
|
notify_destroy: {};
|
|
}
|