diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-12-10 17:49:22 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-12-10 17:49:22 -0500 |
| commit | 29f69b5b7831c846cea1f61a7de4920fafa97ede (patch) | |
| tree | a216cbcef9306ab5707752d8eec33f5a5a682744 /project/Core/Src/Project/player.c | |
| parent | 9db025199644833d70e729d03e6151f8cce58ed5 (diff) | |
| download | 340-repo-Sowgro-29f69b5b7831c846cea1f61a7de4920fafa97ede.tar.gz 340-repo-Sowgro-29f69b5b7831c846cea1f61a7de4920fafa97ede.tar.bz2 340-repo-Sowgro-29f69b5b7831c846cea1f61a7de4920fafa97ede.zip | |
push for laptop
Diffstat (limited to '')
| -rw-r--r-- | project/Core/Src/Project/player.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/project/Core/Src/Project/player.c b/project/Core/Src/Project/player.c index 71531a8..0925483 100644 --- a/project/Core/Src/Project/player.c +++ b/project/Core/Src/Project/player.c @@ -9,6 +9,8 @@ #include <stdint.h> #include "endian_converters.h" #include "hw8.h" +#include "activity4.h" +#include "song_info.h" #define NOTE_OFF_EVENT (0) #define NOTE_ON_EVENT (1) @@ -22,11 +24,24 @@ typedef struct { } note_event_t; void parse_song(uint8_t *p_song) { + header_t header; + header = get_header(p_song); + p_song += sizeof(header_t) - 2; // move pointer past header + + song_info_t song_info; + p_song = get_song_info(p_song, &song_info); + + note_event_t trackEvents[header.ntrcks][1024]; + for(int i = 0; i < header.ntrcks; i++){ + p_song = parse_track(p_song, trackEvents[i]); + } +} + +uint8_t parse_track(uint8_t *p_song, note_event_t *events) { p_song += 4; // skip MTrk uint32_t MTrk_len = convert_to_uint32(p_song); p_song += 4; - note_event_t events[1/*track*/][1024/*event*/]; int curEvent = 0; uint32_t prev_abs_time = 0; @@ -59,9 +74,9 @@ void parse_song(uint8_t *p_song) { note.value = *p_song; p_song++; - events[0][curEvent++] = note; + events[curEvent++] = note; } - events[0][curEvent] = 0; + events[curEvent] = 0; // null terminate array - printf("done %p", events); + return p_song; } |
