[PATCH evemu 07/12] python: leave uinput creation up to evemu

Peter Hutterer peter.hutterer at who-t.net
Tue Jul 22 16:42:45 PDT 2014


Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 python/evemu/__init__.py | 5 +----
 python/evemu/base.py     | 6 ++++++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/python/evemu/__init__.py b/python/evemu/__init__.py
index 690cb86..4f64204 100644
--- a/python/evemu/__init__.py
+++ b/python/evemu/__init__.py
@@ -55,14 +55,12 @@ class Device(object):
         self._is_propfile = self._check_is_propfile(self._file)
         self._libc = evemu.base.LibC()
         self._libevemu = evemu.base.LibEvemu()
-        self._uinput = None
 
         self._evemu_device = self._libevemu.evemu_new(b"")
 
         if self._is_propfile:
             fs = self._libc.fdopen(self._file.fileno(), b"r")
             self._libevemu.evemu_read(self._evemu_device, fs)
-            self._uinput = os.open(evemu.const.UINPUT_NODE, os.O_WRONLY)
             self._file = self._create_devnode()
         else:
             self._libevemu.evemu_extract(self._evemu_device,
@@ -72,10 +70,9 @@ class Device(object):
         if hasattr(self, "_is_propfile") and self._is_propfile:
             self._file.close()
             self._libevemu.evemu_destroy(self._evemu_device)
-            self._uinput.close()
 
     def _create_devnode(self):
-        self._libevemu.evemu_create(self._evemu_device, self._uinput)
+        self._libevemu.evemu_create_managed(self._evemu_device)
         return open(self._find_newest_devnode(self.name), 'r+b', buffering=0)
 
     def _find_newest_devnode(self, target_name):
diff --git a/python/evemu/base.py b/python/evemu/base.py
index b366e2f..6540c01 100644
--- a/python/evemu/base.py
+++ b/python/evemu/base.py
@@ -394,6 +394,12 @@ class LibEvemu(LibraryWrapper):
             "restype": c_int,
             "errcheck": expect_eq_zero
             },
+        #int evemu_create_managed(struct evemu_device *dev);
+        "evemu_create_managed": {
+            "argtypes": (c_void_p,),
+            "restype": c_int,
+            "errcheck": expect_eq_zero
+            },
         #void evemu_destroy(struct evemu_device *dev);
         "evemu_destroy": {
             "argtypes": (c_void_p,),
-- 
1.9.3



More information about the Input-tools mailing list