30#ifndef SEQUENCER_HEADER_GUARD
31#define SEQUENCER_HEADER_GUARD
92#ifdef SEQUENCER_IMPLEMENTATION
96 assert(self && entries && (capacity > 0u));
98 self->_entries = entries;
99 self->_capacity = capacity;
104 self->_timer_ms = 0u;
119 bool has_capacity =
true;
123 if (self->_len >= self->_capacity) {
124 has_capacity =
false;
148 self->_timer_ms = 0u;
167 if (self->_iter >= self->_len) {
179 if (self->_iter < self->_len) {
182 self->_timer_ms += delta_time_ms;
185 if (self->_timer_ms >= entry->
timer_ms) {
190 event = entry->
event;
void sequencer_set_mode(struct sequencer *self, uint8_t mode)
void sequencer_reset(struct sequencer *self)
void sequencer_init(struct sequencer *self, struct sequencer_entry *entries, size_t capacity)
uint16_t sequencer_update(struct sequencer *self, uint16_t delta_time_ms)
void sequencer_clean(struct sequencer *self)
bool sequencer_add_entry(struct sequencer *self, uint16_t timer_ms, uint8_t event)
sequencer_mode
Definition sequencer.h:39
@ SEQUENCER_MODES
Definition sequencer.h:43
@ SEQUENCER_MODE_SINGLE
Definition sequencer.h:40
@ SEQUENCER_MODE_REPEAT
Definition sequencer.h:41
size_t sequencer_get_entry_count(struct sequencer *self)
Definition sequencer.h:47
uint16_t event
Definition sequencer.h:49
uint16_t timer_ms
Definition sequencer.h:48
Definition sequencer.h:53