From 2d14233bdb2302bffc1a241681f34933cb99c157 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Wed, 25 May 2016 14:34:23 +0300 Subject: Add support for DRM blobs --- py/pykmsbase.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'py/pykmsbase.cpp') diff --git a/py/pykmsbase.cpp b/py/pykmsbase.cpp index aa86d9f..83be9d2 100644 --- a/py/pykmsbase.cpp +++ b/py/pykmsbase.cpp @@ -31,6 +31,9 @@ void init_pykmsbase(py::module &m) py::class_(m, "DrmPropObject", py::base()) .def("refresh_props", &DrmPropObject::refresh_props) .def_property_readonly("prop_map", &DrmPropObject::get_prop_map) + .def("get_prop_value", (uint64_t (DrmPropObject::*)(const string&) const)&DrmPropObject::get_prop_value) + .def("set_prop_value",(int (DrmPropObject::*)(const string&, uint64_t)) &DrmPropObject::set_prop_value) + .def("get_prop_value_as_blob", &DrmPropObject::get_prop_value_as_blob) ; py::class_(m, "Connector", py::base()) @@ -69,6 +72,17 @@ void init_pykmsbase(py::module &m) .def_property_readonly("name", &Property::name) ; + py::class_(m, "Blob", py::base()) + .def("__init__", [](Blob& instance, Card& card, py::buffer buf) { + py::buffer_info info = buf.request(); + if (info.ndim != 1) + throw std::runtime_error("Incompatible buffer dimension!"); + + new (&instance) Blob(card, info.ptr, info.size * info.itemsize); + }) + .def_property_readonly("data", &Blob::data) + ; + py::class_(m, "Framebuffer", py::base()) ; -- cgit v1.2.3