ulaw
void char2ulaw(char *&, ulaw *&);
void short2ulaw(short *&, ulaw *&);
void long2ulaw(long *&, ulaw *&);
void float2ulaw(float *&, ulaw *&);
void double2ulaw(double *&, ulaw *&);
void ulaw2char(ulaw *&, char *&);
void ulaw2short(ulaw*&, short *&);
void ulaw2long(ulaw*&, long *&);
void ulaw2float(ulaw *&, float *&);
void ulaw2double(ulaw *&, double *&);
void ulaw2alaw(ulaw *&, alaw *&);
void alaw2ulaw(alaw *&, ulaw *&);
char2ulaw(char *&F, ulaw *&T) { *T++ = audio_c2u(*F); F++; }
short2ulaw(short *&F, ulaw *&T) { *T++ = audio_s2u(*F); F++; }
long2ulaw(long *&F, ulaw *&T) { *T++ = audio_l2u(*F); F++; }
float2ulaw(float *&F, ulaw *&T) { *T++ = audio_s2u(dbl2long(*F++, 32767)); }
double2ulaw(double *&F, ulaw *&T) { *T++ = audio_s2u(dbl2long(*F++, 32767)); }
ulaw2char(ulaw *&F, char *&T) { *T++ = audio_u2c(*F); F++; }
ulaw2alaw(ulaw *&F, alaw *&T) { *T++ = audio_u2a(*F); F++; }
ulaw2short(ulaw *&F, short *&T) { *T++ = audio_u2s(*F); F++; }
ulaw2long(ulaw *&F, long *&T) { *T++ = audio_u2l(*F); F++; }
ulaw2float(ulaw *&F, float *&T) { *T++ = short2dbl(audio_u2s(*F)); F++; }
ulaw2double(ulaw *&F, double *&T) { *T++ = short2dbl(audio_u2s(*F)); F++; }
alaw2ulaw(alaw*& F, ulaw*& T) { *T++ = audio_a2u(*F); F++; }
case 1: MOVE(char, ulaw); break;
case 2: MOVE(short, ulaw); break;
case 4: MOVE(long, ulaw); break;
case 4: MOVE(float, ulaw); break;
case 8: MOVE(double, ulaw); break;
case 1: MOVE(ulaw, char); break;
case 2: MOVE(ulaw, short); break;
case 4: MOVE(ulaw, long); break;
case 4: MOVE(ulaw, float); break;
case 8: MOVE(ulaw, double); break;
MOVE(ulaw, alaw); break;
MOVE(alaw, ulaw); break;