From 001e1c77b8e6afd6d0af0ec81496d54219e4c7bd Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 8 Sep 2016 16:42:47 -0700 Subject: Output .bin file for direct sound metadata (loop point, pitch adust, and number of samples). This was needed since we couldn't incbin a string argument in a macro. --- tools/aif2pcm/main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tools') diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c index 31842ff8e..b1bdf7a98 100644 --- a/tools/aif2pcm/main.c +++ b/tools/aif2pcm/main.c @@ -228,6 +228,11 @@ void aif2pcm(const char *aif_filename) strcpy(pcm_filename, aif_filename); change_file_extension(pcm_filename, "pcm"); + // Get .metadata filename. + char metadata_filename[strlen(aif_filename)]; + strcpy(metadata_filename, aif_filename); + change_file_extension(metadata_filename, "bin"); + // Open the given .aif file so we can read its contents. FILE *aif_file; aif_file = fopen(aif_filename, "rb"); @@ -264,6 +269,14 @@ void aif2pcm(const char *aif_filename) fwrite(aif_data->samples, aif_data->num_samples, 1, pcm_file); fclose(pcm_file); + // Write the output .bin file containing .aif metadata. + FILE *metadata_file; + metadata_file = fopen(metadata_filename, "wb"); + unsigned long pitch_adjust = (unsigned long)(aif_data->sample_rate * 1024); + fwrite(&pitch_adjust, sizeof(unsigned long), 1, metadata_file); + fwrite(&(aif_data->loop_offset), sizeof(unsigned long), 1, metadata_file); + fclose(metadata_file); + free(aif_data->samples); free(aif_data); free(aif_file_data); -- cgit v1.2.3