diff options
Diffstat (limited to 'project/Core/Inc/Project/parser.h')
| -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_ */ |
