Personalised boilerplate code so that I don't have to rewrite it for every project.
emitter_base.c- base class for an event emitter which can be used to enqueue events and configure repeated events via a user-defined timer.
event_observer.c- Module for allowing state machines to subscribe to events and get notified when they are emitted.
fifo_base.c- FIFO 'base class' with functionality for enqueuing, dequeuing, peeking etc for any particular type.
event_heap.c- min-heap priority queue for events
state.c- This is my personalised take on the UML state machine design pattern popularised by Miro Samek's writings about state machines (which are fantastic).