From bd87ae9346503cb13ab1d12ff6f135b77fa0b473 Mon Sep 17 00:00:00 2001 From: Bert Date: Tue, 28 Jun 2011 13:45:57 +0200 Subject: All timeouts in milliseconds --- Makefile | 2 +- main.c | 18 +++++++++--------- util.h | 17 ++++++++++++----- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index bbf2cb4..1003dcf 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: sxiv -VERSION = git-20110624 +VERSION = git-20110628 CC = gcc DESTDIR = diff --git a/main.c b/main.c index 9c8cf14..1ff5c7e 100644 --- a/main.c +++ b/main.c @@ -241,7 +241,7 @@ int main(int argc, char **argv) { } filecnt = fileidx; - fileidx = options->startnum < filecnt ? options->startnum : filecnt - 1; + fileidx = options->startnum < filecnt ? options->startnum : 0; win_init(&win); img_init(&img, &win); @@ -327,10 +327,11 @@ int run_command(const char *cline, Bool reload) { /* event handling */ -#define TO_WIN_RESIZE 75000 -#define TO_IMAGE_DRAG 1000 -#define TO_CURSOR_HIDE 1500000 -#define TO_THUMBS_LOAD 75000 +/* timeouts in milliseconds: */ +#define TO_WIN_RESIZE 75 +#define TO_IMAGE_DRAG 1 +#define TO_CURSOR_HIDE 1500 +#define TO_THUMBS_LOAD 200 int timo_cursor; int timo_redraw; @@ -723,7 +724,7 @@ void run() { else remove_file(tns.cnt, 0); gettimeofday(&t1, 0); - if (TV_TO_DOUBLE(t1) - TV_TO_DOUBLE(t0) >= 0.25) + if (TIMEDIFF(&t1, &t0) >= TO_THUMBS_LOAD) break; } if (tns.cnt == filecnt) @@ -742,8 +743,7 @@ void run() { timeout = timo_cursor; else timeout = timo_redraw; - tt.tv_sec = timeout / 1000000; - tt.tv_usec = timeout % 1000000; + MSEC_TO_TIMEVAL(timeout, &tt); xfd = ConnectionNumber(win.env.dpy); FD_ZERO(&fds); FD_SET(xfd, &fds); @@ -751,7 +751,7 @@ void run() { if (!XPending(win.env.dpy)) select(xfd + 1, &fds, 0, 0, &tt); gettimeofday(&t1, 0); - timeout = MIN((TV_TO_DOUBLE(t1) - TV_TO_DOUBLE(t0)) * 1000000, timeout); + timeout = MIN(TIMEDIFF(&t1, &t0), timeout); /* timeouts fired? */ if (timo_cursor) { diff --git a/util.h b/util.h index c1e08a6..9e08bac 100644 --- a/util.h +++ b/util.h @@ -28,14 +28,21 @@ #define MAX(a,b) ((a) > (b) ? (a) : (b)) #define LEN(a) (sizeof(a) / sizeof(a[0])) -#define TV_TO_DOUBLE(x) ((double) ((x).tv_sec) + 0.000001 * \ - (double) ((x).tv_usec)) +#define TIMEDIFF(t1,t2) (((t1)->tv_sec - (t2)->tv_sec) * 1000 + \ + ((t1)->tv_usec - (t2)->tv_usec) / 1000) -#define TIMESPEC_TO_TIMEVAL(tv, ts) { \ - (tv)->tv_sec = (ts)->tv_sec; \ - (tv)->tv_usec = (ts)->tv_nsec / 1000; \ +#define MSEC_TO_TIMEVAL(t,tv) { \ + (tv)->tv_sec = (t) / 1000; \ + (tv)->tv_usec = (t) % 1000 * 1000; \ } +#ifndef TIMESPEC_TO_TIMEVAL +#define TIMESPEC_TO_TIMEVAL(tv,ts) { \ + (tv)->tv_sec = (ts)->tv_sec; \ + (tv)->tv_usec = (ts)->tv_nsec / 1000; \ +} +#endif + typedef struct { DIR *dir; char *name; -- cgit v1.2.3-54-g00ecf