OSDN Git Service

slideshow: Filter out non key events
authorJohan Redestig <johan.redestig@sonymobile.com>
Fri, 9 Oct 2015 11:25:39 +0000 (13:25 +0200)
committerJohan Redestig <johan.redestig@sonymobile.com>
Sat, 10 Oct 2015 16:41:12 +0000 (18:41 +0200)
The driver could send EV_SYN events which need
to be filtered out, otherwise we would change
image too soon.

Change-Id: I954e8a4f228da4165a7af3fa544e95a22390a35b

slideshow/slideshow.cpp

index d5b06ff..86e3c1b 100644 (file)
@@ -118,13 +118,19 @@ int main(int argc, char **argv)
     while (optind < argc - 1) {
         draw(argv[optind++]);
 
-        if (ev_wait(timeout) == 0) {
-            ev_dispatch();
+        start = time(NULL);
+        long int timeout_remaining = timeout;
+        do {
+            if (ev_wait(timeout_remaining) == 0) {
+                ev_dispatch();
 
-            if (key_code != -1) {
-                input = true;
+                if (key_code != -1) {
+                    input = true;
+                    break;
+                }
             }
-        }
+            timeout_remaining -= (long int)(time(NULL) - start) * 1000;
+        } while (timeout_remaining > 0);
     };
 
     /* if there was user input while showing the images, display the last