#pragma once

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

#include <pybind11/pybind11.h>

namespace py = pybind11;

/**
 * @brief Bind io::StereoCameraRecording class to python
 * @param m pybind The module to bind to
 */
void bind_stereo_camera_recording(py::module &m) {
	using pybind11::operator""_a;

	py::class_<dv::io::StereoCameraRecording>(m, "StereoCameraRecording",
		"Create a reader for stereo camera recording. Expects at least one stream from two cameras available. Prior "
		"knowledge of stereo setup is required, otherwise it is not possible to differentiate between left and right "
		"cameras. This is just a convenience class that gives access to distinguished data streams in the recording.")
		.def(py::init<const std::filesystem::path &, const std::string &, const std::string &>(), "aedat4Path"_a,
			"leftCameraName"_a, "rightCameraName"_a,
			"Open an aedat4 file containing recordings from a stereo camera setup.")
		.def("getLeftReader", &dv::io::StereoCameraRecording::getLeftReader, "Access the left camera reader.")
		.def("getRightReader", &dv::io::StereoCameraRecording::getRightReader, "Access the right camera reader.");
}
