UNPKG

tethr

Version:

Controlls USB-connected cameras, webcam, and smartphone camera from browser

166 lines (165 loc) 4.93 kB
import { BiMap } from 'bim'; import { vec2 } from 'linearly'; /** * Aperture value. `'auto'` means auto aperture. The corresponding property in PTP spec is `fNumber`. * @example `'auto', 5.6, 9` * @category Config */ export type Aperture = 'auto' | number; /** * Battery level represented as a number between `0` and `100`. `100` means full battery. * . `'ac'` means AC power, `'low'` means low battery. * @ccategory Config */ export type BatteryLevel = 'ac' | 'low' | number; /** * Color mode. * @category Config */ export type ColorMode = string; /** * Drive mode. The corresponding property in PTP spec is `stillCaptureMode`. * @category Config */ export type DriveMode = 'normal' | 'burst' | 'timelapse'; /** * Exposure bias compensation. * @example `'-5', '0', '1 1/3'` * @category Config */ export type ExposureComp = string; /** * Exposure metering mode. * @category Config */ export type ExposureMeteringMode = 'average' | 'center-weighted-average' | 'multi-spot' | 'center-spot'; /** * Exposure program mode. The corresponding property in PTP spec is `exposureProgramMode`. * @category Config */ export type ExposureMode = 'P' | 'A' | 'S' | 'M' | 'creative' | 'action' | 'portrait' | 'video' | `C${1 | 2 | 3}` | `vendor:${string}`; /** * Color mode. * @category Config */ export type FlashMode = 'auto' | 'off' | 'fill' | 'red eye auto' | 'red eye fill' | 'external sync'; /** * Focus mode. * @category Config */ export type FocusMode = 'af' | 'mf'; /** * Functional mode. `'standard'` means normal mode, `'sleep'` means sleep mode. * @category Config */ export type FunctionalMode = 'standard' | 'sleep'; /** * Which automatic focus is used. * @category Config */ export type FocusMeteringMode = 'center spot' | 'multi spot' | `vendor:${string}`; /** * Focus peaking mode. This usually corresponds to the color of the peaking. `false` means disabled. * @example `false, 'red', 'white'` * @category Config */ export type FocusPeaking = false | string; /** * Focal length in millimeters. Note that it is not 35mm equivalent focal length. * @category Config */ export type FocalLength = number | 'spherical'; /** * Image aspect. * @example `'3:2', '16:9', 'a size'` * @category Config */ export type ImageAspect = `${number}:${number}` | 'a size'; /** * Image quality. * @category Config */ export type ImageQuality = string; /** * Image size. * @example `'L', 'M', 'S'` * @category Config */ export type ImageSize = string; /** * ISO sensitivity. * @category Config */ export type ISO = 'auto' | number; /** * Manual focus option. */ export type ManualFocusOption = `${'near' | 'far'}:${1 | 2 | 3}`; /** * Shutter speed. * @example `'auto', 'bulb', 'sync', '1/100', '15'` * @category Config */ export type ShutterSpeed = 'auto' | 'bulb' | 'sync' | `${number}/${number}` | `${number}`; /** * White balance. * @category Config */ export type WhiteBalance = 'auto' | 'auto cool' | 'auto warm' | 'auto ambience' | 'daylight' | 'shade' | 'cloud' | 'incandescent' | 'fluorescent' | 'tungsten' | 'flash' | 'underwater' | 'manual' | 'custom' | `vendor:${string}`; export type ConfigType = { aperture: Aperture; autoFocusFrameCenter: vec2; autoFocusFrameSize: string; batteryLevel: BatteryLevel; burstInterval: number; burstNumber: number; canRunAutoFocus: boolean; canRunManualFocus: boolean; canStartLiveview: boolean; canTakePhoto: boolean; captureDelay: number; colorMode: ColorMode; colorTemperature: number; contrast: number; dateTime: Date; destinationToSave: string; digitalZoom: number; driveMode: DriveMode; exposureComp: ExposureComp; exposureMeteringMode: ExposureMeteringMode; exposureMode: ExposureMode; facingMode: string; flashMode: FlashMode; focalLength: FocalLength; focusDistance: number; focusMeteringMode: FocusMeteringMode; focusMode: FocusMode; focusPeaking: FocusPeaking; functionalMode: FunctionalMode; imageAspect: ImageAspect; imageQuality: ImageQuality; imageSize: ImageSize; iso: ISO; liveview: MediaStream; liveviewMagnifyRatio: number; liveviewSize: string; manualFocusOptions: ManualFocusOption[]; manufacturer: string; model: string; serialNumber: string; sharpness: number; shutterSpeed: ShutterSpeed; shutterSound: number; timelapseInterval: number; timelapseNumber: number; whiteBalance: WhiteBalance; }; export type ConfigName = keyof ConfigType; /** * All configuration names in the order of dependencies. */ export declare const ConfigNameList: ConfigName[]; export declare const ConfigForDevicePropTable: BiMap<number, keyof ConfigType>; export declare const ExposureModeTable: BiMap<number, ExposureMode>; export declare const WhiteBalanceTable: BiMap<number, WhiteBalance>; export declare const DriveModeTable: BiMap<number, DriveMode>;