summaryrefslogtreecommitdiff
path: root/test/timer.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-03 22:55:11 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-07 18:02:06 +0300
commitb4a3e6ade7864620e453ad81595407aac1979dee (patch)
tree5662e02e3a1442708a29642f74082568bce8efac /test/timer.cpp
parentc4d39f0c31d968d874b8519af7458cbb34e3abe0 (diff)
ipa: camera_sensor_helper: Make registerType() and createInstance() private
The CameraSensorHelperFactory registerType() and createInstance() functions are called by the CameraSensorHelperFactory class only. Make them private. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Xavier Roumegue <xavier.roumegue@oss.nxp.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'test/timer.cpp')
0 files changed, 0 insertions, 0 deletions
ef='#n27'>27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2022, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
 *
 * Python bindings - Geometry classes
 */

#include <array>

#include <libcamera/geometry.h>
#include <libcamera/libcamera.h>

#include <pybind11/operators.h>
#include <pybind11/smart_holder.h>
#include <pybind11/stl.h>

namespace py = pybind11;

using namespace libcamera;

void init_py_geometry(py::module &m)
{
	auto pyPoint = py::class_<Point>(m, "Point");
	auto pySize = py::class_<Size>(m, "Size");
	auto pySizeRange = py::class_<SizeRange>(m, "SizeRange");
	auto pyRectangle = py::class_<Rectangle>(m, "Rectangle");

	pyPoint
		.def(py::init<>())
		.def(py::init<int, int>())
		.def_readwrite("x", &Point::x)
		.def_readwrite("y", &Point::y)
		.def(py::self == py::self)
		.def(-py::self)
		.def("__str__", &Point::toString)
		.def("__repr__", [](const Point &self) {
			return py::str("libcamera.Point({}, {})")
				.format(self.x, self.y);
		});

	pySize
		.def(py::init<>())
		.def(py::init<unsigned int, unsigned int>())
		.def_readwrite("width", &Size::width)
		.def_readwrite("height", &Size::height)
		.def_property_readonly("is_null", &Size::isNull)
		.def("align_down_to", &Size::alignDownTo)
		.def("align_up_to", &Size::alignUpTo)
		.def("bound_to", &Size::boundTo)
		.def("expand_to", &Size::expandTo)
		.def("grow_by", &Size::growBy)
		.def("shrink_by", &Size::shrinkBy)
		.def("aligned_up_to", &Size::alignedUpTo)
		.def("aligned_up_to", &Size::alignedUpTo)
		.def("bounded_to", &Size::boundedTo)
		.def("expanded_to", &Size::expandedTo)
		.def("grown_by", &Size::grownBy)
		.def("shrunk_by", &Size::shrunkBy)
		.def("bounded_to_aspect_ratio", &Size::boundedToAspectRatio)
		.def("expanded_to_aspect_ratio", &Size::expandedToAspectRatio)
		.def("centered_to", &Size::centeredTo)
		.def(py::self == py::self)
		.def(py::self < py::self)
		.def(py::self <= py::self)
		.def(py::self * float())
		.def(py::self / float())
		.def(py::self *= float())
		.def(py::self /= float())
		.def("__str__", &Size::toString)
		.def("__repr__", [](const Size &self) {
			return py::str("libcamera.Size({}, {})")
				.format(self.width, self.height);
		});

	pySizeRange
		.def(py::init<>())
		.def(py::init<Size>())
		.def(py::init<Size, Size>())
		.def(py::init<Size, Size, unsigned int, unsigned int>())
		.def_readwrite("min", &SizeRange::min)
		.def_readwrite("max", &SizeRange::max)
		.def_readwrite("hStep", &SizeRange::hStep)
		.def_readwrite("vStep", &SizeRange::vStep)
		.def("contains", &SizeRange::contains)
		.def(py::self == py::self)
		.def("__str__", &SizeRange::toString)
		.def("__repr__", [](const SizeRange &self) {
			return py::str("libcamera.SizeRange(({}, {}), ({}, {}), {}, {})")
				.format(self.min.width, self.min.height,
					self.max.width, self.max.height,
					self.hStep, self.vStep);
		});

	pyRectangle
		.def(py::init<>())
		.def(py::init<int, int, Size>())
		.def(py::init<int, int, unsigned int, unsigned int>())
		.def(py::init<Size>())
		.def_readwrite("x", &Rectangle::x)
		.def_readwrite("y", &Rectangle::y)
		.def_readwrite("width", &Rectangle::width)
		.def_readwrite("height", &Rectangle::height)
		.def_property_readonly("is_null", &Rectangle::isNull)
		.def_property_readonly("center", &Rectangle::center)
		.def_property_readonly("size", &Rectangle::size)
		.def_property_readonly("topLeft", &Rectangle::topLeft)
		.def("scale_by", &Rectangle::scaleBy)
		.def("translate_by", &Rectangle::translateBy)
		.def("bounded_to", &Rectangle::boundedTo)
		.def("enclosed_in", &Rectangle::enclosedIn)
		.def("scaled_by", &Rectangle::scaledBy)
		.def("translated_by", &Rectangle::translatedBy)
		.def(py::self == py::self)
		.def("__str__", &Rectangle::toString)
		.def("__repr__", [](const Rectangle &self) {
			return py::str("libcamera.Rectangle({}, {}, {}, {})")
				.format(self.x, self.y, self.width, self.height);
		});
}