summaryrefslogtreecommitdiff
path: root/project/Core/Src/Activties/activity4.c
blob: 898cd2d9976c03e4922240c23435ad5fd52378c7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 * activity4.c
 *
 *  Created on: Sep 16, 2025
 *      Author: sowgro
 */

#include "song.h"
#include <printf.h>
#include <endian_converters.h>
#include <stdint.h>
#include "activity4.h"

void activity4_run() {
	header_t* p_header = get_header(get_song(0).p_song);

	printf ("Header: \r\n");
	printf ("\tLength: %lu\r\n", p_header->length);
	printf ("\tFormat: %u\r\n", p_header->format);
	printf ("\tNum Tracks: %u\r\n", p_header->ntrcks);
	printf ("\tDivision: %u\r\n", p_header->division);
}

header_t get_header(uint8_t *p_song) {
	header_t* p_header = (header_t *) (p_song);

	p_header->length   = convert_to_uint32((uint8_t*) &p_header->length);
	p_header->format   = convert_to_uint16((uint8_t*) &p_header->format);
	p_header->ntrcks   = convert_to_uint16((uint8_t*) &p_header->ntrcks);
	p_header->division = convert_to_uint16((uint8_t*) &p_header->division);

	return *p_header;
}