#include #include #include #include extern const char *__progname; int main(int, char **); int main(int ac, char **av) { int c1; int c2; signed short int v; unsigned int n; if (ac != 2) { fprintf(stderr,"Usage: %s base-name\n",__progname); exit(1); } printf("const signed short int %s_dat[] = {\n"/*}*/,av[1]); n = 0; while (1) { c1 = getchar(); if (c1 == EOF) break; c2 = getchar(); if (c2 == EOF) { fprintf(stderr,"%s: ignoring trailing half-sample\n",__progname); break; } v = (c1 & 0x80) ? ((c1<<8)|c2|-0x8000) : ((c1<<8)|c2); printf("%hd,\n",v); n ++; } if (ferror(stdin)) { fprintf(stderr,"%s: input read error: %s\n",__progname,strerror(errno)); exit(1); } printf(/*{*/"};\nconst unsigned int %s_len = %u;\n",av[1],n); exit(0); }