UNPKG

@blackmagic-controller/core

Version:

An npm module for interfacing with the Blackmagic usb/bluetooth controllers

92 lines 4.57 kB
import { BlackmagicControllerBase } from './base.js'; import { BlackmagicControllerModelId } from '../info.js'; import { createRgbButtonDefinition, freezeDefinitions } from '../controlsGenerator.js'; import { CallbackHook } from '../services/callback-hook.js'; import { DefaultPropertiesService } from '../services/properties/default.js'; import { DefaultInputService } from '../services/input/default.js'; import { DefaultLedService } from '../services/led/default.js'; const microPanelControls = [ createRgbButtonDefinition(0, 5, 'macro', 0x01, 16), createRgbButtonDefinition(0, 6, 'key1-on', 0x02, 19), createRgbButtonDefinition(0, 7, 'key2-on', 0x03, 22), createRgbButtonDefinition(0, 8, 'key3-on', 0x04, 25), createRgbButtonDefinition(0, 9, 'key4-on', 0x05, 28), createRgbButtonDefinition(1, 5, 'next-background', 0x06, 31), createRgbButtonDefinition(1, 6, 'next-key1', 0x07, 34), createRgbButtonDefinition(1, 7, 'next-key2', 0x08, 37), createRgbButtonDefinition(1, 8, 'next-key3', 0x09, 40), createRgbButtonDefinition(1, 9, 'next-key4', 0x0a, 43), createRgbButtonDefinition(2, 0, 'program1', 0x0b, 46), createRgbButtonDefinition(2, 1, 'program2', 0x0c, 49), createRgbButtonDefinition(2, 2, 'program3', 0x0d, 52), createRgbButtonDefinition(2, 3, 'program4', 0x0e, 55), createRgbButtonDefinition(2, 4, 'program5', 0x0f, 58), createRgbButtonDefinition(2, 5, 'program6', 0x10, 61), createRgbButtonDefinition(2, 6, 'program7', 0x11, 64), createRgbButtonDefinition(2, 7, 'program8', 0x12, 67), createRgbButtonDefinition(2, 8, 'program9', 0x13, 70), createRgbButtonDefinition(2, 9, 'program10', 0x14, 73), createRgbButtonDefinition(3, 0, 'preview1', 0x15, 76), createRgbButtonDefinition(3, 1, 'preview2', 0x16, 79), createRgbButtonDefinition(3, 2, 'preview3', 0x17, 82), createRgbButtonDefinition(3, 3, 'preview4', 0x18, 85), createRgbButtonDefinition(3, 4, 'preview5', 0x19, 88), createRgbButtonDefinition(3, 5, 'preview6', 0x1a, 91), createRgbButtonDefinition(3, 6, 'preview7', 0x1b, 94), createRgbButtonDefinition(3, 7, 'preview8', 0x1c, 97), createRgbButtonDefinition(3, 8, 'preview9', 0x1d, 100), createRgbButtonDefinition(3, 9, 'preview10', 0x1e, 103), createRgbButtonDefinition(0, 10, 'mixeffect1', 0x1f, 106), createRgbButtonDefinition(0, 11, 'mixeffect2', 0x20, 109), createRgbButtonDefinition(0, 12, 'mixeffect3', 0x21, 112), createRgbButtonDefinition(0, 13, 'mixeffect4', 0x22, 115), createRgbButtonDefinition(1, 11, 'transition-dip', 0x23, 118), createRgbButtonDefinition(1, 12, 'transition-dve', 0x24, 121), createRgbButtonDefinition(1, 13, 'transition-sting', 0x25, 124), createRgbButtonDefinition(2, 11, 'transition-mix', 0x27, 130), createRgbButtonDefinition(2, 12, 'transition-wipe', 0x28, 133), createRgbButtonDefinition(2, 13, 'transition-arm', 0x29, 136), createRgbButtonDefinition(2, 10, 'shift', 0x26, 127), createRgbButtonDefinition(3, 10, 'preview-transition', 0x2a, 139), createRgbButtonDefinition(3, 11, 'cut', 0x2b, 142), createRgbButtonDefinition(3, 13, 'auto', 0x2c, 145), { type: 'tbar', id: 0, row: 0, column: 14, columnSpan: 1, rowSpan: 4, ledSegments: 16, ledBitIndex: 0, }, createRgbButtonDefinition(1, 15, 'dsk1-tie', 0x2d, 148), createRgbButtonDefinition(1, 16, 'dsk2-tie', 0x2e, 151), createRgbButtonDefinition(2, 15, 'dsk1-cut', 0x2f, 154), createRgbButtonDefinition(2, 16, 'dsk2-cut', 0x30, 157), createRgbButtonDefinition(3, 15, 'dsk1-auto', 0x31, 160), createRgbButtonDefinition(3, 16, 'dsk2-auto', 0x32, 163), ]; const atemMicroPanelProperties = { MODEL: BlackmagicControllerModelId.AtemMicroPanel, CONTROLS: freezeDefinitions(microPanelControls), }; export function AtemMicroPanelFactory(device, options) { const events = new CallbackHook(); return new BlackmagicControllerBase(device, options, { deviceProperties: atemMicroPanelProperties, events, properties: new DefaultPropertiesService(device, { batteryReportId: 6, firmwareReportId: 1, serialReportId: 7, }), inputService: new DefaultInputService(atemMicroPanelProperties, events, { buttonReportId: 0x03, tbarReportId: 0x08, batteryReportId: 0x06, }), led: new DefaultLedService(device, 0x02, 32), }); } //# sourceMappingURL=atem-micro-panel.js.map