1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/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
|