static void adx_encode(unsigned char *adx,const short *wav,PREV *prev)

{

	int scale;

	int i;

	int s0,s1,s2,d;

	int max=0;

	int min=0;

	int data[32];



	s1 = prev->s1;

	s2 = prev->s2;

	for(i=0;i<32;i++) {

		s0 = wav[i];

		d = ((s0<<14) - SCALE1*s1 + SCALE2*s2)/BASEVOL;

		data[i]=d;

		if (max<d) max=d;

		if (min>d) min=d;

		s2 = s1;

		s1 = s0;

	}

	prev->s1 = s1;

	prev->s2 = s2;



	/* -8..+7 */



	if (max==0 && min==0) {

		memset(adx,0,18);

		return;

	}



	if (max/7>-min/8) scale = max/7;

	else scale = -min/8;



	if (scale==0) scale=1;



	adx[0] = scale>>8;

	adx[1] = scale;



	for(i=0;i<16;i++) {

		adx[i+2] = ((data[i*2]/scale)<<4) | ((data[i*2+1]/scale)&0xf);

	}

}

static void adx_encode(unsigned char *adx,const short *wav,PREV *prev)

{

	int scale;

	int i;

	int s0,s1,s2,d;

	int max=0;

	int min=0;

	int data[32];



	s1 = prev->s1;

	s2 = prev->s2;

	for(i=0;i<32;i++) {

		s0 = wav[i];

		d = ((s0<<14) - SCALE1*s1 + SCALE2*s2)/BASEVOL;

		data[i]=d;

		if (max<d) max=d;

		if (min>d) min=d;

		s2 = s1;

		s1 = s0;

	}

	prev->s1 = s1;

	prev->s2 = s2;



	



	if (max==0 && min==0) {

		memset(adx,0,18);

		return;

	}



	if (max/7>-min/8) scale = max/7;

	else scale = -min/8;



	if (scale==0) scale=1;



	adx[0] = scale>>8;

	adx[1] = scale;



	for(i=0;i<16;i++) {

		adx[i+2] = ((data[i*2]/scale)<<4) | ((data[i*2+1]/scale)&0xf);

	}

}

	int scale; 	int i; 	int s0,s1,s2,d; 	int max=0; 	int min=0; 	int data[32]; 	s1 = prev->s1; 	s2 = prev->s2; 	for(i=0;i<32;i++) { 		s0 = wav[i]; 		d = ((s0<<14) - SCALE1*s1 + SCALE2*s2)/BASEVOL; 		data[i]=d; 		if (max<d) max=d; 		if (min>d) min=d; 		s2 = s1; 		s1 = s0; 	prev->s1 = s1; 	prev->s2 = s2; 	if (max==0 && min==0) { 		memset(adx,0,18); 	if (max/7>-min/8) scale = max/7; 	else scale = -min/8; 	if (scale==0) scale=1; 	adx[0] = scale>>8; 	adx[1] = scale; 	for(i=0;i<16;i++) { 		adx[i+2] = ((data[i*2]/scale)<<4) | ((data[i*2+1]/scale)&0xf); 	int i; 	int s0,s1,s2,d; 	s1 = prev->s1; 	s2 = prev->s2; 	for(i=0;i<16;i++) { 		s2 = s1; 		s1 = s0; 		s2 = s1; 		s1 = s0; 	prev->s1 = s1; 	prev->s2 = s2; 	int i; 	for(i=0;i<32;i++) { 	int i;
static void FUNC_0(unsigned char *VAR_0,const short *VAR_1,PREV *VAR_2)

{

	int VAR_3;

	int VAR_4;

	int VAR_5,VAR_6,VAR_7,VAR_8;

	int VAR_9=0;

	int VAR_10=0;

	int VAR_11[32];



	VAR_6 = VAR_2->VAR_6;

	VAR_7 = VAR_2->VAR_7;

	for(VAR_4=0;VAR_4<32;VAR_4++) {

		VAR_5 = VAR_1[VAR_4];

		VAR_8 = ((VAR_5<<14) - SCALE1*VAR_6 + SCALE2*VAR_7)/BASEVOL;

		VAR_11[VAR_4]=VAR_8;

		if (VAR_9<VAR_8) VAR_9=VAR_8;

		if (VAR_10>VAR_8) VAR_10=VAR_8;

		VAR_7 = VAR_6;

		VAR_6 = VAR_5;

	}

	VAR_2->VAR_6 = VAR_6;

	VAR_2->VAR_7 = VAR_7;



	



	if (VAR_9==0 && VAR_10==0) {

		memset(VAR_0,0,18);

		return;

	}



	if (VAR_9/7>-VAR_10/8) VAR_3 = VAR_9/7;

	else VAR_3 = -VAR_10/8;



	if (VAR_3==0) VAR_3=1;



	VAR_0[0] = VAR_3>>8;

	VAR_0[1] = VAR_3;



	for(VAR_4=0;VAR_4<16;VAR_4++) {

		VAR_0[VAR_4+2] = ((VAR_11[VAR_4*2]/VAR_3)<<4) | ((VAR_11[VAR_4*2+1]/VAR_3)&0xf);

	}

}

static void FUNC_0(unsigned char *VAR_0,const short *VAR_1,PREV *VAR_2)
{ int VAR_3; int VAR_4; int VAR_5,VAR_6,VAR_7,VAR_8; int VAR_9=0; int VAR_10=0; int VAR_11[32]; VAR_6 = VAR_2->VAR_6; VAR_7 = VAR_2->VAR_7; for(VAR_4=0;VAR_4<32;VAR_4++) { VAR_5 = VAR_1[VAR_4]; VAR_8 = ((VAR_5<<14) - SCALE1*VAR_6 + SCALE2*VAR_7)/BASEVOL; VAR_11[VAR_4]=VAR_8; if (VAR_9<VAR_8) VAR_9=VAR_8; if (VAR_10>VAR_8) VAR_10=VAR_8; VAR_7 = VAR_6; VAR_6 = VAR_5; } VAR_2->VAR_6 = VAR_6; VAR_2->VAR_7 = VAR_7; if (VAR_9==0 && VAR_10==0) { memset(VAR_0,0,18); return; } if (VAR_9/7>-VAR_10/8) VAR_3 = VAR_9/7; else VAR_3 = -VAR_10/8; if (VAR_3==0) VAR_3=1; VAR_0[0] = VAR_3>>8; VAR_0[1] = VAR_3; for(VAR_4=0;VAR_4<16;VAR_4++) { VAR_0[VAR_4+2] = ((VAR_11[VAR_4*2]/VAR_3)<<4) | ((VAR_11[VAR_4*2+1]/VAR_3)&0xf); } }