summaryrefslogtreecommitdiff
path: root/timer.h
blob: c24611ae014e890f9f617bb6c5442a2e8889ab8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef TIMER_H
#define TIMER_H

#include <stddef.h>

enum TimerState : unsigned int {
  T_STOPPED = 0,
  T_RUNNING,
};  

struct Timer {
  size_t seconds;
  size_t remaining_seconds;
  int timerfd;
  enum TimerState status;
};

typedef struct Timer Timer;
typedef enum TimerState TimerState;

void timer_init(Timer *t, size_t sec);

void timer_reset(Timer *t);
void timer_start(Timer *t);
void timer_stop(Timer *t);
void timer_toggle_state(Timer *t);
int timer_request_time();
void timer_loop(Timer *t);

#endif