summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1e96518)
raw | patch | inline | side by side (parent: 1e96518)
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | |
Tue, 22 Nov 2016 11:13:20 +0000 (13:13 +0200) | ||
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | |
Tue, 22 Nov 2016 11:13:20 +0000 (13:13 +0200) |
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
CMakeLists.txt | patch | blob | history | |
py/CMakeLists.txt | patch | blob | history | |
py/pykms.cpp | patch | blob | history | |
py/pykmsomap.cpp | [new file with mode: 0644] | patch | blob |
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30cb5f53c6cd9e307ed9f6279c8b2d9fcc15a956..dccdf14d177acd45a02a2563eb06f4f25abd52b8 100644 (file)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBDRM libdrm>=2.4.64 REQUIRED)
+
pkg_check_modules(LIBDRM_OMAP libdrm_omap)
+if(LIBDRM_OMAP_FOUND)
+ add_definitions(-DHAS_LIBDRM_OMAP)
+endif()
enable_testing()
diff --git a/py/CMakeLists.txt b/py/CMakeLists.txt
index 0cb4b99e06cedbe2358c4a8935bc82c62324950f..69bb845aa3023c6ebc5b8335c9138bf695bd42cc 100644 (file)
--- a/py/CMakeLists.txt
+++ b/py/CMakeLists.txt
include_directories(${PROJECT_SOURCE_DIR}/ext/pybind11/include)
-add_library(pykms SHARED pykms.cpp pykmsbase.cpp pykmsutil.cpp pyvid.cpp)
+set(SRCS pykms.cpp pykmsbase.cpp pykmsutil.cpp pyvid.cpp)
+
+if(LIBDRM_OMAP_FOUND)
+ set(SRCS ${SRCS} pykmsomap.cpp)
+endif()
+
+add_library(pykms SHARED ${SRCS})
target_link_libraries(pykms kms++ kms++util ${LIBDRM_LIBRARIES})
# Don't add a 'lib' prefix to the shared library
diff --git a/py/pykms.cpp b/py/pykms.cpp
index c759d236cc966f5281436705fc886519700a095b..219903926521ca51a64877ac7cf2a92aab3b1ff4 100644 (file)
--- a/py/pykms.cpp
+++ b/py/pykms.cpp
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:
init_pyvid(m);
+#if HAS_LIBDRM_OMAP
+ init_pykmsomap(m);
+#endif
return m.ptr();
}
diff --git a/py/pykmsomap.cpp b/py/pykmsomap.cpp
--- /dev/null
+++ b/py/pykmsomap.cpp
@@ -0,0 +1,21 @@
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+#include <kms++/kms++.h>
+#include <kms++/omap/omapkms++.h>
+
+namespace py = pybind11;
+
+using namespace kms;
+using namespace std;
+
+void init_pykmsomap(py::module &m)
+{
+ py::class_<OmapCard>(m, "OmapCard", py::base<Card>())
+ .def(py::init<>())
+ ;
+
+ py::class_<OmapFramebuffer>(m, "OmapFramebuffer", py::base<MappedFramebuffer>())
+ .def(py::init<OmapCard&, uint32_t, uint32_t, PixelFormat>(),
+ py::keep_alive<1, 2>()) // Keep OmapCard alive until this is destructed
+ ;
+}