Mercurial > pidgin
comparison plugins/crazychat/cc_interface.h @ 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 | |
children |
comparison
equal
deleted
inserted
replaced
11231:64e2c65ef650 | 11232:8bcd4d4ccef6 |
---|---|
1 #ifndef __CC_INTERFACE_H__ | |
2 #define __CC_INTERFACE_H__ | |
3 | |
4 #include <gtk/gtk.h> | |
5 #include "crazychat.h" | |
6 | |
7 /* XXX feature encapsulation: still in flux, not stable XXX */ | |
8 | |
9 //charlie | |
10 typedef enum {REMOTE, LOCAL} OUTPUT; | |
11 | |
12 gboolean configure(GtkWidget *widget, | |
13 GdkEventConfigure *event, void *data); | |
14 | |
15 #ifdef DISABLE_MODELS | |
16 #define draw(a, b, c) 1 | |
17 #define setupDrawlists(a) | |
18 #else | |
19 gboolean draw(GtkWidget *widget, GdkEventExpose *event, | |
20 void *data); | |
21 | |
22 void setupDrawlists(OUTPUT output); | |
23 #endif | |
24 | |
25 void init (GtkWidget *widget, void *data); | |
26 | |
27 void setupLighting(GtkWidget *widget); | |
28 | |
29 struct cc_features { | |
30 guint8 head_size; | |
31 guint8 left_eye_open, right_eye_open; /*booleans*/ | |
32 guint8 mouth_open; /*percentage*/ | |
33 guint8 head_x_rot, head_y_rot, head_z_rot; /* head rotation */ | |
34 guint8 x, y; /*center of head*/ | |
35 guint8 head_color, appendage_color, lid_color, right_iris_color, left_iris_color; //colors | |
36 guint8 mode, kind; | |
37 }; | |
38 | |
39 struct output_instance { | |
40 struct cc_features *features; | |
41 struct cc_session *session; | |
42 float past_y; | |
43 OUTPUT my_output; | |
44 GtkWidget *widget; | |
45 GtkWidget *box; | |
46 }; | |
47 | |
48 struct input_instance { | |
49 int timer_id; | |
50 struct cc_features face; | |
51 GtkWidget *widget; | |
52 GtkWidget *box; | |
53 GtkWidget *button; | |
54 GtkWidget *label; | |
55 GtkWidget *model; | |
56 GtkWidget *head, *appendage, *lid, *right_iris, *left_iris; | |
57 struct output_instance output; | |
58 }; | |
59 | |
60 struct output_handlers { | |
61 int (*configure)(GtkWidget *widget, GdkEventConfigure *event, | |
62 void *data); | |
63 void (*init) (GtkWidget *widget, void *data); | |
64 gboolean (*draw) (GtkWidget *widget, GdkEventExpose *event, void *data); | |
65 }; | |
66 | |
67 struct cc_session { | |
68 struct crazychat *cc; /**< crazychat global data */ | |
69 char *name; /**< session peer */ | |
70 guint32 peer_ip; /**< peer's ip addr, nbo */ | |
71 guint16 peer_port; /**< peer's port hbo */ | |
72 struct sockaddr_in peer; /**< peer udp sock addr */ | |
73 CC_STATE state; /**< connection state */ | |
74 int timer_id; /**< glib timer callback id */ | |
75 int tcp_sock; /**< tcp socket connection */ | |
76 int udp_sock; /**< udp socket connection */ | |
77 struct cc_features features; /**< network peer features */ | |
78 struct output_instance *output; /**< output instance data */ | |
79 filter_bank *filter; /**< filter instance */ | |
80 }; | |
81 | |
82 struct crazychat { | |
83 guint16 tcp_port; /**< tcp port to bind on */ | |
84 guint16 udp_port; /**< udp session data port */ | |
85 struct cc_session_node *sessions; /**< list of sessions */ | |
86 struct input_instance *input_data; /**< input instance data */ | |
87 gboolean features_state; /**< features state on/off */ | |
88 }; | |
89 | |
90 /* --- input feature interface --- */ | |
91 | |
92 #ifdef _DISABLE_QT_ | |
93 #define init_input(a) NULL | |
94 #define destroy_input(a) | |
95 #else | |
96 | |
97 /** | |
98 * Initializes the input subsystem. | |
99 * @param cc global crazychat data structure | |
100 * @return pointer to an input instance | |
101 */ | |
102 struct input_instance *init_input(struct crazychat *cc); | |
103 | |
104 /** | |
105 * Destroys the input subsystem. | |
106 * @param instance input instance | |
107 */ | |
108 void destroy_input(struct input_instance *instance); | |
109 | |
110 #endif /* _DISABLE_QT_ */ | |
111 | |
112 /* --- output feature interface --- */ | |
113 | |
114 /** | |
115 * Initializes an output instance. | |
116 * @param features pointer to features | |
117 * @param session pointer to the crazychat session | |
118 * @return pointer to the output instance | |
119 */ | |
120 struct output_instance *init_output(struct cc_features *features, | |
121 struct cc_session *session); | |
122 | |
123 /** | |
124 * Destroys an output instance. | |
125 * @param instance output instance | |
126 */ | |
127 void destroy_output(struct output_instance *instance); | |
128 | |
129 #endif |