diff options
Diffstat (limited to 'project/Core/Src/Project')
| -rw-r--r-- | project/Core/Src/Project/player.c | 12 | ||||
| -rw-r--r-- | project/Core/Src/Project/player_actions.c | 3 | ||||
| -rw-r--r-- | project/Core/Src/Project/song_info.c | 3 |
3 files changed, 6 insertions, 12 deletions
diff --git a/project/Core/Src/Project/player.c b/project/Core/Src/Project/player.c index 0925483..f9ffbce 100644 --- a/project/Core/Src/Project/player.c +++ b/project/Core/Src/Project/player.c @@ -11,18 +11,12 @@ #include "hw8.h" #include "activity4.h" #include "song_info.h" +#include "player.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; - void parse_song(uint8_t *p_song) { header_t header; header = get_header(p_song); @@ -37,7 +31,7 @@ void parse_song(uint8_t *p_song) { } } -uint8_t parse_track(uint8_t *p_song, note_event_t *events) { +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; @@ -76,7 +70,7 @@ uint8_t parse_track(uint8_t *p_song, note_event_t *events) { events[curEvent++] = note; } - events[curEvent] = 0; // null terminate array + events[curEvent] = NULL_EVENT; // null terminate array return p_song; } diff --git a/project/Core/Src/Project/player_actions.c b/project/Core/Src/Project/player_actions.c index 72b8801..01aff5e 100644 --- a/project/Core/Src/Project/player_actions.c +++ b/project/Core/Src/Project/player_actions.c @@ -51,7 +51,8 @@ void player_next() { current_song = 0; void *song = get_song(current_song).p_song; - song_info_t song_info = get_song_info(song); + song_info_t song_info; + get_song_info(song, &song_info); printf("Song #%i\r\n", current_song + 1); if (song_info.title) diff --git a/project/Core/Src/Project/song_info.c b/project/Core/Src/Project/song_info.c index 2990da0..5be94e5 100644 --- a/project/Core/Src/Project/song_info.c +++ b/project/Core/Src/Project/song_info.c @@ -11,13 +11,12 @@ #include "song_info.h" #include "endian_converters.h" -uint8_t get_song_info(uint8_t *p_song, song_info_t *ret) { +uint8_t *get_song_info(uint8_t *p_song, song_info_t *ret) { ret->copyright = 0; ret->tempo = 0; ret->title = 0; p_song += 4; // move past MTrk label - uint32_t MTrk_len = convert_to_uint32(p_song); // read in size of MTrk p_song += sizeof(MTrk_len); |
