Mercurial > pidgin.yaz
comparison plugins/crazychat/filter.c @ 11232:8bcd4d4ccef6
[gaim-migrate @ 13372]
committing crazychat again. hopefully here to stay.
committer: Tailor Script <tailor@pidgin.im>
author | Charlie Stockman <chuckleberry> |
---|---|
date | Thu, 11 Aug 2005 07:56:29 +0000 |
parents | ed017b9c532d |
children |
comparison
equal
deleted
inserted
replaced
11231:64e2c65ef650 | 11232:8bcd4d4ccef6 |
---|---|
1 #include "cc_interface.h" | |
2 #include "filter.h" | |
3 #include "stdio.h" | |
4 | |
5 #define coef_0 .0022 | |
6 #define coef_1 .0174 | |
7 #define coef_2 .0737 | |
8 #define coef_3 .1662 | |
9 #define coef_4 .2405 | |
10 | |
11 filter_bank* Filter_Initialize (void) | |
12 { | |
13 filter_bank* new_filter; | |
14 new_filter=(filter_bank*)malloc(sizeof(filter_bank)); | |
15 memset(new_filter,0,sizeof(filter_bank)); | |
16 // fprintf(stderr,"RESETTING FILTER BANK *******************\n"); | |
17 return new_filter; | |
18 } | |
19 | |
20 void Filter_Destroy (filter_bank *f) | |
21 { | |
22 free(f); | |
23 } | |
24 | |
25 void filter(struct cc_features *features, filter_bank *f) | |
26 { | |
27 | |
28 f->head_size[9]=f->head_size[8]; | |
29 f->head_size[8]=f->head_size[7]; | |
30 f->head_size[7]=f->head_size[6]; | |
31 f->head_size[6]=f->head_size[5]; | |
32 f->head_size[5]=f->head_size[4]; | |
33 f->head_size[4]=f->head_size[3]; | |
34 f->head_size[3]=f->head_size[2]; | |
35 f->head_size[2]=f->head_size[1]; | |
36 f->head_size[1]=f->head_size[0]; | |
37 f->head_size[0]=features->head_size; | |
38 | |
39 features->head_size=(guint8) ( (coef_0*(f->head_size[0]+f->head_size[9]))+(coef_1*(f->head_size[1]+f->head_size[8])) + | |
40 (coef_2*(f->head_size[2]+f->head_size[7])) + (coef_3*(f->head_size[3]+f->head_size[6])) | |
41 + (coef_4*(f->head_size[4]+f->head_size[5]))); | |
42 | |
43 | |
44 | |
45 f->head_z_rot[9]=f->head_z_rot[8]; | |
46 f->head_z_rot[8]=f->head_z_rot[7]; | |
47 f->head_z_rot[7]=f->head_z_rot[6]; | |
48 f->head_z_rot[6]=f->head_z_rot[5]; | |
49 f->head_z_rot[5]=f->head_z_rot[4]; | |
50 f->head_z_rot[4]=f->head_z_rot[3]; | |
51 f->head_z_rot[3]=f->head_z_rot[2]; | |
52 f->head_z_rot[2]=f->head_z_rot[1]; | |
53 f->head_z_rot[1]=f->head_z_rot[0]; | |
54 f->head_z_rot[0]=features->head_z_rot; | |
55 | |
56 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])) + | |
57 (coef_2*(f->head_z_rot[2]+f->head_z_rot[7])) + (coef_3*(f->head_z_rot[3]+f->head_z_rot[6])) | |
58 + (coef_4*(f->head_z_rot[4]+f->head_z_rot[5]))); | |
59 | |
60 | |
61 f->head_y_rot[9]=f->head_y_rot[8]; | |
62 f->head_y_rot[8]=f->head_y_rot[7]; | |
63 f->head_y_rot[7]=f->head_y_rot[6]; | |
64 f->head_y_rot[6]=f->head_y_rot[5]; | |
65 f->head_y_rot[5]=f->head_y_rot[4]; | |
66 f->head_y_rot[4]=f->head_y_rot[3]; | |
67 f->head_y_rot[3]=f->head_y_rot[2]; | |
68 f->head_y_rot[2]=f->head_y_rot[1]; | |
69 f->head_y_rot[1]=f->head_y_rot[0]; | |
70 f->head_y_rot[0]=features->head_y_rot; | |
71 | |
72 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])) + | |
73 (coef_2*(f->head_y_rot[2]+f->head_y_rot[7])) + (coef_3*(f->head_y_rot[3]+f->head_y_rot[6])) | |
74 + (coef_4*(f->head_y_rot[4]+f->head_y_rot[5]))); | |
75 | |
76 | |
77 f->xfilt[9]=f->xfilt[8]; | |
78 f->xfilt[8]=f->xfilt[7]; | |
79 f->xfilt[7]=f->xfilt[6]; | |
80 f->xfilt[6]=f->xfilt[5]; | |
81 f->xfilt[5]=f->xfilt[4]; | |
82 f->xfilt[4]=f->xfilt[3]; | |
83 f->xfilt[3]=f->xfilt[2]; | |
84 f->xfilt[2]=f->xfilt[1]; | |
85 f->xfilt[1]=f->xfilt[0]; | |
86 f->xfilt[0]=features->x; | |
87 | |
88 features->x=(guint8) ( (coef_0*(f->xfilt[0]+f->xfilt[9]))+(coef_1*(f->xfilt[1]+f->xfilt[8])) + | |
89 (coef_2*(f->xfilt[2]+f->xfilt[7])) + (coef_3*(f->xfilt[3]+f->xfilt[6])) | |
90 + (coef_4*(f->xfilt[4]+f->xfilt[5]))); | |
91 | |
92 | |
93 f->yfilt[9]=f->yfilt[8]; | |
94 f->yfilt[8]=f->yfilt[7]; | |
95 f->yfilt[7]=f->yfilt[6]; | |
96 f->yfilt[6]=f->yfilt[5]; | |
97 f->yfilt[5]=f->yfilt[4]; | |
98 f->yfilt[4]=f->yfilt[3]; | |
99 f->yfilt[3]=f->yfilt[2]; | |
100 f->yfilt[2]=f->yfilt[1]; | |
101 f->yfilt[1]=f->yfilt[0]; | |
102 f->yfilt[0]=features->y; | |
103 | |
104 features->y=(guint8) ( (coef_0*(f->yfilt[0]+f->yfilt[9]))+(coef_1*(f->yfilt[1]+f->yfilt[8])) + | |
105 (coef_2*(f->yfilt[2]+f->yfilt[7])) + (coef_3*(f->yfilt[3]+f->yfilt[6])) | |
106 + (coef_4*(f->yfilt[4]+f->yfilt[5]))); | |
107 | |
108 | |
109 f->mouth_open[9]=f->mouth_open[8]; | |
110 f->mouth_open[8]=f->mouth_open[7]; | |
111 f->mouth_open[7]=f->mouth_open[6]; | |
112 f->mouth_open[6]=f->mouth_open[5]; | |
113 f->mouth_open[5]=f->mouth_open[4]; | |
114 f->mouth_open[4]=f->mouth_open[3]; | |
115 f->mouth_open[3]=f->mouth_open[2]; | |
116 f->mouth_open[2]=f->mouth_open[1]; | |
117 f->mouth_open[1]=f->mouth_open[0]; | |
118 f->mouth_open[0]=features->mouth_open; | |
119 | |
120 features->mouth_open=(guint8) ( (coef_0*(f->mouth_open[0]+f->mouth_open[9]))+(coef_1*(f->mouth_open[1]+f->mouth_open[8])) + | |
121 (coef_2*(f->mouth_open[2]+f->mouth_open[7])) + (coef_3*(f->mouth_open[3]+f->mouth_open[6])) | |
122 + (coef_4*(f->mouth_open[4]+f->mouth_open[5]))); | |
123 | |
124 } |