Mercurial > pidgin.yaz
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]))); + +}