@huddly/device-api-usb
Version:
Huddly SDK device api which uses node-usb wrapper responsible for handling the transport layer of the communication and discovering the physical device/camera
46 lines (45 loc) • 1.66 kB
TypeScript
/// <reference types="node" />
import { usb } from 'usb';
import EventEmitter from 'events';
import IDeviceDiscovery from '@huddly/sdk-interfaces/lib/interfaces/IDeviceDiscovery';
import HuddlyHEX from '@huddly/sdk-interfaces/lib/enums/HuddlyHex';
export interface UsbDevice {
id: string;
busNumber: number;
deviceAddress: number;
portNumbers: Array<number>;
interfaces: any;
serialNumber: string;
productName: string;
productId: number;
vendorId: number;
}
export default class DeviceDiscoveryManager implements IDeviceDiscovery {
private readonly className;
private attachedDevices;
private eventEmitter;
private pidsToIgnore;
constructor(pidsToIgnore?: HuddlyHEX[]);
private newDeviceAttached;
private newDeviceDetached;
private isDeviceWithUUIDCached;
get cachedDevices(): Array<UsbDevice>;
generateUsbUniqueId(props: {
usbBusNumber: number;
usbDeviceAddress: number;
usbPortNumbers: Array<Number>;
}): string;
getDeviceUUID(device: usb.Device): string;
fetchAndPopulateDeviceParams(device: usb.Device): Promise<boolean>;
registerForHotplugEvents(eventEmitter: EventEmitter): void;
/**
* Helper method for aiding unit testing of device list feature
*
* @return {*} {usb.Device[]} A list of usb devices returned by node-usb library
* @memberof DeviceDiscoveryManager
*/
getUnfilteredDeviceList(): usb.Device[];
deviceList(doEmitNewDevices?: boolean): Promise<usb.Device[]>;
getDevice(serialNumber?: string | undefined): Promise<usb.Device | undefined>;
isValidHuddlyDevice(device: any): boolean;
}