22 lines
481 B
C
22 lines
481 B
C
#include "actions.h"
|
|
#include "idle.h"
|
|
#include <stdbool.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
|
|
bool sleeptimer(unsigned long seconds, actionCallback callback) {
|
|
unsigned long millis = seconds * 1000;
|
|
unsigned long idleTime = getIdleTime();
|
|
|
|
struct timespec sleepTime = {.tv_sec = 0, .tv_nsec = 100 * 1000000};
|
|
while (idleTime < millis) {
|
|
idleTime = getIdleTime();
|
|
nanosleep(&sleepTime, NULL);
|
|
}
|
|
|
|
if (!(*callback)()) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|