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

#include "HybridCameraFactorySpec.hpp"

namespace margelo::nitro::camera {

  void HybridCameraFactorySpec::loadHybridMethods() {
    // load base methods/properties
    HybridObject::loadHybridMethods();
    // load custom methods/properties
    registerHybrids(this, [](Prototype& prototype) {
      prototype.registerHybridGetter("cameraPermissionStatus", &HybridCameraFactorySpec::getCameraPermissionStatus);
      prototype.registerHybridGetter("microphonePermissionStatus", &HybridCameraFactorySpec::getMicrophonePermissionStatus);
      prototype.registerHybridGetter("supportsMultiCamSessions", &HybridCameraFactorySpec::getSupportsMultiCamSessions);
      prototype.registerHybridMethod("requestCameraPermission", &HybridCameraFactorySpec::requestCameraPermission);
      prototype.registerHybridMethod("requestMicrophonePermission", &HybridCameraFactorySpec::requestMicrophonePermission);
      prototype.registerHybridMethod("createCameraSession", &HybridCameraFactorySpec::createCameraSession);
      prototype.registerHybridMethod("resolveConstraints", &HybridCameraFactorySpec::resolveConstraints);
      prototype.registerHybridMethod("createDeviceFactory", &HybridCameraFactorySpec::createDeviceFactory);
      prototype.registerHybridMethod("createPhotoOutput", &HybridCameraFactorySpec::createPhotoOutput);
      prototype.registerHybridMethod("createVideoOutput", &HybridCameraFactorySpec::createVideoOutput);
      prototype.registerHybridMethod("createFrameOutput", &HybridCameraFactorySpec::createFrameOutput);
      prototype.registerHybridMethod("createDepthFrameOutput", &HybridCameraFactorySpec::createDepthFrameOutput);
      prototype.registerHybridMethod("createPreviewOutput", &HybridCameraFactorySpec::createPreviewOutput);
      prototype.registerHybridMethod("createObjectOutput", &HybridCameraFactorySpec::createObjectOutput);
      prototype.registerHybridMethod("createOutputSynchronizer", &HybridCameraFactorySpec::createOutputSynchronizer);
      prototype.registerHybridMethod("createZoomGestureController", &HybridCameraFactorySpec::createZoomGestureController);
      prototype.registerHybridMethod("createTapToFocusGestureController", &HybridCameraFactorySpec::createTapToFocusGestureController);
      prototype.registerHybridMethod("createOrientationManager", &HybridCameraFactorySpec::createOrientationManager);
      prototype.registerHybridMethod("createFrameRenderer", &HybridCameraFactorySpec::createFrameRenderer);
      prototype.registerHybridMethod("createNormalizedMeteringPoint", &HybridCameraFactorySpec::createNormalizedMeteringPoint);
    });
  }

} // namespace margelo::nitro::camera
