Added dbus config
[gregoa/zavai.git] / src / input.vala
index 882e69d8b599ac570aee2dcf11604df1893f47fd..8527ac101b3a6f97320bea22d402bd9742b97631 100644 (file)
@@ -48,14 +48,19 @@ public abstract class DevInput : zavai.Service
     {
                if (condition != IOCondition.IN) return true;
 
-        stderr.printf("GOT INPUT ON %s %d\n", device, source.unix_get_fd());
+        //stderr.printf("GOT INPUT ON %s %d\n", device, source.unix_get_fd());
         char[] buf = new char[sizeof(LinuxInput.Event)];
                size_t count_read;
-               source.read_chars(buf, out count_read);
-        stderr.printf("READ %zu chars\n", count_read);
+               try {
+                       source.read_chars(buf, out count_read);
+               } catch (Error e) {
+                       zavai.log.error("Reading from " + device + ": " + e.message);
+                       return true;
+               }
+        //stderr.printf("READ %zu chars\n", count_read);
 
                LinuxInput.Event* ie = (LinuxInput.Event*)buf;
-        stderr.printf("INPUT EVENT time %lu.%lu type %hu code %hu val %d\n", (ulong)ie->time.tv_sec, ie->time.tv_usec, ie->type, ie->code, ie->val);
+        //stderr.printf("INPUT EVENT time %lu.%lu type %hu code %hu val %d\n", (ulong)ie->time.tv_sec, ie->time.tv_usec, ie->type, ie->code, ie->val);
 
         /*
         ts1, ts2, type, code, value = struct.unpack("LLHHI", buf)
@@ -92,7 +97,11 @@ public abstract class DevInput : zavai.Service
         // Open the device and listed to it using the GObject main loop
                zavai.log.info("Opening device " + device);
         fd = new IOChannel.file(device, "r");
-               fd.set_encoding(null);
+               try {
+                       fd.set_encoding(null);
+               } catch (Error e) {
+                       zavai.log.error("Setting encoding to null on " + device + ": " + e.message);
+               }
                fd.set_buffered(false);
         fd_watch = fd.add_watch(IOCondition.IN, on_input_data);