summaryrefslogtreecommitdiff
path: root/tools/aif2pcm/main.c
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2016-09-08 16:42:47 -0700
committerMarcus Huderle <huderlem@gmail.com>2016-09-08 16:42:47 -0700
commit001e1c77b8e6afd6d0af0ec81496d54219e4c7bd (patch)
tree9399629342bbbc8ef3ddaf528c49d04071044396 /tools/aif2pcm/main.c
parentfe1fad3aa5b25e00597c0ab6d2925a9390b2cbd1 (diff)
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.
Diffstat (limited to 'tools/aif2pcm/main.c')
-rw-r--r--tools/aif2pcm/main.c13
1 files changed, 13 insertions, 0 deletions
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);