aboutsummaryrefslogtreecommitdiff
path: root/AVR/queue.h
blob: a587d0edb948ffb93088cc08b022e5468d8c08ac (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
#ifndef QUEUE_H
#define QUEUE_H

// Settings
#define QUEUE_DEPTH 10
#define NAME_LIMIT 8
typedef uint32_t queue_time_t;

typedef int (*queuedFunction)(queue_time_t);

typedef struct _queue_item
{
    queuedFunction fPtr;
    queue_time_t recur;
    queue_time_t next;
    char itemName[NAME_LIMIT];
} queueItem;

//Functions
int scheduleFunction(queuedFunction, const char *, queue_time_t, queue_time_t);
int scheduleRemoveFunction(const char *);
int scheduleChangeFunction(const char *, queue_time_t, queue_time_t);

int scheduleRun(queue_time_t);

#endif