From b11baff09f78a4a383f817ec35208ae8966ab832 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 2 Jan 2017 16:42:08 +0200 Subject: py: Reorganize source directory Separate the Python bindings sources from the test scripts. While at it, remove the unneeded run.sh script. Signed-off-by: Laurent Pinchart --- py/pykms/pykms.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 py/pykms/pykms.cpp (limited to 'py/pykms/pykms.cpp') diff --git a/py/pykms/pykms.cpp b/py/pykms/pykms.cpp new file mode 100644 index 0000000..2199039 --- /dev/null +++ b/py/pykms/pykms.cpp @@ -0,0 +1,53 @@ +#include +#include +#include + +namespace py = pybind11; + +using namespace kms; +using namespace std; + +void init_pykmstest(py::module &m); +void init_pykmsbase(py::module &m); +void init_pyvid(py::module &m); + +#if HAS_LIBDRM_OMAP +void init_pykmsomap(py::module &m); +#endif + +class PyPageFlipHandlerBase : PageFlipHandlerBase +{ +public: + using PageFlipHandlerBase::PageFlipHandlerBase; + + virtual void handle_page_flip(uint32_t frame, double time) + { + PYBIND11_OVERLOAD_PURE( + void, /* Return type */ + PageFlipHandlerBase, /* Parent class */ + handle_page_flip, /* Name of function */ + frame, time + ); + } +}; + +PYBIND11_PLUGIN(pykms) { + py::module m("pykms", "kms bindings"); + + init_pykmsbase(m); + + py::class_(m, "PageFlipHandlerBase") + .alias() + .def(py::init<>()) + .def("handle_page_flip", &PageFlipHandlerBase::handle_page_flip) + ; + + init_pykmstest(m); + + init_pyvid(m); + +#if HAS_LIBDRM_OMAP + init_pykmsomap(m); +#endif + return m.ptr(); +} -- cgit v1.2.3