diff options
Diffstat (limited to 'src/light_thread.c')
| -rw-r--r-- | src/light_thread.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/light_thread.c b/src/light_thread.c new file mode 100644 index 0000000..1d273a0 --- /dev/null +++ b/src/light_thread.c @@ -0,0 +1,42 @@ +// XXX signals, includes, open, write instead of fopen, fwrite + +#include <stdio.h> + +#include <stdint.h> +#include <sys/time.h> + +#include "common.h" +#include "consts.h" +#include "config.h" +#include "backlight.h" + +uint64_t time_since_press(void) { + struct timeval now; + + uint64_t now_usec; + uint64_t press_usec; + uint64_t diff; + + gettimeofday(&now, NULL); + + now_usec = now.tv_sec * 1000000L; + now_usec += now.tv_usec; + + press_usec = last_press->tv_sec * 1000000L; + press_usec += last_press->tv_usec; + + diff = now_usec - press_usec; + + return diff; +} + +int light_thread(void) { + while (1) { + if (time_since_press() > BACKLIGHT_TIME) backlight_off(); + else backlight_on(); + + usleep(THREAD_WAIT); + } + + return 0; +} |
