summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2010-04-26 11:49:14 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2010-04-26 11:49:14 -0700
commit7c4832d2d3273a10cf2f5f4fd25327fe51965aeb (patch)
treeb1d6d23ec34d29dffe438311b765cdbe7d87b2bd
parentce717b27bea85037c266b02eb569de5ec4efb068 (diff)
Split off DRM API to its own file.
-rw-r--r--drm.py29
-rwxr-xr-xmain.py35
2 files changed, 35 insertions, 29 deletions
diff --git a/drm.py b/drm.py
new file mode 100644
index 0000000..16e92f9
--- /dev/null
+++ b/drm.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+from ctypes import *
+
+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, c_void_p)),
+]
+
+class DrmApi(object):
+
+ def __init__(self, handle):
+ self.drm_api = handle.drm_api_create()
+
+ def __del__(self):
+ self.drm_api[0].destroy(self.drm_api)
+
+ def create_screen(self, fd):
+ screen = self.drm_api[0].create_screen(self.drm_api, fd, None)
+ print screen
+
+ @property
+ def name(self):
+ return self.drm_api[0].name
diff --git a/main.py b/main.py
index 5fee22e..8d585a2 100755
--- a/main.py
+++ b/main.py
@@ -3,44 +3,21 @@ from ctypes import *
import os
import sys
+import drm
+
os.environ["LD_BIND_NOW"] = "Yes, please!"
raw = CDLL(sys.argv[1])
-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, c_void_p)),
-]
-
raw.drmOpen.argtypes = [c_char_p, c_char_p]
raw.drmOpen.restype = c_int
-raw.drm_api_create.restype = POINTER(drm_api)
-
-class DrmApi(object):
-
- def __init__(self, handle):
- self.drm_api = handle.drm_api_create()
+raw.drm_api_create.restype = POINTER(drm.drm_api)
- def __del__(self):
- self.drm_api[0].destroy(self.drm_api)
-
- def create_screen(self, fd):
- screen = self.drm_api[0].create_screen(self.drm_api, fd, None)
- print screen
-
- @property
- def name(self):
- return self.drm_api[0].name
-
-da = DrmApi(raw)
+da = drm.DrmApi(raw)
print "Loaded drm_api object, name %s" % da.name
screen = da.create_screen(raw.drmOpen(da.name, None))
+
+del da