@atem-connection/camera-control
Version:
Library for ATEM Camera control using atem-connection.
74 lines • 3.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.applyLensCommand = void 0;
const atem_connection_1 = require("atem-connection");
const changesTracker_1 = require("./changesTracker");
const ids_1 = require("../ids");
const changes_1 = require("../changes");
function applyLensCommand(changes, command, state) {
const parameter = command.parameter;
switch (parameter) {
case ids_1.AtemCameraControlLensParameter.Focus: {
if (!changes.checkMessageParameters(command, atem_connection_1.Commands.CameraControlDataType.FLOAT, 1))
return;
state.lens.focus = command.properties.numberData[0];
changes.addChange(command.source, 'lens.focus');
return;
}
case ids_1.AtemCameraControlLensParameter.AutoFocus: {
changes.addEvent(command.source, changes_1.AtemCameraControlEvents.LensAutoFocus);
return;
}
case ids_1.AtemCameraControlLensParameter.ApertureFStop: {
if (!changes.checkMessageParameters(command, atem_connection_1.Commands.CameraControlDataType.FLOAT, 1))
return;
// TODO - verify range
state.lens.iris = command.properties.numberData[0];
changes.addChange(command.source, 'lens.iris');
return;
}
case ids_1.AtemCameraControlLensParameter.AutoAperture: {
changes.addEvent(command.source, changes_1.AtemCameraControlEvents.LensAutoIris);
return;
}
case ids_1.AtemCameraControlLensParameter.OpticalImageStabilisation: {
if (!changes.checkMessageParameters(command, atem_connection_1.Commands.CameraControlDataType.BOOL, 1))
return;
state.lens.opticalImageStabilisation = command.properties.boolData[0];
changes.addChange(command.source, 'lens.opticalImageStabilisation');
return;
}
case ids_1.AtemCameraControlLensParameter.SetContinuousZoomSpeed: {
if (!changes.checkMessageParameters(command, atem_connection_1.Commands.CameraControlDataType.FLOAT, 1))
return;
state.lens.zoomSpeed = command.properties.numberData[0];
changes.addChange(command.source, 'lens.zoomSpeed');
return;
}
case ids_1.AtemCameraControlLensParameter.ApertureNormalised:
case ids_1.AtemCameraControlLensParameter.ApertureOrdinal:
case ids_1.AtemCameraControlLensParameter.SetAbsoluteZoomMM:
case ids_1.AtemCameraControlLensParameter.SetAbsoluteZoomNormalised:
// Not implemented
changes.addUnhandledMessage(command);
return;
// case 8: {
// //Zoom position
// changed['zoomPosition'] = rawCommand.readUInt16BE(16) / 2048
// changed['command'] = 'zoom'
// break
// }
// case 9: {
// //Zoom speed
// changed['zoomSpeed'] = rawCommand.readInt16BE(16) / 2048
// changed['command'] = 'zoom'
// break
// }
default:
(0, changesTracker_1.assertNever)(parameter);
changes.addUnhandledMessage(command);
return;
}
}
exports.applyLensCommand = applyLensCommand;
//# sourceMappingURL=lens.js.map