set_isp_settings.js

/** @module set_isp_settings */

import {
  telephotoCamera,
  setExposureModeCmd,
  setExposureValueCmd,
  setGainModeCmd,
  setGainValueCmd,
  IRCut,
  setIRCmd,
  autofocusArea,
  autofocusCmd,
  setBrightnessValueCmd,
  setContrastValueCmd,
  setSaturationValueCmd,
  setHueValueCmd,
  setSharpnessValueCmd,
  setWhiteBalanceModeCmd,
  setWhiteBalanceScenceCmd,
  whiteBalanceScenesValueID,
  setWhiteBalanceColorCmd,
  modeManual,
} from "./api_codes.js";

/**
 * 3.3.1 brightness
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setBrightness(camera = telephotoCamera, value) {
  // telephoto values: 0-255 default:128
  // wideangle values: -64-64 default:0
  const options = {
    interface: setBrightnessValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.2 contrast
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setContrast(camera = telephotoCamera, value) {
  // telephoto values: 0-255 default:128
  // wideangle values: 0-95 default:0
  const options = {
    interface: setContrastValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.3 saturation
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setSaturation(camera = telephotoCamera, value) {
  // telephoto values: 0-255 default:128
  // wideangle values: 0-100 default:80
  const options = {
    interface: setSaturationValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.4 hue
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setHue(camera = telephotoCamera, value) {
  // telephoto values: 0-255 default:128
  // wideangle values: -2000-2000 default:0
  const options = {
    interface: setHueValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.5 sharpness
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setSharpness(camera = telephotoCamera, value) {
  // telephoto values: 0-100 default:50
  // wideangle values: 1-7 default:2
  const options = {
    interface: setSharpnessValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.6 Set exposure mode
 * @param {number} camera
 * @param {number} mode
 * @returns {Object}
 */
export function setExposureMode(camera = telephotoCamera, mode = modeManual) {
  const options = {
    interface: setExposureModeCmd,
    camId: camera,
    mode: mode,
  };
  return options;
}

/**
 * 3.3.7 Set exposure value
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setExposure(camera = telephotoCamera, value) {
  // Long focal camera:0.0000-15.0000
  // Wide-angle camera:0.0003-1.0
  const options = {
    interface: setExposureValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.8 Set gain mode
 * @param {number} camera
 * @param {number} mode
 * @returns {Object}
 */
export function setGainMode(camera = telephotoCamera, mode = modeManual) {
  const options = {
    interface: setGainModeCmd,
    camId: camera,
    mode: mode,
  };
  return options;
}

/**
 * 3.3.9 Set gain value
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setGain(camera = telephotoCamera, value) {
  // Long focal camera:0-240
  // Wide-angle camera:64-8000
  const options = {
    interface: setGainValueCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.10 Start autofocus
 * @param {number} camera
 * @param {number} mode
 * @param {number} x
 * @param {number} y
 * @returns {Object}
 */
export function autoFocus(
  camera = telephotoCamera,
  mode = autofocusArea,
  x = 0,
  y = 0
) {
  // centerX: 0-1920
  // centerY: 0-1080
  const options = {
    interface: autofocusCmd,
    camId: camera,
    mode,
    centerX: x,
    centerY: y,
  };
  return options;
}

/**
 * 3.3.11 Set the white balance mode
 * @param {number} camera
 * @param {number} mode
 * @returns {Object}
 */
export function setWhiteBalanceMode(
  camera = telephotoCamera,
  mode = modeManual
) {
  const options = {
    interface: setWhiteBalanceModeCmd,
    camId: camera,
    mode: mode,
  };
  return options;
}

/**
 * 3.3.12 Set the white balance scene
 * @param {number} mode
 * @returns {Object}
 */
export function setWhiteBalanceScene(
  mode = whiteBalanceScenesValueID["incandescent lamp"]
) {
  const options = {
    interface: setWhiteBalanceScenceCmd,
    camId: telephotoCamera,
    mode,
  };
  return options;
}

/**
 * 3.3.13 Set the white balance color temperature parameter
 * @param {number} camera
 * @param {number} value
 * @returns {Object}
 */
export function setWhiteBalanceColor(camera = telephotoCamera, value) {
  // Long focal camera: 2800-7500
  // Wide-angle camera: 2800-6000
  const options = {
    interface: setWhiteBalanceColorCmd,
    camId: camera,
    value,
  };
  return options;
}

/**
 * 3.3.14 IR_CUT
 * @param {number} value
 * @returns {Object}
 */
export function setIR(value = IRCut) {
  const options = {
    interface: setIRCmd,
    camId: telephotoCamera,
    value,
  };
  return options;
}