diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2017-01-02 16:42:08 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-01-03 10:46:42 +0200 |
commit | b11baff09f78a4a383f817ec35208ae8966ab832 (patch) | |
tree | 610e89719c4a3d9714a472cdc6681e36df419a1b /py/pykms/pykms.cpp | |
parent | c6f964425cdec25e3d0ecd0054d398d3420fdfeb (diff) |
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 <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'py/pykms/pykms.cpp')
-rw-r--r-- | py/pykms/pykms.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
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 <pybind11/pybind11.h> +#include <pybind11/stl.h> +#include <kms++/kms++.h> + +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_<PyPageFlipHandlerBase>(m, "PageFlipHandlerBase") + .alias<PageFlipHandlerBase>() + .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(); +} |