#!/usr/bin/env python from ctypes import * import pylladium class drm_create_screen_arg(Structure): _fields_ = [("mode", c_uint)] class drm_api(Structure): pass drm_api._fields_ = [ ("destroy", CFUNCTYPE(None, POINTER(drm_api))), ("name", c_char_p), ("driver_name", c_char_p), ("create_screen", CFUNCTYPE(c_void_p, POINTER(drm_api), c_int, POINTER(drm_create_screen_arg))), ] class DrmApi(object): def __init__(self, handle): self.drm_api = handle.drm_api_create() def __del__(self): return self.drm_api[0].destroy(self.drm_api) def create_screen(self, fd): arg = drm_create_screen_arg() arg.mode = 0 # DRM_CREATE_NORMAL s = pylladium.Screen(self.drm_api[0].create_screen(self.drm_api, fd, byref(arg))) return s @property def name(self): return self.drm_api[0].name