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 |
