diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-12-14 00:21:02 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-12-14 00:21:02 -0500 |
| commit | e68a05b29de507a56b8747557707e8d6cdd68542 (patch) | |
| tree | 1f7c457159af75ae198258a2301a55531d7baff5 /project/Core/Inc/Project/parser.h | |
| parent | 519f868c445a86b988772307ea1f1e2fc95fe54a (diff) | |
| download | 340-repo-Sowgro-e68a05b29de507a56b8747557707e8d6cdd68542.tar.gz 340-repo-Sowgro-e68a05b29de507a56b8747557707e8d6cdd68542.tar.bz2 340-repo-Sowgro-e68a05b29de507a56b8747557707e8d6cdd68542.zip | |
Refactor
Diffstat (limited to '')
| -rw-r--r-- | project/Core/Inc/Project/parser.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/project/Core/Inc/Project/parser.h b/project/Core/Inc/Project/parser.h new file mode 100644 index 0000000..356a4ad --- /dev/null +++ b/project/Core/Inc/Project/parser.h @@ -0,0 +1,46 @@ +/* + * player.h + * + * Created on: Dec 10, 2025 + * Author: sowgro + */ + +#ifndef INC_PROJECT_PARSER_H_ +#define INC_PROJECT_PARSER_H_ + +#include <stdint.h> + +#define NOTE_OFF_EVENT (0) +#define NOTE_ON_EVENT (1) +#define KEY_PRESSURE (2) + +typedef struct { + uint8_t ev_type; + uint32_t abs_time; + uint8_t key_number; + uint8_t value; +} note_event_t; + +typedef struct { + note_event_t events[1024]; + int nEvents; + int curEventIndex; +} track_t; + +typedef struct { + char *title; + char *copyright; + int tempo; +} song_info_t; + +void parser_play_notes(); + +void parse_song(uint8_t *p_song); + +uint8_t *parse_track(uint8_t *p_song, track_t *track); + +uint8_t *parse_song_info(uint8_t *p_song, song_info_t *ret); + +song_info_t parser_get_song_info(); + +#endif /* INC_PROJECT_PARSER_H_ */ |
