///
/// HybridCameraDeviceSpec.cpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

#include "HybridCameraDeviceSpec.hpp"

namespace margelo::nitro::camera {

  void HybridCameraDeviceSpec::loadHybridMethods() {
    // load base methods/properties
    HybridObject::loadHybridMethods();
    // load custom methods/properties
    registerHybrids(this, [](Prototype& prototype) {
      prototype.registerHybridGetter("id", &HybridCameraDeviceSpec::getId);
      prototype.registerHybridGetter("modelID", &HybridCameraDeviceSpec::getModelID);
      prototype.registerHybridGetter("localizedName", &HybridCameraDeviceSpec::getLocalizedName);
      prototype.registerHybridGetter("manufacturer", &HybridCameraDeviceSpec::getManufacturer);
      prototype.registerHybridGetter("type", &HybridCameraDeviceSpec::getType);
      prototype.registerHybridGetter("position", &HybridCameraDeviceSpec::getPosition);
      prototype.registerHybridGetter("physicalDevices", &HybridCameraDeviceSpec::getPhysicalDevices);
      prototype.registerHybridGetter("isVirtualDevice", &HybridCameraDeviceSpec::getIsVirtualDevice);
      prototype.registerHybridGetter("supportedPixelFormats", &HybridCameraDeviceSpec::getSupportedPixelFormats);
      prototype.registerHybridGetter("supportsPhotoHDR", &HybridCameraDeviceSpec::getSupportsPhotoHDR);
      prototype.registerHybridGetter("supportedVideoDynamicRanges", &HybridCameraDeviceSpec::getSupportedVideoDynamicRanges);
      prototype.registerHybridGetter("supportedFPSRanges", &HybridCameraDeviceSpec::getSupportedFPSRanges);
      prototype.registerHybridGetter("supportsPreviewImage", &HybridCameraDeviceSpec::getSupportsPreviewImage);
      prototype.registerHybridGetter("supportsSpeedQualityPrioritization", &HybridCameraDeviceSpec::getSupportsSpeedQualityPrioritization);
      prototype.registerHybridGetter("focalLength", &HybridCameraDeviceSpec::getFocalLength);
      prototype.registerHybridGetter("lensAperture", &HybridCameraDeviceSpec::getLensAperture);
      prototype.registerHybridGetter("isContinuityCamera", &HybridCameraDeviceSpec::getIsContinuityCamera);
      prototype.registerHybridGetter("companionDeskViewCamera", &HybridCameraDeviceSpec::getCompanionDeskViewCamera);
      prototype.registerHybridGetter("mediaTypes", &HybridCameraDeviceSpec::getMediaTypes);
      prototype.registerHybridGetter("supportsFocusMetering", &HybridCameraDeviceSpec::getSupportsFocusMetering);
      prototype.registerHybridGetter("supportsFocusLocking", &HybridCameraDeviceSpec::getSupportsFocusLocking);
      prototype.registerHybridGetter("supportsSmoothAutoFocus", &HybridCameraDeviceSpec::getSupportsSmoothAutoFocus);
      prototype.registerHybridGetter("supportsExposureMetering", &HybridCameraDeviceSpec::getSupportsExposureMetering);
      prototype.registerHybridGetter("supportsExposureLocking", &HybridCameraDeviceSpec::getSupportsExposureLocking);
      prototype.registerHybridGetter("supportsExposureBias", &HybridCameraDeviceSpec::getSupportsExposureBias);
      prototype.registerHybridGetter("minExposureBias", &HybridCameraDeviceSpec::getMinExposureBias);
      prototype.registerHybridGetter("maxExposureBias", &HybridCameraDeviceSpec::getMaxExposureBias);
      prototype.registerHybridGetter("supportsWhiteBalanceMetering", &HybridCameraDeviceSpec::getSupportsWhiteBalanceMetering);
      prototype.registerHybridGetter("maxWhiteBalanceGain", &HybridCameraDeviceSpec::getMaxWhiteBalanceGain);
      prototype.registerHybridGetter("supportsWhiteBalanceLocking", &HybridCameraDeviceSpec::getSupportsWhiteBalanceLocking);
      prototype.registerHybridGetter("hasFlash", &HybridCameraDeviceSpec::getHasFlash);
      prototype.registerHybridGetter("hasTorch", &HybridCameraDeviceSpec::getHasTorch);
      prototype.registerHybridGetter("supportsTorchStrength", &HybridCameraDeviceSpec::getSupportsTorchStrength);
      prototype.registerHybridGetter("minTorchStrength", &HybridCameraDeviceSpec::getMinTorchStrength);
      prototype.registerHybridGetter("maxTorchStrength", &HybridCameraDeviceSpec::getMaxTorchStrength);
      prototype.registerHybridGetter("supportsLowLightBoost", &HybridCameraDeviceSpec::getSupportsLowLightBoost);
      prototype.registerHybridGetter("minZoom", &HybridCameraDeviceSpec::getMinZoom);
      prototype.registerHybridGetter("maxZoom", &HybridCameraDeviceSpec::getMaxZoom);
      prototype.registerHybridGetter("zoomLensSwitchFactors", &HybridCameraDeviceSpec::getZoomLensSwitchFactors);
      prototype.registerHybridGetter("supportsDistortionCorrection", &HybridCameraDeviceSpec::getSupportsDistortionCorrection);
      prototype.registerHybridMethod("getSupportedResolutions", &HybridCameraDeviceSpec::getSupportedResolutions);
      prototype.registerHybridMethod("supportsOutput", &HybridCameraDeviceSpec::supportsOutput);
      prototype.registerHybridMethod("supportsFPS", &HybridCameraDeviceSpec::supportsFPS);
      prototype.registerHybridMethod("supportsVideoStabilizationMode", &HybridCameraDeviceSpec::supportsVideoStabilizationMode);
      prototype.registerHybridMethod("supportsPreviewStabilizationMode", &HybridCameraDeviceSpec::supportsPreviewStabilizationMode);
      prototype.registerHybridMethod("isSessionConfigSupported", &HybridCameraDeviceSpec::isSessionConfigSupported);
    });
  }

} // namespace margelo::nitro::camera
