util.h 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <stdio.h>
  4. #include "flizzer_tracker.h"
  5. #include "sound_engine/sound_engine_defs.h"
  6. #include "tracker_engine/tracker_engine_defs.h"
  7. #define clamp(val, add, _min, _max) val = fmin(_max, fmax(_min, (int32_t)val + add))
  8. #define flipbit(val, bit) \
  9. { \
  10. val ^= bit; \
  11. };
  12. void set_note(TrackerSongPatternStep *step, uint8_t note);
  13. void set_instrument(TrackerSongPatternStep *step, uint8_t inst);
  14. void set_volume(TrackerSongPatternStep *step, uint8_t vol);
  15. void set_command(TrackerSongPatternStep *step, uint16_t command);
  16. void reset_buffer(SoundEngine *sound_engine);
  17. void play_song(FlizzerTrackerApp *tracker, bool from_cursor);
  18. void stop_song(FlizzerTrackerApp *tracker);
  19. void set_empty_pattern(TrackerSongPattern *pattern, uint16_t pattern_length);
  20. bool is_pattern_empty(TrackerSong *song, uint8_t pattern);
  21. bool check_and_allocate_pattern(TrackerSong *song, uint8_t pattern);
  22. void change_pattern_length(TrackerSong *song, uint16_t new_length);
  23. void set_default_instrument(Instrument* inst);
  24. bool check_and_allocate_instrument(TrackerSong *song, uint8_t inst);