| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #pragma once
- #include "tracker_notes.h"
- #include "tracker_song.h"
- typedef enum {
- TrackerPositionChanged,
- TrackerEndOfSong,
- } TrackerMessageType;
- typedef struct {
- TrackerMessageType type;
- union tracker_message_data {
- struct {
- uint8_t order_list_index;
- uint8_t row;
- } position;
- } data;
- } TrackerMessage;
- typedef void (*TrackerMessageCallback)(TrackerMessage message, void* context);
- typedef struct Tracker Tracker;
- Tracker* tracker_alloc();
- void tracker_free(Tracker* tracker);
- void tracker_set_message_callback(Tracker* tracker, TrackerMessageCallback callback, void* context);
- void tracker_set_song(Tracker* tracker, const Song* song);
- void tracker_set_order_index(Tracker* tracker, uint8_t order_index);
- void tracker_set_row(Tracker* tracker, uint8_t row);
- void tracker_start(Tracker* tracker);
- void tracker_stop(Tracker* tracker);
|