/*
 * rad2h.c -- convert a RAD module into the C header used by cybercube.c
 *
 *     gcc -o rad2h rad2h.c
 *     ./rad2h mytune.rad > track.h
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    FILE *f;
    int c, n = 0;

    if (argc != 2) {
        fprintf(stderr, "usage: rad2h file.rad > track.h\n");
        return 1;
    }
    f = fopen(argv[1], "rb");
    if (!f) {
        perror(argv[1]);
        return 1;
    }
    printf("/* track.h -- generated by rad2h from %s */\n", argv[1]);
    printf("static const unsigned char rad_module[] = {\n    ");
    while ((c = getc(f)) != EOF) {
        if (n > 0)
            printf((n % 16) == 0 ? ",\n    " : ", ");
        printf("0x%02X", c);
        n++;
    }
    printf("\n};\n");
    fclose(f);
    if (n == 0) {
        fprintf(stderr, "%s: empty file\n", argv[1]);
        return 1;
    }
    return 0;
}
