UNPKG

@logitech-mx-creative-console/core

Version:

An npm module for interfacing with the Logitech MX Creative Console

47 lines 2.66 kB
import { EventEmitter } from 'eventemitter3'; import type { HIDDevice, HIDDeviceInfo } from '../hid-device.js'; import type { DeviceModelId, Dimension, KeyIndex } from '../id.js'; import type { FillImageOptions, FillPanelDimensionsOptions, FillPanelOptions, MXCreativeConsole, MXCreativeConsoleEvents } from '../types.js'; import type { ButtonsLcdDisplayService } from '../services/buttonsLcdDisplay/interface.js'; import type { MXConsoleButtonControlDefinition, MXConsoleControlDefinition } from '../controlDefinition.js'; import type { PropertiesService } from '../services/properties/interface.js'; import type { CallbackHook } from '../services/callback-hook.js'; import type { MXCreativeConsoleInputService } from '../services/input/interface.js'; export type EncodeJPEGHelper = (buffer: Uint8Array, width: number, height: number) => Promise<Uint8Array>; export interface OpenMXConsoleOptions { encodeJPEG?: EncodeJPEGHelper; } export type MXConsoleProperties = Readonly<{ MODEL: DeviceModelId; PRODUCT_NAME: string; CONTROLS: Readonly<MXConsoleControlDefinition[]>; PANEL_SIZE: Dimension; }>; export interface MXConsoleServicesDefinition { deviceProperties: MXConsoleProperties; events: CallbackHook<MXCreativeConsoleEvents>; properties: PropertiesService; buttonsLcd: ButtonsLcdDisplayService; inputService: MXCreativeConsoleInputService; } export declare class MXConsoleBase extends EventEmitter<MXCreativeConsoleEvents> implements MXCreativeConsole { #private; get CONTROLS(): Readonly<MXConsoleControlDefinition[]>; get MODEL(): DeviceModelId; get PRODUCT_NAME(): string; protected readonly device: HIDDevice; protected readonly deviceProperties: Readonly<MXConsoleProperties>; constructor(device: HIDDevice, _options: Readonly<Required<OpenMXConsoleOptions>>, services: MXConsoleServicesDefinition); protected checkValidKeyIndex(keyIndex: KeyIndex, feedbackType: MXConsoleButtonControlDefinition['feedbackType'] | null): void; calculateFillPanelDimensions(options?: FillPanelDimensionsOptions): Dimension | null; close(): Promise<void>; getHidDeviceInfo(): Promise<HIDDeviceInfo>; setBrightness(percentage: number): Promise<void>; resetToLogo(): Promise<void>; fillKeyColor(keyIndex: KeyIndex, r: number, g: number, b: number): Promise<void>; fillKeyBuffer(keyIndex: KeyIndex, imageBuffer: Uint8Array, options?: FillImageOptions): Promise<void>; fillPanelBuffer(imageBuffer: Uint8Array, options?: FillPanelOptions): Promise<void>; clearKey(keyIndex: KeyIndex): Promise<void>; clearPanel(): Promise<void>; } //# sourceMappingURL=base.d.ts.map