1 #ifndef _INF_MAIN_H
2 #define _INF_MAIN_H
3 
4 #include <libvisual/libvisual.h>
5 
6 #define NB_PALETTES 5
7 
8 struct infinite_col {
9 	uint8_t r;
10 	uint8_t g;
11 	uint8_t b;
12 };
13 
14 typedef struct t_coord {
15 	int x,y;
16 } t_coord;
17 
18 typedef struct t_complex {
19 	float x,y;
20 } t_complex;
21 
22 typedef struct t_interpol {
23 	uint32_t coord ;  //coordinates of the top left pixel.
24 	uint32_t weight; //32 bits = 4*8= weights of the four corners
25 } t_interpol;
26 
27 typedef struct t_effect {
28 	int num_effect;
29 	int x_curve;
30 	int curve_color;
31 	int curve_amplitude;
32 	int spectral_amplitude;
33 	int spectral_color;
34 	int mode_spectre;
35 	int spectral_shift;
36 } t_effect;
37 
38 typedef struct {
39 	float pcm_data[2][512];
40 	int plugwidth;
41 	int plugheight;
42 	VisPalette pal;
43 
44 	/* Random context for this plugin */
45 	VisRandomContext *rcontext;
46 
47 	uint8_t *surface1;
48 	uint8_t *surface2;
49 
50 	int teff;
51 	int tcol;
52 
53 	struct infinite_col color_table[NB_PALETTES][256];
54 
55 	int old_color;
56 	int color;
57 	int t_last_color;
58 	int t_last_effect;
59 
60 	t_effect current_effect;
61 	t_interpol *vector_field;
62 } InfinitePrivate;
63 
64 #endif /* _INF_MAIN_H */
65