diff options
author | zlago | 2024-09-02 11:20:02 +0200 |
---|---|---|
committer | zlago | 2024-09-02 11:20:02 +0200 |
commit | 6d30e75c7684817b9637a370f494040a1135b876 (patch) | |
tree | 2148b98728f760a726ac4e3a8b4f9c35425fc49a /src/SDL2.c | |
parent | e1dbcc7c80e6930f223e4617385931aad1fff2c7 (diff) |
un-copy paste some stuff
Diffstat (limited to 'src/SDL2.c')
-rw-r--r-- | src/SDL2.c | 52 |
1 files changed, 1 insertions, 51 deletions
diff --git a/src/SDL2.c b/src/SDL2.c index 4e51269..79b4e4a 100644 --- a/src/SDL2.c +++ b/src/SDL2.c @@ -6,9 +6,7 @@ #include <stdio.h> #include "include.h" - -int module_openmpt(struct blob *file, struct userdata *userdata); -int module_fluidsynth(struct blob *file, struct userdata *userdata); +#include "common/common.h" #define eprintf(...) fprintf(stderr, __VA_ARGS__) @@ -171,51 +169,3 @@ int main(int argc, char **argv) { return EXIT_SUCCESS; } - -int (*file_ext(char *file))(struct blob *, struct userdata *) { - size_t len = strlen(file); - #define ext(extension) memcmp(file + len - sizeof (extension) + 1, extension, sizeof (extension)) - if ((ext(".mptm") && ext(".mod") && ext(".xm") && ext(".s3m") && ext(".it")) == 0) { - return module_openmpt; - } else if ((ext(".mid") && ext(".midi")) == 0) { - return module_fluidsynth; - } - #undef ext - return NULL; -} - -struct blob load_file(char const *const name) { - const size_t START_SIZE = 1; - FILE *file = fopen(name, "rb"); - if (file == NULL) { - return (struct blob) {.data = NULL}; - } - void *data = malloc(START_SIZE); - size_t allocated = START_SIZE; - size_t used = 0; - while (1) { - size_t read = fread(data + used, 1, allocated - used, file); - if (read != allocated - used) { - used += read; - break; - } - used += read; - allocated *= 2; - void *const newdata = realloc(data, allocated); - if (newdata == NULL) { - goto realloc_error; - } - data = newdata; - } - void *const newdata = realloc(data, used); - if (newdata == NULL && used != 0) { - goto realloc_error; - } - fclose(file); - return (struct blob) {.data = newdata, .size = used}; - - realloc_error: - free(data); - fclose(file); - return (struct blob) {.data = NULL}; -} |