UNPKG

atem-connection

Version:

Typescript Node.js library for connecting with an ATEM switcher.

43 lines 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FairlightMixerMonitorSoloUpdateCommand = exports.FairlightMixerMonitorSoloCommand = void 0; const state_1 = require("../../state"); const CommandBase_1 = require("../CommandBase"); class FairlightMixerMonitorSoloCommand extends CommandBase_1.WritableCommand { serialize() { const buffer = Buffer.alloc(24); buffer.writeUInt8(this.flag, 0); buffer.writeUInt8(this.properties.solo ? 1 : 0, 1); buffer.writeUInt16BE(this.properties.index ?? 0, 8); if (this.properties.source) buffer.writeBigInt64BE(BigInt(this.properties.source), 16); return buffer; } } exports.FairlightMixerMonitorSoloCommand = FairlightMixerMonitorSoloCommand; FairlightMixerMonitorSoloCommand.MaskFlags = { solo: 1 << 0, index: 1 << 1, source: 1 << 1, // Intentional duplicate }; FairlightMixerMonitorSoloCommand.rawName = 'CFMS'; class FairlightMixerMonitorSoloUpdateCommand extends CommandBase_1.DeserializedCommand { static deserialize(rawCommand) { const properties = { solo: rawCommand.readUint8(0) === 1, index: rawCommand.readUInt16BE(8), source: rawCommand.readBigInt64BE(16).toString(), }; return new FairlightMixerMonitorSoloUpdateCommand(properties); } applyToState(state) { if (!state.fairlight) { throw new state_1.InvalidIdError('Fairlight'); } state.fairlight.solo = { ...this.properties }; return `fairlight.solo`; } } exports.FairlightMixerMonitorSoloUpdateCommand = FairlightMixerMonitorSoloUpdateCommand; FairlightMixerMonitorSoloUpdateCommand.rawName = 'FAMS'; //# sourceMappingURL=FairlightMixerMonitorSoloCommand.js.map