📄 toast_au.c
字号:
#include "toast.h"
extern FILE * in, * out;
extern char * inname;
extern char * progname;
extern int (*output) P((gsm_signal *)),
(*input ) P((gsm_signal *));
extern int alaw_input P((gsm_signal *)), ulaw_output P((gsm_signal *));
ulaw_input P((gsm_signal *)), ulaw_output P((gsm_signal *));
linear_input P((gsm_signal *)), linear_output P((gsm_signal *));
static int put_u32 P2((f, u), FILE * f, unsigned long u)
{
if ( putc( (char)((u>>24) & 0x0FF), f) == EOF
|| putc( (char)((u>>16) & 0x0FF), f) == EOF
|| putc( (char)((u>> 8) & 0x0FF), f) == EOF
|| putc( (char)( u & 0x0FF), f) == EOF) return -1;
return 0;
}
static int get_u32 P2((f, up), FILE * f, unsigned long * up)
{
int i;
unsigned long u;
if ( (i = getc(f)) == EOF
|| ((u = (unsigned char)i), (i = getc(f)) == EOF)
|| ((u = (u<<8)|(unsigned char)i), (i = getc(f)) == EOF)
|| ((u = (u<<8)|(unsigned char)i), (i = getc(f)) == EOF)) return -1;
*up = (u<<8)|(unsigned char)i;
return 0;
}
int audio_init_input P0()
{
unsigned long len, enc; /* unsigned 32 bits */
if ( fgetc(in) != '.'
|| fgetc(in) != 's'
|| fgetc(in) != 'n'
|| fgetc(in) != 'd'
|| get_u32( in, &len )
|| get_u32( in, &enc ) /* skip this */
|| get_u32( in, &enc )) {
fprintf(stderr,
"%s: bad (missing?) header in Sun audio file \"%s\";\n\
Try one of -u, -a, -l instead (%s -h for help).\n",
progname, inname ? inname : "stdin", progname);
return -1;
}
switch (enc) {
case 1: input = ulaw_input; break;
case 2: input = alaw_input; break;
case 3: input = linear_input; break;
default:
fprintf(stderr,
"%s: warning: file format #%lu for %s not implemented, defaulting to u-law.\n",
progname, enc, inname);
input = ulaw_input;
break;
}
while (len > 4*4)
if (getc(in) == EOF) {
fprintf(stderr,
"%s: EOF in header of Sun audio file \"%s\";\n\
Try one of -u, -a, -l instead (%s -h for help).\n",
progname, inname ? inname : "stdin", progname);
return -1;
}
else len--;
return 0;
}
int audio_init_output P0()
{
if ( fputs(".snd", out) == EOF
|| put_u32(out, 32)
|| put_u32(out, ~(unsigned long)0)
|| put_u32(out, 1)
|| put_u32(out, 8000)
|| put_u32(out, 1)
|| put_u32(out, 0)
|| put_u32(out, 0)) return -1;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -