UNPKG

@huddly/sdk-interfaces

Version:

Module for describing the Huddly SDK using interfaces

169 lines (168 loc) 6.15 kB
import ITransport from './ITransport'; import IDeviceUpgrader from './IDeviceUpgrader'; import IDetector from './IDetector'; import UpgradeOpts from './IUpgradeOpts'; import DetectorOpts from './IDetectorOpts'; import AutozoomControlOpts from './IAutozoomControlOpts'; import DiagnosticsMessage from './../abstract_classes/DiagnosticsMessage'; import ReleaseChannel from './../enums/ReleaseChannel'; import ICnnControl from './ICnnControl'; import IDeviceCommonApi from './IDeviceCommonApi'; /** * Interface used for performing actions on the camera. * * @export * @interface IDeviceManager */ export default interface IDeviceManager { /** * The transport implementation used to communicate with the device. * * @type {ITransport} * @memberof IDeviceManager */ transport: ITransport; /** * Utility class used to perform different actions on the device. * * @memberof IDeviceCommonApi */ api: IDeviceCommonApi; /** * Device interface that is used to perform standard UVC-XU control actions on * the device such as Zoom, Pan, Tilt, Brightness etc. * * @type {*} * @memberof IDeviceManager */ uvcControlInterface: any; /** * Class initialization function. * * @returns {Promise<void>} * @memberof IDeviceManager */ initialize(developmentMode?: boolean): Promise<void>; /** * Closes the communication channels with the camera in use. * * @returns {Promise<any>} Returns a promise which resolves for * successful connnection close or rejects otherwise. * @memberof IDeviceManager */ closeConnection(): Promise<any>; /** * Retrieves camera information such as name, serial number, software version etc. * * @returns {Promise<any>} A JSON representation of the camera information. * @memberof IDeviceManager */ getInfo(): Promise<any>; /** * Retrieves the camera log. * * @param {number} timeout Timeout argument given in milliseconds to interrupt the process * in case it takes longer than expected. * @returns {Promise<any>} A UTF8 string representation of the camera log. * @memberof IDeviceManager */ getErrorLog(timeout: number): Promise<any>; /** * Performs an erase action on the camera log. * * @param {number} timeout Timeout argument given in milliseconds to interrupt the process * in case it takes longer than expected. * @returns {Promise<void>} * @memberof IDeviceManager */ eraseErrorLog(timeout: number): Promise<void>; /** * Reboots the camera into a specific mode. * * @param {string} [mode] The desired mode used by the camera after rebooting. * @returns {Promise<void>} * @memberof IDeviceManager */ reboot(mode?: string): Promise<void>; /** * Get an `IDeviceUpgrader` object for the given device manager which can * be used to perform camera upgrades. * * @returns {Promise<IDeviceUpgrader>} Returns a promise with an instance of `IDeviceUpgrader` interface used for upgrading the camera. * @memberof HuddlySdk */ getUpgrader(): Promise<IDeviceUpgrader>; /** * Convenience function for performing camera upgrade. * * @param {UpgradeOpts} opts Camera upgrade options * @returns {Promise <any>} Returns a promise which resolves for a * successful upgrade or rejects otherwise. * @memberof IDeviceManager */ upgrade(opts: UpgradeOpts): Promise<any>; /** * Get a new instance of `AutozoomControl` controller class which allows * you to configure the autozoom (genius framing) on the camera. * * @param {AutozoomControlOpts} opts AutozoomControl options * @returns {ICnnControl} Returns a new instance of `ICnnControl` class. * @memberof IDeviceManager */ getAutozoomControl(opts: AutozoomControlOpts): ICnnControl | ICnnControl; /** * Get a new instance of `CnnControl` controller class which allows * you to configure the face based on the camera. * * @returns {ICnnControl} Returns a new instance of `ICnnControl` class. * @memberof IDeviceManager */ getFaceBasedExposureControl(): ICnnControl; /** * Get a new instance of the `Detector` class which allows * you to subscribe to detection and framing events generated * from the camera. * * @param {DetectorOpts} opts Detector options * @returns {IDetector} Returns a new instance of the `Detector` class. * @memberof HuddlySdk */ getDetector(opts: DetectorOpts): IDetector; /** * Reads data from camera and returns diagnostics information * Gives information on what type of usb connection has been established,voltage/current is too high, and tips on how to mitigate * @returns an array of DiagnosticsMessages */ getDiagnostics(): Promise<Array<DiagnosticsMessage>>; /** * Reads out the current autozoom state on the camera (currently supported only on Huddly IQ) * * @returns {Promise<any>} A JSON representation of the camera state such as is genius framing enabled. * @memberof IDeviceManager */ getState(): Promise<any>; /** * Reads out the power consumtion on the camera. * @ignore * @returns {Promise<any>} An object containing different power consumtion parameters. * @memberof IDeviceManager */ getPowerUsage(): Promise<any>; /** * Reads out the internal and external temperature on the camera. * @ignore * @returns {Promise<any>} An object containing the internal and external temperature values. * @memberof IDeviceManager */ getTemperature(): Promise<any>; /** * Queries the Huddly release server to find out the url * to the latest firmware release for the specific device * type (IQ, GO). * * @param {ReleaseChannel} releaseChannel The firmware release * channel. * @memberof IDeviceManager */ getLatestFirmwareUrl(releaseChannel: ReleaseChannel): any; }