[asterisk-commits] dvossel: branch dvossel/funk_effects r249319 - /team/dvossel/funk_effects/funcs/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Feb 27 11:16:34 CST 2010


Author: dvossel
Date: Sat Feb 27 11:16:30 2010
New Revision: 249319

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=249319
Log:
coding guideline fixes

Modified:
    team/dvossel/funk_effects/funcs/func_pitchshift.c

Modified: team/dvossel/funk_effects/funcs/func_pitchshift.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/funk_effects/funcs/func_pitchshift.c?view=diff&rev=249319&r1=249318&r2=249319
==============================================================================
--- team/dvossel/funk_effects/funcs/func_pitchshift.c (original)
+++ team/dvossel/funk_effects/funcs/func_pitchshift.c Sat Feb 27 11:16:30 2010
@@ -115,7 +115,7 @@
 	struct fft_data tx;
 };
 
-static void smb_fft(float *fftBuffer, long fft_frame_size, long sign);
+static void smb_fft(float *fft_buffer, long fft_frame_size, long sign);
 static void smb_pitch_shift(float pitchShift, long num_samps_to_process, long fft_frame_size, long osamp, float sample_rate, int16_t *indata, int16_t *outdata, struct fft_data *fft_data);
 static int pitch_shift(struct ast_frame *f, float amount, struct fft_data *fft_data);
 
@@ -155,9 +155,9 @@
 	shift = datastore->data;
 
 	/* READ for tx WRITE for rx */
-	if ((direction == AST_AUDIOHOOK_DIRECTION_READ) && shift->tx.shift_amount) {
+	if (direction == AST_AUDIOHOOK_DIRECTION_READ) {
 		pitch_shift(f, shift->tx.shift_amount, &shift->tx);
-	} else if ((direction == AST_AUDIOHOOK_DIRECTION_WRITE) && shift->rx.shift_amount) {
+	} else {
 		pitch_shift(f, shift->rx.shift_amount, &shift->rx);
 	}
 
@@ -222,36 +222,38 @@
 	return -1;
 }
 
-static void smb_fft(float *fftBuffer, long fft_frame_size, long sign)
+static void smb_fft(float *fft_buffer, long fft_frame_size, long sign)
 {
 	float wr, wi, arg, *p1, *p2, temp;
 	float tr, ti, ur, ui, *p1r, *p1i, *p2r, *p2i;
 	long i, bitm, j, le, le2, k;
 
-	for (i = 2; i < 2*fft_frame_size-2; i += 2) {
-		for (bitm = 2, j = 0; bitm < 2*fft_frame_size; bitm <<= 1) {
-			if (i & bitm) j++;
+	for (i = 2; i < 2 * fft_frame_size - 2; i += 2) {
+		for (bitm = 2, j = 0; bitm < 2 * fft_frame_size; bitm <<= 1) {
+			if (i & bitm) {
+				j++;
+			}
 			j <<= 1;
 		}
 		if (i < j) {
-			p1 = fftBuffer+i; p2 = fftBuffer+j;
+			p1 = fft_buffer + i; p2 = fft_buffer + j;
 			temp = *p1; *(p1++) = *p2;
 			*(p2++) = temp; temp = *p1;
 			*p1 = *p2; *p2 = temp;
 		}
 	}
-	for (k = 0, le = 2; k < (long)(log(fft_frame_size)/log(2.)+.5); k++) {
+	for (k = 0, le = 2; k < (long) (log(fft_frame_size) / log(2.) + .5); k++) {
 		le <<= 1;
 		le2 = le>>1;
 		ur = 1.0;
 		ui = 0.0;
 		arg = M_PI / (le2>>1);
 		wr = cos(arg);
-		wi = sign*sin(arg);
+		wi = sign * sin(arg);
 		for (j = 0; j < le2; j += 2) {
-			p1r = fftBuffer+j; p1i = p1r+1;
-			p2r = p1r+le2; p2i = p2r+1;
-			for (i = j; i < 2*fft_frame_size; i += le) {
+			p1r = fft_buffer+j; p1i = p1r + 1;
+			p2r = p1r + le2; p2i = p2r + 1;
+			for (i = j; i < 2 * fft_frame_size; i += le) {
 				tr = *p2r * ur - *p2i * ui;
 				ti = *p2r * ui + *p2i * ur;
 				*p2r = *p1r - tr; *p2i = *p1i - ti;
@@ -259,8 +261,8 @@
 				p1r += le; p1i += le;
 				p2r += le; p2i += le;
 			}
-			tr = ur*wr - ui*wi;
-			ui = ur*wi + ui*wr;
+			tr = ur * wr - ui * wi;
+			ui = ur * wi + ui * wr;
 			ur = tr;
 		}
 	}
@@ -284,19 +286,22 @@
 	long i,k, qpd, index, in_fifo_latency, step_size, fft_frame_size2;
 
 	/* set up some handy variables */
-	fft_frame_size2 = fft_frame_size/2;
-	step_size = fft_frame_size/osamp;
-	freq_per_bin = sample_rate/(double)fft_frame_size;
-	expct = 2.*M_PI*(double)step_size/(double)fft_frame_size;
+	fft_frame_size2 = fft_frame_size / 2;
+	step_size = fft_frame_size / osamp;
+	freq_per_bin = sample_rate / (double) fft_frame_size;
+	expct = 2. * M_PI * (double) step_size / (double) fft_frame_size;
 	in_fifo_latency = fft_frame_size-step_size;
-	if (fft_data->gRover == 0) fft_data->gRover = in_fifo_latency;
+
+	if (fft_data->gRover == 0) {
+		fft_data->gRover = in_fifo_latency;
+	}
 
 	/* main processing loop */
 	for (i = 0; i < num_samps_to_process; i++){
 
 		/* As long as we have not yet collected enough data just read in */
 		in_fifo[fft_data->gRover] = indata[i];
-		outdata[i] = out_fifo[fft_data->gRover-in_fifo_latency];
+		outdata[i] = out_fifo[fft_data->gRover - in_fifo_latency];
 		fft_data->gRover++;
 
 		/* now we have enough data for processing */
@@ -305,7 +310,7 @@
 
 			/* do windowing and re,im interleave */
 			for (k = 0; k < fft_frame_size;k++) {
-				window = -.5*cos(2.*M_PI*(double)k/(double)fft_frame_size)+.5;
+				window = -.5 * cos(2. * M_PI * (double) k / (double) fft_frame_size) + .5;
 				fft_worksp[2*k] = in_fifo[k] * window;
 				fft_worksp[2*k+1] = 0.;
 			}
@@ -322,27 +327,30 @@
 				imag = fft_worksp[2*k+1];
 
 				/* compute magnitude and phase */
-				magn = 2.*sqrt(real*real + imag*imag);
-				phase = atan2(imag,real);
+				magn = 2. * sqrt(real * real + imag * imag);
+				phase = atan2(imag, real);
 
 				/* compute phase difference */
 				tmp = phase - last_phase[k];
 				last_phase[k] = phase;
 
 				/* subtract expected phase difference */
-				tmp -= (double)k*expct;
+				tmp -= (double) k * expct;
 
 				/* map delta phase into +/- Pi interval */
-				qpd = tmp/M_PI;
-				if (qpd >= 0) qpd += qpd&1;
-				else qpd -= qpd&1;
-				tmp -= M_PI*(double)qpd;
+				qpd = tmp / M_PI;
+				if (qpd >= 0) {
+					qpd += qpd & 1;
+				} else {
+					qpd -= qpd & 1;
+				}
+				tmp -= M_PI * (double) qpd;
 
 				/* get deviation from bin frequency from the +/- Pi interval */
-				tmp = osamp*tmp/(2.*M_PI);
+				tmp = osamp * tmp / (2. * M_PI);
 
 				/* compute the k-th partials' true frequency */
-				tmp = (double)k*freq_per_bin + tmp*freq_per_bin;
+				tmp = (double) k * freq_per_bin + tmp * freq_per_bin;
 
 				/* store magnitude and true frequency in analysis arrays */
 				ana_magn[k] = magn;
@@ -352,10 +360,10 @@
 
 			/* ***************** PROCESSING ******************* */
 			/* this does the actual pitch shifting */
-			memset(sys_magn, 0, fft_frame_size*sizeof(float));
-			memset(syn_freq, 0, fft_frame_size*sizeof(float));
+			memset(sys_magn, 0, fft_frame_size * sizeof(float));
+			memset(syn_freq, 0, fft_frame_size * sizeof(float));
 			for (k = 0; k <= fft_frame_size2; k++) {
-				index = k*pitchShift;
+				index = k * pitchShift;
 				if (index <= fft_frame_size2) {
 					sys_magn[index] += ana_magn[k];
 					syn_freq[index] = ana_freq[k] * pitchShift;
@@ -371,41 +379,41 @@
 				tmp = syn_freq[k];
 
 				/* subtract bin mid frequency */
-				tmp -= (double)k*freq_per_bin;
+				tmp -= (double) k * freq_per_bin;
 
 				/* get bin deviation from freq deviation */
 				tmp /= freq_per_bin;
 
 				/* take osamp into account */
-				tmp = 2.*M_PI*tmp/osamp;
+				tmp = 2. * M_PI * tmp / osamp;
 
 				/* add the overlap phase advance back in */
-				tmp += (double)k*expct;
+				tmp += (double) k * expct;
 
 				/* accumulate delta phase to get bin phase */
 				sum_phase[k] += tmp;
 				phase = sum_phase[k];
 
 				/* get real and imag part and re-interleave */
-				fft_worksp[2*k] = magn*cos(phase);
-				fft_worksp[2*k+1] = magn*sin(phase);
+				fft_worksp[2*k] = magn * cos(phase);
+				fft_worksp[2*k+1] = magn * sin(phase);
 			}
 
 			/* zero negative frequencies */
-			for (k = fft_frame_size+2; k < 2*fft_frame_size; k++) fft_worksp[k] = 0.;
+			for (k = fft_frame_size + 2; k < 2 * fft_frame_size; k++) fft_worksp[k] = 0.;
 
 			/* do inverse transform */
 			smb_fft(fft_worksp, fft_frame_size, 1);
 
 			/* do windowing and add to output accumulator */
-			for(k=0; k < fft_frame_size; k++) {
-				window = -.5*cos(2.*M_PI*(double)k/(double)fft_frame_size)+.5;
-				output_accum[k] += 2.*window*fft_worksp[2*k]/(fft_frame_size2*osamp);
+			for (k=0; k < fft_frame_size; k++) {
+				window = -.5 * cos(2. * M_PI * (double) k / (double) fft_frame_size) + .5;
+				output_accum[k] += 2. * window * fft_worksp[2*k] / (fft_frame_size2 * osamp);
 			}
 			for (k = 0; k < step_size; k++) out_fifo[k] = output_accum[k];
 
 			/* shift accumulator */
-			memmove(output_accum, output_accum+step_size, fft_frame_size*sizeof(float));
+			memmove(output_accum, output_accum+step_size, fft_frame_size * sizeof(float));
 
 			/* move input FIFO */
 			for (k = 0; k < in_fifo_latency; k++) in_fifo[k] = in_fifo[k+step_size];
@@ -419,7 +427,7 @@
 	int samples;
 
 	/* an amount of 1 has no effect */
-	if (amount == 1) {
+	if (!amount || amount == 1 || !fun) {
 		return 0;
 	}
 	for (samples = 0; samples < f->samples; samples += 32) {




More information about the asterisk-commits mailing list