diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2017-02-12 01:11:41 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2017-02-12 17:01:38 +0200 |
commit | 3037dba80d888a0322d8ebf4e9728800fc314275 (patch) | |
tree | ba2995cd531f81214a44ba900f2f14bcd568d4be | |
parent | e96a0e9b7aecc5c3b3cc3fbf705a0942bf105c9e (diff) |
[HACK] py: Expose Videomode::to_blob method
Returning the blob through an std::unique_ptr<> causes issues with
pybind11. Return the blob pointer directly as a workaround while the
root cause is investigated and fixed.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | kms++/inc/kms++/videomode.h | 2 | ||||
-rw-r--r-- | kms++/src/videomode.cpp | 5 | ||||
-rw-r--r-- | py/pykms/pykmsbase.cpp | 1 |
3 files changed, 5 insertions, 3 deletions
diff --git a/kms++/inc/kms++/videomode.h b/kms++/inc/kms++/videomode.h index 39e5639..085c23a 100644 --- a/kms++/inc/kms++/videomode.h +++ b/kms++/inc/kms++/videomode.h @@ -29,7 +29,7 @@ struct Videomode uint32_t flags; // DRM_MODE_FLAG_* uint32_t type; // DRM_MODE_TYPE_* - std::unique_ptr<Blob> to_blob(Card& card) const; + Blob *to_blob(Card& card) const; uint16_t hfp() const { return hsync_start - hdisplay; } uint16_t hsw() const { return hsync_end - hsync_start; } diff --git a/kms++/src/videomode.cpp b/kms++/src/videomode.cpp index 4964a57..98754e0 100644 --- a/kms++/src/videomode.cpp +++ b/kms++/src/videomode.cpp @@ -10,11 +10,12 @@ using namespace std; namespace kms { -unique_ptr<Blob> Videomode::to_blob(Card& card) const +Blob *Videomode::to_blob(Card& card) const { drmModeModeInfo drm_mode = video_mode_to_drm_mode(*this); + Blob *blob = new Blob(card, &drm_mode, sizeof(drm_mode)); - return unique_ptr<Blob>(new Blob(card, &drm_mode, sizeof(drm_mode))); + return blob; } float Videomode::calculated_vrefresh() const diff --git a/py/pykms/pykmsbase.cpp b/py/pykms/pykmsbase.cpp index 090c212..1492e53 100644 --- a/py/pykms/pykmsbase.cpp +++ b/py/pykms/pykmsbase.cpp @@ -148,6 +148,7 @@ void init_pykmsbase(py::module &m) py::class_<Videomode>(m, "Videomode") .def(py::init<>()) + .def("blob", &Videomode::to_blob) .def_readwrite("name", &Videomode::name) |