X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=gentones.c;h=a712f1a8d576d53f0c925cc7dc183d24ee135404;hp=6cdaf37d41dc8830f9f653a25dd77de98dcf001e;hb=5566f74eb29be75da44e29ba72ee6f015249ce61;hpb=e9bfe48fc5254e79e59c6ffc1698912175edf4e3 diff --git a/gentones.c b/gentones.c index 6cdaf37..a712f1a 100644 --- a/gentones.c +++ b/gentones.c @@ -10,7 +10,7 @@ /* ulaw -> signed 16-bit */ -static short isdn_audio_ulaw_to_s16[] = +static unsigned short isdn_audio_ulaw_to_s16[] = { 0x8284, 0x8684, 0x8a84, 0x8e84, 0x9284, 0x9684, 0x9a84, 0x9e84, 0xa284, 0xa684, 0xaa84, 0xae84, 0xb284, 0xb684, 0xba84, 0xbe84, @@ -47,7 +47,7 @@ static short isdn_audio_ulaw_to_s16[] = }; /* alaw -> signed 16-bit */ -static short isdn_audio_alaw_to_s16[] = +static unsigned short isdn_audio_alaw_to_s16[] = { 0x13fc, 0xec04, 0x0144, 0xfebc, 0x517c, 0xae84, 0x051c, 0xfae4, 0x0a3c, 0xf5c4, 0x0048, 0xffb8, 0x287c, 0xd784, 0x028c, 0xfd74, @@ -92,7 +92,7 @@ unsigned char encode_isdn(short sample, char law) i=0; while(i<256) { - diff = (law=='u')?isdn_audio_ulaw_to_s16[i]:isdn_audio_alaw_to_s16[i]-sample; + diff = (law=='u')?((signed short)isdn_audio_ulaw_to_s16[i]):((signed short)isdn_audio_alaw_to_s16[i])-sample; //printf("s16=%d sample%d diff=%d\n",isdn_audio_to_s16[i],sample,diff); if (diff<0) diff=0-diff; @@ -150,9 +150,10 @@ void write_wav(FILE *fp, char *wav, char law) short sample, sample2; signed int size, chunk; int gotfmt = 0, gotdata = 0; + int __attribute__((__unused__)) ret; if ((wfp=fopen(wav,"r"))) { - fread(buffer,8,1,wfp); + ret=fread(buffer,8,1,wfp); size=(buffer[4]) + (buffer[5]<<8) + (buffer[6]<<16) + (buffer[7]<<24); if (!!strncmp((char *)buffer, "RIFF", 4)) { fclose(wfp); @@ -160,7 +161,7 @@ void write_wav(FILE *fp, char *wav, char law) return; } printf("%c%c%c%c size=%d\n",buffer[0],buffer[1],buffer[2],buffer[3],size); - fread(buffer,4,1,wfp); + ret=fread(buffer,4,1,wfp); size -= 4; if (!!strncmp((char *)buffer, "WAVE", 4)) { fclose(wfp); @@ -173,7 +174,7 @@ void write_wav(FILE *fp, char *wav, char law) fprintf(stderr, "Error: Remaining file size %d not large enough for next chunk.\n",size); return; } - fread(buffer,8,1,wfp); + ret=fread(buffer,8,1,wfp); chunk=(buffer[4]) + (buffer[5]<<8) + (buffer[6]<<16) + (buffer[7]<<24); //printf("DEBUG: size(%d) - (8+chunk(%d) = size(%d)\n", size, chunk, size-chunk-8); size -= (8+chunk); @@ -189,7 +190,7 @@ void write_wav(FILE *fp, char *wav, char law) fprintf(stderr, "Error: Fmt chunk illegal size.\n"); return; } - fread(buffer, chunk, 1, wfp); + ret=fread(buffer, chunk, 1, wfp); fmt = (struct fmt *)buffer; if (fmt->channels<1 || fmt->channels>2) { fclose(wfp); @@ -221,7 +222,7 @@ void write_wav(FILE *fp, char *wav, char law) i=0; if (bytes==2 && channels==1) { while(i (signed int)sizeof(buffer)) { - fread(buffer, sizeof(buffer), 1, wfp); + ret=fread(buffer, sizeof(buffer), 1, wfp); chunk -= sizeof(buffer); } if (chunk) - fread(buffer, chunk, 1, wfp); + ret=fread(buffer, chunk, 1, wfp); } }