#pragma once #include "do_effects.h" #include "tracker_engine_defs.h" void tracker_engine_init(TrackerEngine *tracker_engine, uint8_t rate, SoundEngine *sound_engine); void tracker_engine_deinit(TrackerEngine *tracker_engine, bool free_song); void tracker_engine_advance_tick(TrackerEngine *tracker_engine); void tracker_engine_set_song(TrackerEngine *tracker_engine, TrackerSong *song); void tracker_engine_deinit_song(TrackerSong *song, bool free_song); void tracker_engine_trigger_instrument_internal(TrackerEngine *tracker_engine, uint8_t chan, Instrument *pinst, uint16_t note); uint8_t tracker_engine_get_note(TrackerSongPatternStep *step); uint8_t tracker_engine_get_instrument(TrackerSongPatternStep *step); uint8_t tracker_engine_get_volume(TrackerSongPatternStep *step); uint16_t tracker_engine_get_command(TrackerSongPatternStep *step); void set_note(TrackerSongPatternStep *step, uint8_t note); void set_instrument(TrackerSongPatternStep *step, uint8_t inst); void set_volume(TrackerSongPatternStep *step, uint8_t vol); void set_command(TrackerSongPatternStep *step, uint16_t command); void set_default_instrument(Instrument *inst); void set_empty_pattern(TrackerSongPattern *pattern, uint16_t pattern_length);