view sounds/au2h.c @ 2141:1fc962350561

[gaim-migrate @ 2151] because one time, at band camp, there was this guy, and no matter what he did, there was always something wrong with it, and other people had to keep correcting him, and at first it was really annoying but then it became really funny committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 09 Aug 2001 23:24:09 +0000
parents 5ed382006539
children
line wrap: on
line source

#include <stdio.h>
#if !(__GLIBC__ < 2)
#include <error.h>
#endif
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define BUF_SIZE 10

int main(int argc, char *argv[])
{
	int fd;
	FILE *f;
	int res,x;
	char buf[BUF_SIZE];
	char file[256];
	int offset = 0, cnt;

	if (argc != 3) {
		fprintf(stderr, "Too few arguments! Are you using gmake? If you're not, then you really should. :-) \n");
		exit(1);
	}

	fd = open(argv[1], O_RDONLY);
	if (fd < 0) {
		perror("open");
		exit(1);
	}
	f = fopen(argv[2], "w+");
	if (!f) {
		perror("fopen");
		exit(1);
	}
	argv[1][strlen(argv[1])-3]='\0';
	cnt = strlen(argv[1]);
	while (offset != cnt) {
		if (argv[1][cnt - offset] == '/') {
			offset--;
			break;
		}
		offset++;
	}
	sprintf(file, "%s", &argv[1][cnt - offset]);
	fprintf(f, "static unsigned char %s[] = {\n", file);
	read(fd, buf, 8); /* id & offset */
	read(fd, buf, 8); /* len & encoding */
	read(fd, buf, 8); /* rate & count */
	/*  no more click :) */
	
	while((res = read(fd, buf, BUF_SIZE)) > 0) {
		for (x=0;x<res;x++)
			fprintf(f, "%#x, ", buf[x] & 0xff);
		fprintf(f, "\n");
	}
	fprintf(f,"};\n");
	fclose(f);
	return 0;
}