view plugins/crazychat/filter.c @ 14067:f3ed5f4efcae

[gaim-migrate @ 16688] Fix for CID 110 (which also will fix some asserts that happen when you edit your Jabber User Info for the first time) Fix for CID 251 (Null check after deref) Fixes for CID 252, 253. (UNUSED_VALUE) I also changed the jabber_buddy_find() call in jabber_vcard_parse not to create the JabberBuddy if it doesn't exist - there should be a specific jabber buddy attached to the JabberBuddyInfo and if isn't present any more, we shouldn't create a new one. committer: Tailor Script <tailor@pidgin.im>
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 10 Aug 2006 21:08:00 +0000
parents ed017b9c532d
children
line wrap: on
line source

#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])));				
				
}