diff options
Diffstat (limited to 'protocols/nogaim.h')
-rw-r--r-- | protocols/nogaim.h | 75 |
1 files changed, 34 insertions, 41 deletions
diff --git a/protocols/nogaim.h b/protocols/nogaim.h index 4e10330a..477f1df9 100644 --- a/protocols/nogaim.h +++ b/protocols/nogaim.h @@ -71,7 +71,6 @@ struct gaim_connection { /* we need to do either oscar or TOC */ /* we make this as an int in case if we want to add more protocols later */ - int protocol; struct prpl *prpl; guint32 flags; @@ -151,7 +150,7 @@ struct aim_user { char password[32]; char user_info[2048]; int options; - int protocol; + struct prpl *prpl; /* prpls can use this to save information about the user, * like which server to connect to, etc */ char proto_opt[7][256]; @@ -160,10 +159,28 @@ struct aim_user { irc_t *irc; }; +struct ft +{ + const char *filename; + + /* Total number of bytes in file */ + size_t total_bytes; + + /* Current number of bytes received */ + size_t cur_bytes; +}; + +struct ft_request +{ + const char *filename; + struct gaim_connection *gc; +}; + +typedef void (*ft_recv_handler) (struct ft *, void *data, size_t len); + struct prpl { - int protocol; int options; - char *(* name)(); + const char *name; /* for ICQ and Yahoo, who have off/on per-conversation options */ /* char *checkbox; this should be per-connection */ @@ -216,27 +233,16 @@ struct prpl { /* change a buddy's group on a server list/roster */ void (* group_buddy) (struct gaim_connection *, char *who, char *old_group, char *new_group); + /* file transfers */ + struct ft_send_req *(* req_send_file) (struct gaim_connection *, const char *file); + void (* send_file_part) (struct gaim_connection *, struct ft*, void *data, size_t length); + void (* accept_recv_file) (struct gaim_connection *, struct ft*, ft_recv_handler); + void (* buddy_free) (struct buddy *); char *(* get_status_string) (struct gaim_connection *gc, int stat); }; -#define PROTO_TOC 0 -#define PROTO_OSCAR 1 -#define PROTO_YAHOO 2 -#define PROTO_ICQ 3 -#define PROTO_MSN 4 -#define PROTO_IRC 5 -#define PROTO_FTP 6 -#define PROTO_VGATE 7 -#define PROTO_JABBER 8 -#define PROTO_NAPSTER 9 -#define PROTO_ZEPHYR 10 -#define PROTO_GADUGADU 11 -#define PROTO_MAX 16 - -extern char proto_name[PROTO_MAX][8]; - #define UC_UNAVAILABLE 1 /* JABBER */ @@ -246,7 +252,8 @@ extern char proto_name[PROTO_MAX][8]; #define UC_DND (0x10 | UC_UNAVAILABLE) G_MODULE_EXPORT GSList *get_connections(); -extern struct prpl *proto_prpl[16]; +G_MODULE_EXPORT struct prpl *find_protocol(const char *name); +G_MODULE_EXPORT void register_protocol(struct prpl *); /* nogaim.c */ int serv_send_im(irc_t *irc, user_t *u, char *msg, int flags); @@ -258,7 +265,7 @@ char *set_eval_charset( irc_t *irc, set_t *set, char *value ); void nogaim_init(); int proto_away( struct gaim_connection *gc, char *away ); char *set_eval_away_devoice( irc_t *irc, set_t *set, char *value ); -int handle_cmp( char *a, char *b, int protocol ); +int handle_cmp( char *a, char *b, struct prpl *protocol ); gboolean auto_reconnect( gpointer data ); void cancel_auto_reconnect( struct account *a ); @@ -317,25 +324,11 @@ G_MODULE_EXPORT void strip_html( char *msg ); G_MODULE_EXPORT char * escape_html(const char *html); G_MODULE_EXPORT void info_string_append(GString *str, char *newline, char *name, char *value); -#ifdef WITH_MSN -/* msn.c */ -G_MODULE_EXPORT void msn_init( struct prpl *ret ); -#endif - -#ifdef WITH_OSCAR -/* oscar.c */ -G_MODULE_EXPORT void oscar_init( struct prpl *ret ); -#endif - -#ifdef WITH_JABBER -/* jabber.c */ -G_MODULE_EXPORT void jabber_init( struct prpl *ret ); -#endif - -#ifdef WITH_YAHOO -/* yahoo.c */ -G_MODULE_EXPORT void byahoo_init( struct prpl *ret ); -#endif +/* file transfers */ +G_MODULE_EXPORT void ft_progress( struct ft *, int); +G_MODULE_EXPORT void ft_incoming( struct ft_request * ); +G_MODULE_EXPORT void ft_accepted( struct ft_request *, struct ft *); +G_MODULE_EXPORT void ft_denied( struct ft_request *, const char *reason); /* prefs.c */ G_MODULE_EXPORT void build_block_list(); |