tethr
Version:
Controlls USB-connected cameras, webcam, and smartphone camera from browser
96 lines (95 loc) • 4.99 kB
TypeScript
import { Aperture, DriveMode, ExposureMode, ImageSize, ISO, WhiteBalance } from '../configs';
import { DeviceInfo } from '../DeviceInfo';
import { DatatypeCode } from '../PTPDatacode';
import { PTPDevice, PTPEvent } from '../PTPDevice';
import { ConfigDesc, OperationResult, TakePhotoOption, Tethr } from '../Tethr';
import { TethrObject, TethrObjectInfo } from '../TethrObject';
import { TethrStorage } from '../TethrStorage';
type DevicePropScheme<T, D extends DatatypeCode> = {
devicePropCode: number;
datatypeCode: D;
decode: (data: DataViewTypeForDatatypeCode<D>) => T | null;
encode: (value: T) => DataViewTypeForDatatypeCode<D> | null;
};
type DataViewTypeForDatatypeCode<D extends DatatypeCode> = D extends DatatypeCode.String ? string : D extends DatatypeCode.Uint64 ? bigint : D extends DatatypeCode.Int64 ? bigint : D extends DatatypeCode.Uint128 ? bigint : D extends DatatypeCode.Int128 ? bigint : number;
export declare class TethrPTPUSB extends Tethr {
readonly device: PTPDevice;
protected _opened: boolean;
constructor(device: PTPDevice);
open(): Promise<void>;
close(): Promise<void>;
get opened(): boolean;
get type(): 'ptpusb';
get name(): string;
setLog(log: boolean): void;
setAperture(value: Aperture): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getApertureDesc(): Promise<ConfigDesc<number | "auto">>;
getBatteryLevelDesc(): Promise<ConfigDesc<number | "ac" | "low">>;
getCanTakePhotoDesc(): Promise<ConfigDesc<boolean>>;
setCaptureDelay(value: number): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getCaptureDelayDesc(): Promise<ConfigDesc<number>>;
setDriveMode(value: DriveMode): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getDriveModeDesc(): Promise<ConfigDesc<"normal" | "burst" | "timelapse">>;
setExposureComp(value: string): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getExposureCompDesc(): Promise<ConfigDesc<string>>;
setExposureMode(value: ExposureMode): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getExposureModeDesc(): Promise<ConfigDesc<"video" | "C2" | "C1" | "C3" | `vendor:${string}` | "P" | "A" | "S" | "M" | "creative" | "action" | "portrait">>;
setImageSize(value: ImageSize): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getImageSizeDesc(): Promise<ConfigDesc<string>>;
setIso(value: ISO): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getIsoDesc(): Promise<ConfigDesc<number | "auto">>;
getManufacturerDesc(): Promise<ConfigDesc<string>>;
getModelDesc(): Promise<ConfigDesc<string>>;
setWhiteBalance(value: WhiteBalance): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getWhiteBalanceDesc(): Promise<ConfigDesc<"auto" | `vendor:${string}` | "auto cool" | "auto warm" | "auto ambience" | "daylight" | "shade" | "cloud" | "incandescent" | "fluorescent" | "tungsten" | "flash" | "underwater" | "manual" | "custom">>;
setTimelapseNumber(value: number): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getTimelapseNumberDesc(): Promise<ConfigDesc<number>>;
setTimelapseInterval(value: number): Promise<{
status: import("../Tethr").OperationResultStatus;
message?: string | undefined;
}>;
getTimelapseIntervalDesc(): Promise<ConfigDesc<number>>;
takePhoto({ doDownload }?: TakePhotoOption): Promise<OperationResult<TethrObject[]>>;
protected setDevicePropValue<T, D extends DatatypeCode>({ devicePropCode, datatypeCode, encode, value, }: Omit<DevicePropScheme<T, D>, 'decode'> & {
value: T;
}): Promise<OperationResult>;
protected getDevicePropDesc<T, D extends DatatypeCode>({ devicePropCode, datatypeCode, decode, }: Omit<DevicePropScheme<T, D>, 'encode'>): Promise<ConfigDesc<T>>;
private isDevicePropSupported;
protected getDeviceInfo(): Promise<DeviceInfo>;
protected getObjectHandles(storageId?: number): Promise<number[]>;
protected getObjectInfo(id: number): Promise<TethrObjectInfo>;
protected getObject(objectID: number): Promise<ArrayBuffer>;
protected getStorages(): Promise<TethrStorage[]>;
protected onDevicePropChanged: (event: PTPEvent) => Promise<void>;
protected getConfigNameByCode(code: number): keyof import("../configs").ConfigType | null;
protected getObjectFormatNameByCode(code: number): string;
static getDeviceInfo(device: PTPDevice): Promise<DeviceInfo>;
}
export {};