@huddly/sdk-interfaces
Version:
Module for describing the Huddly SDK using interfaces
169 lines (168 loc) • 6.15 kB
TypeScript
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;
}