UNPKG

@atem-connection/camera-control

Version:
76 lines 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AtemCameraControlStateBuilder = void 0; const changesTracker_1 = require("./changesTracker"); const video_1 = require("./video"); const lens_1 = require("./lens"); const display_1 = require("./display"); const colorCorrection_1 = require("./colorCorrection"); const emptyState_1 = require("../emptyState"); const ids_1 = require("../ids"); class AtemCameraControlStateBuilder { #states = new Map(); constructor(inputCount) { this.reset(inputCount); } reset(inputCount) { this.#states.clear(); for (let i = 1; i <= inputCount; i++) { this.#states.set(i, (0, emptyState_1.createEmptyState)(i)); } } get(cameraId) { return this.#states.get(cameraId); } getAll() { return Array.from(this.#states.values()); } #getOrCreateCamera(cameraId) { let state = this.#states.get(cameraId); if (!state) { state = (0, emptyState_1.createEmptyState)(cameraId); this.#states.set(cameraId, state); } return state; } applyCommands(commands) { if (commands.length === 0) return []; const changes = new changesTracker_1.ChangesTracker(); for (const command of commands) { const state = this.#getOrCreateCamera(command.source); const category = command.category; switch (category) { case ids_1.AtemCameraControlCategory.Lens: (0, lens_1.applyLensCommand)(changes, command, state); break; case ids_1.AtemCameraControlCategory.Video: (0, video_1.applyVideoCommand)(changes, command, state); break; case ids_1.AtemCameraControlCategory.Display: (0, display_1.applyDisplayCommand)(changes, command, state); break; case ids_1.AtemCameraControlCategory.ColorCorrection: (0, colorCorrection_1.applyColorCorrectionCommand)(changes, command, state); break; case ids_1.AtemCameraControlCategory.Audio: case ids_1.AtemCameraControlCategory.Output: case ids_1.AtemCameraControlCategory.Tally: case ids_1.AtemCameraControlCategory.Reference: case ids_1.AtemCameraControlCategory.Configuration: case ids_1.AtemCameraControlCategory.Media: case ids_1.AtemCameraControlCategory.PTZControl: // Not implemented changes.addUnhandledMessage(command); break; default: (0, changesTracker_1.assertNever)(category); changes.addUnhandledMessage(command); break; } } return changes.getResult(); } } exports.AtemCameraControlStateBuilder = AtemCameraControlStateBuilder; //# sourceMappingURL=stateBuilder.js.map