#pragma once

#include "../../../include/dv-processing/io/stereo_camera_writer.hpp"

#include <pybind11/pybind11.h>

namespace py = pybind11;

/**
 * @brief Bind io::StereoCameraWriter class to python
 * @param m pybind The module to bind to
 */
void bind_stereo_camera_writer(py::module &m) {
	py::class_<dv::io::StereoCameraWriter>(
		m, "StereoCameraWriter", "Create an aedat4 file writer class for a stereo rig.")
		.def(py::init<const std::string &, const dv::io::MonoCameraWriter::Config &,
				 const dv::io::MonoCameraWriter::Config &>(),
			py::arg("aedat4Path"), py::arg("leftConfig"), py::arg("rightConfig"),
			"Create an aedat4 file using manual configuration.")
		.def(py::init<const std::string &, dv::io::camera::SyncCameraInputBase &,
				 dv::io::camera::SyncCameraInputBase &>(),
			py::arg("aedat4Path"), py::arg("leftCamera"), py::arg("rightCamera"),
			"Create an aedat4 file using stereo capture instance to inspect the capabilities of cameras.")
		.def_readonly("left", &dv::io::StereoCameraWriter::left, "Left camera writer instance")
		.def_readonly("right", &dv::io::StereoCameraWriter::right, "Right camera writer instance");
}
