]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - mt_keys.c
mt_server: Use "%s" format string in syslog()
[coffee/mt-apps.git] / mt_keys.c
index 59436f409cf5b0fb70ba566d732cd862d783679c..015b8ae0095d34eb901e97ff7a9f4101d2cdb655 100644 (file)
--- a/mt_keys.c
+++ b/mt_keys.c
@@ -12,8 +12,6 @@
 
 static void keys_cb(EV_P_ ev_io *w_, int revents)
 {
-    static char *type = "keys";
-
     ev_io_keys *w = (ev_io_keys *)w_;
     int fd = w->fd;
     struct input_event ev;
@@ -25,84 +23,86 @@ static void keys_cb(EV_P_ ev_io *w_, int revents)
     }
     if (ev.type == 1 && ev.value == 1) {
         switch (ev.code) {
-            case KEY_A:
+            case BTN_TRIGGER_HAPPY1:
                 key = 'A';
                 break;
-            case KEY_B:
+            case BTN_TRIGGER_HAPPY2:
                 key = 'B';
                 break;
-            case KEY_C:
+            case BTN_TRIGGER_HAPPY3:
                 key = 'C';
                 break;
-            case KEY_D:
+            case BTN_TRIGGER_HAPPY4:
                 key = 'D';
                 break;
-            case KEY_E:
+            case BTN_TRIGGER_HAPPY5:
                 key = 'E';
                 break;
-            case KEY_F:
+            case BTN_TRIGGER_HAPPY6:
                 key = 'F';
                 break;
-            case KEY_G:
+            case BTN_TRIGGER_HAPPY7:
                 key = 'G';
                 break;
-            case KEY_H:
+            case BTN_TRIGGER_HAPPY8:
                 key = 'H';
                 break;
-            case KEY_I:
+            case BTN_TRIGGER_HAPPY9:
                 key = 'I';
                 break;
-            case KEY_J:
+            case BTN_TRIGGER_HAPPY10:
                 key = 'J';
                 break;
-            case KEY_K:
+            case BTN_TRIGGER_HAPPY11:
                 key = 'K';
                 break;
-            case KEY_L:
+            case BTN_TRIGGER_HAPPY12:
                 key = 'L';
                 break;
-            case KEY_M:
+            case BTN_TRIGGER_HAPPY13:
                 key = 'M';
                 break;
-            case KEY_N:
+            case BTN_TRIGGER_HAPPY14:
                 key = 'N';
                 break;
-            case KEY_O:
+            case BTN_TRIGGER_HAPPY15:
                 key = 'O';
                 break;
-            case KEY_P:
+            case BTN_TRIGGER_HAPPY16:
                 key = 'P';
                 break;
-            case KEY_Q:
+            case BTN_TRIGGER_HAPPY17:
                 key = 'Q';
                 break;
-            case KEY_R:
+            case BTN_TRIGGER_HAPPY18:
                 key = 'R';
                 break;
-            case KEY_S:
+            case BTN_TRIGGER_HAPPY19:
                 key = 'S';
                 break;
-            case KEY_T:
+            case BTN_TRIGGER_HAPPY20:
                 key = 'T';
                 break;
             default:
                 fprintf(stderr, "unsupported event code: %d\n", ev.code);
-                return;
+               key = '?';
+                //return;
         }
 
-        JSON_START();
-        JSON_STR(type);
-        JSON_NEXT();
-        JSON_CHAR(key);
-        JSON_END();
+       keys_json_print(fd, key);
     }
 }
 
 int mt_keys_init(mt_keys_t *self, struct ev_loop *loop, int fd)
 {
-    int ev = open("/dev/input/by-path/platform-gpio-keys-event", O_RDONLY);
-    if (fd == -1) {
-        perror("open");
+    char *dev = getenv("INPUT");
+
+    if (!dev)
+       dev = "/dev/input/by-path/platform-gpio-keys-event";
+
+    int ev = open(dev, O_RDONLY);
+    if (ev == -1) {
+        perror(dev);
         return -1;
     }
 
@@ -139,6 +139,7 @@ int main(int argc, char **argv)
     ev_run(loop, 0);
 
     mt_keys_deinit(&keys);
+    ev_loop_destroy(loop);
 
     return 0;
 }