1 /* SCCS Id: @(#)cvtsnd.c 3.2 95/09/10 */
2 /* Copyright (c) 1995, Andrew Church, Olney, Maryland */
3 /* NetHack may be freely redistributed. See license for details. */
12 char misc[64]; /* rest of MacBinary header */
27 long samples; /* 'samplesPerHiCycle' in the docs - usually 32, so
30 char octaves, compress;
33 long nlen; /* should be 64; see name[] comment */
34 char name[64]; /* for simplicity, i.e. just fwrite() entiree header */
40 main(int ac, char **av)
45 static char buf[16384];
49 fprintf(stderr, "Usage: %s input-file output-file\n", av[0]);
52 if (!(in = fopen(av[1], "r"))) {
53 fprintf(stderr, "Can't open input file\n");
56 if (!(out = fopen(av[2], "w"))) {
57 fprintf(stderr, "Can't open output file\n");
61 fread(&aiff, sizeof(aiff), 1, in);
62 memcpy(iff.FORM, "FORM", 4);
63 iff.flen = sizeof(iff) + aiff.sndlen - 8;
64 memcpy(iff._8SVX, "8SVX", 4);
65 memcpy(iff.VHDR, "VHDR", 4);
67 iff.oneshot = aiff.sndlen;
74 memcpy(iff.NAME, "NAME", 4);
76 strncpy(iff.name, aiff.name, 62); iff.name[aiff.namelen] = 0;
77 memcpy(iff.BODY, "BODY", 4);
78 iff.blen = aiff.sndlen;
79 fwrite(&iff, sizeof(iff), 1, out);
82 if (len >= sizeof(buf))
83 n = fread(buf, 1, sizeof(buf), in);
85 n = fread(buf, 1, len, in);
87 fwrite(buf, 1, n, out);
93 fprintf(stderr, "Warning: %ld bytes of sample missing\n", len);
94 fclose(in); fclose(out);