diff pidgin/plugins/crazychat/filter.c @ 15374:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children a8cc50c2279f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/crazychat/filter.c	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,124 @@
+#include "cc_interface.h"
+#include "filter.h"
+#include "stdio.h"
+
+#define coef_0 .0022
+#define coef_1 .0174
+#define coef_2 .0737
+#define coef_3 .1662
+#define coef_4 .2405
+
+filter_bank* Filter_Initialize (void)
+{
+	filter_bank* new_filter;
+	new_filter=(filter_bank*)malloc(sizeof(filter_bank));
+	memset(new_filter,0,sizeof(filter_bank));
+//	fprintf(stderr,"RESETTING FILTER BANK *******************\n");
+	return new_filter;
+}
+
+void Filter_Destroy (filter_bank *f)
+{
+	free(f);
+}
+
+void filter(struct cc_features *features, filter_bank *f)
+{
+
+f->head_size[9]=f->head_size[8];
+f->head_size[8]=f->head_size[7];
+f->head_size[7]=f->head_size[6];
+f->head_size[6]=f->head_size[5];
+f->head_size[5]=f->head_size[4];
+f->head_size[4]=f->head_size[3];
+f->head_size[3]=f->head_size[2];
+f->head_size[2]=f->head_size[1];
+f->head_size[1]=f->head_size[0];
+f->head_size[0]=features->head_size;
+
+features->head_size=(guint8) ( (coef_0*(f->head_size[0]+f->head_size[9]))+(coef_1*(f->head_size[1]+f->head_size[8])) +
+			(coef_2*(f->head_size[2]+f->head_size[7])) + (coef_3*(f->head_size[3]+f->head_size[6]))
+				+ (coef_4*(f->head_size[4]+f->head_size[5])));
+				
+
+				
+f->head_z_rot[9]=f->head_z_rot[8];
+f->head_z_rot[8]=f->head_z_rot[7];
+f->head_z_rot[7]=f->head_z_rot[6];
+f->head_z_rot[6]=f->head_z_rot[5];
+f->head_z_rot[5]=f->head_z_rot[4];
+f->head_z_rot[4]=f->head_z_rot[3];
+f->head_z_rot[3]=f->head_z_rot[2];
+f->head_z_rot[2]=f->head_z_rot[1];
+f->head_z_rot[1]=f->head_z_rot[0];
+f->head_z_rot[0]=features->head_z_rot;
+
+features->head_z_rot=(guint8) ( (coef_0*(f->head_z_rot[0]+f->head_z_rot[9]))+(coef_1*(f->head_z_rot[1]+f->head_z_rot[8])) +
+			(coef_2*(f->head_z_rot[2]+f->head_z_rot[7])) + (coef_3*(f->head_z_rot[3]+f->head_z_rot[6]))
+				+ (coef_4*(f->head_z_rot[4]+f->head_z_rot[5])));
+
+				
+f->head_y_rot[9]=f->head_y_rot[8];
+f->head_y_rot[8]=f->head_y_rot[7];
+f->head_y_rot[7]=f->head_y_rot[6];
+f->head_y_rot[6]=f->head_y_rot[5];
+f->head_y_rot[5]=f->head_y_rot[4];
+f->head_y_rot[4]=f->head_y_rot[3];
+f->head_y_rot[3]=f->head_y_rot[2];
+f->head_y_rot[2]=f->head_y_rot[1];
+f->head_y_rot[1]=f->head_y_rot[0];
+f->head_y_rot[0]=features->head_y_rot;
+
+features->head_y_rot=(guint8) ( (coef_0*(f->head_y_rot[0]+f->head_y_rot[9]))+(coef_1*(f->head_y_rot[1]+f->head_y_rot[8])) +
+			(coef_2*(f->head_y_rot[2]+f->head_y_rot[7])) + (coef_3*(f->head_y_rot[3]+f->head_y_rot[6]))
+				+ (coef_4*(f->head_y_rot[4]+f->head_y_rot[5])));				
+ 
+
+f->xfilt[9]=f->xfilt[8];
+f->xfilt[8]=f->xfilt[7];
+f->xfilt[7]=f->xfilt[6];
+f->xfilt[6]=f->xfilt[5];
+f->xfilt[5]=f->xfilt[4];
+f->xfilt[4]=f->xfilt[3];
+f->xfilt[3]=f->xfilt[2];
+f->xfilt[2]=f->xfilt[1];
+f->xfilt[1]=f->xfilt[0];
+f->xfilt[0]=features->x;
+
+features->x=(guint8) ( (coef_0*(f->xfilt[0]+f->xfilt[9]))+(coef_1*(f->xfilt[1]+f->xfilt[8])) +
+			(coef_2*(f->xfilt[2]+f->xfilt[7])) + (coef_3*(f->xfilt[3]+f->xfilt[6]))
+				+ (coef_4*(f->xfilt[4]+f->xfilt[5])));
+				
+				
+f->yfilt[9]=f->yfilt[8];
+f->yfilt[8]=f->yfilt[7];
+f->yfilt[7]=f->yfilt[6];
+f->yfilt[6]=f->yfilt[5];
+f->yfilt[5]=f->yfilt[4];
+f->yfilt[4]=f->yfilt[3];
+f->yfilt[3]=f->yfilt[2];
+f->yfilt[2]=f->yfilt[1];
+f->yfilt[1]=f->yfilt[0];
+f->yfilt[0]=features->y;
+
+features->y=(guint8) ( (coef_0*(f->yfilt[0]+f->yfilt[9]))+(coef_1*(f->yfilt[1]+f->yfilt[8])) +
+			(coef_2*(f->yfilt[2]+f->yfilt[7])) + (coef_3*(f->yfilt[3]+f->yfilt[6]))
+				+ (coef_4*(f->yfilt[4]+f->yfilt[5])));
+				
+				
+f->mouth_open[9]=f->mouth_open[8];
+f->mouth_open[8]=f->mouth_open[7];
+f->mouth_open[7]=f->mouth_open[6];
+f->mouth_open[6]=f->mouth_open[5];
+f->mouth_open[5]=f->mouth_open[4];
+f->mouth_open[4]=f->mouth_open[3];
+f->mouth_open[3]=f->mouth_open[2];
+f->mouth_open[2]=f->mouth_open[1];
+f->mouth_open[1]=f->mouth_open[0];
+f->mouth_open[0]=features->mouth_open;
+
+features->mouth_open=(guint8) ( (coef_0*(f->mouth_open[0]+f->mouth_open[9]))+(coef_1*(f->mouth_open[1]+f->mouth_open[8])) +
+			(coef_2*(f->mouth_open[2]+f->mouth_open[7])) + (coef_3*(f->mouth_open[3]+f->mouth_open[6]))
+				+ (coef_4*(f->mouth_open[4]+f->mouth_open[5])));				
+				
+}