Changeset 9624fdf for protocols


Ignore:
Timestamp:
2007-04-17T04:49:17Z (18 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
33dc261
Parents:
717e3bf
Message:

API cleanup pretty much complete. Fixed pretty much everything except the
buddy/groupchat related functions.

Location:
protocols
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/message.c

    r717e3bf r9624fdf  
    7676               
    7777                if( fullmsg->len > 0 )
    78                         serv_got_im( ic, bud ? bud->bare_jid : from, fullmsg->str, 0, 0, fullmsg->len );
     78                        imcb_buddy_msg( ic, bud ? bud->bare_jid : from, fullmsg->str, 0, 0 );
    7979               
    8080                g_string_free( fullmsg, TRUE );
     
    8484                {
    8585                        bud->flags |= JBFLAG_DOES_XEP85;
    86                         serv_got_typing( ic, bud ? bud->bare_jid : from, 0, 1 );
     86                        imcb_buddy_typing( ic, bud ? bud->bare_jid : from, OPT_TYPING );
    8787                }
    8888                /* No need to send a "stopped typing" signal when there's a message. */
     
    9090                {
    9191                        bud->flags |= JBFLAG_DOES_XEP85;
    92                         serv_got_typing( ic, bud ? bud->bare_jid : from, 0, 0 );
     92                        imcb_buddy_typing( ic, bud ? bud->bare_jid : from, 0 );
    9393                }
    9494                else if( xt_find_node( node->children, "paused" ) )
    9595                {
    9696                        bud->flags |= JBFLAG_DOES_XEP85;
    97                         serv_got_typing( ic, bud ? bud->bare_jid : from, 0, 2 );
     97                        imcb_buddy_typing( ic, bud ? bud->bare_jid : from, OPT_THINKING );
    9898                }
    9999               
  • protocols/msn/sb.c

    r717e3bf r9624fdf  
    607607                        if( sb->who )
    608608                        {
    609                                 serv_got_im( ic, cmd[1], body, 0, 0, blen );
     609                                imcb_buddy_msg( ic, cmd[1], body, 0, 0 );
    610610                        }
    611611                        else if( sb->chat )
     
    666666                        if( sb->who )
    667667                        {
    668                                 serv_got_im( ic, cmd[1], buf, 0, 0, strlen( buf ) );
     668                                imcb_buddy_msg( ic, cmd[1], buf, 0, 0 );
    669669                        }
    670670                        else if( sb->chat )
     
    683683                        if( who )
    684684                        {
    685                                 serv_got_typing( ic, who, 5, 1 );
     685                                imcb_buddy_typing( ic, who, OPT_TYPING );
    686686                                g_free( who );
    687687                        }
  • protocols/nogaim.c

    r717e3bf r9624fdf  
    424424        if( !u )
    425425                return( NULL );
    426 
     426       
    427427        memset( b, 0, sizeof( b ) );
    428428        strncpy( b->name, handle, 80 );
     
    575575        {
    576576                irc_write( ic->irc, ":%s MODE %s %cv %s", ic->irc->myhost,
    577                                                                 ic->irc->channel, u->away?'-':'+', u->nick );
    578         }
    579 }
    580 
    581 void serv_got_im( struct im_connection *ic, char *handle, char *msg, guint32 flags, time_t mtime, gint len )
     577                                                          ic->irc->channel, u->away?'-':'+', u->nick );
     578        }
     579}
     580
     581void imcb_buddy_msg( struct im_connection *ic, char *handle, char *msg, u_int32_t flags, time_t sent_at )
    582582{
    583583        irc_t *irc = ic->irc;
     
    657657}
    658658
    659 void serv_got_typing( struct im_connection *ic, char *handle, int timeout, int type )
     659void imcb_buddy_typing( struct im_connection *ic, char *handle, u_int32_t flags )
    660660{
    661661        user_t *u;
     
    664664                return;
    665665       
    666         if( ( u = user_findhandle( ic, handle ) ) ) {
    667                 /* If type is:
    668                  * 0: user has stopped typing
    669                  * 1: user is actively typing
    670                  * 2: user has entered text, but is not actively typing
    671                  */
    672                 if (type == 0 || type == 1 || type == 2) {
    673                         char buf[256];
    674                         g_snprintf(buf, 256, "\1TYPING %d\1", type);
    675                         irc_privmsg( ic->irc, u, "PRIVMSG", ic->irc->nick, NULL, buf );
    676                 }
     666        if( ( u = user_findhandle( ic, handle ) ) )
     667        {
     668                char buf[256];
     669               
     670                g_snprintf( buf, 256, "\1TYPING %d\1", ( flags >> 8 ) & 3 );
     671                irc_privmsg( ic->irc, u, "PRIVMSG", ic->irc->nick, NULL, buf );
    677672        }
    678673}
  • protocols/nogaim.h

    r717e3bf r9624fdf  
    5050#define BUF_LEN MSG_LEN
    5151
    52 #define SELF_ALIAS_LEN 400
    5352#define BUDDY_ALIAS_MAXLEN 388   /* because MSN names can be 387 characters */
    5453
     
    5655#define GAIM_AWAY_CUSTOM "Custom"
    5756
    58 /* Sharing flags between buddies and connections. Or planning to, at least... */
     57/* Sharing flags between all kinds of things. I just hope I won't hit any
     58   limits before 32-bit machines become extinct. ;-) */
    5959#define OPT_LOGGED_IN   0x00000001
    6060#define OPT_LOGGING_OUT 0x00000002
    6161#define OPT_AWAY        0x00000004
    6262#define OPT_DOES_HTML   0x00000010
     63#define OPT_TYPING      0x00000100
     64#define OPT_THINKING    0x00000200
    6365
    6466/* ok. now the fun begins. first we create a connection structure */
     
    136138        void (* set_away)       (struct im_connection *, char *state, char *message);
    137139        void (* get_away)       (struct im_connection *, char *who);
    138         int  (* send_typing)    (struct im_connection *, char *who, int typing);
     140        int  (* send_typing)    (struct im_connection *, char *who, int flags);
    139141       
    140142        /* For now BitlBee doesn't really handle groups, just set it to NULL. */
     
    171173};
    172174
    173 #define UC_UNAVAILABLE  1
    174 
    175175/* im_api core stuff. */
    176176void nogaim_init();
     
    208208G_MODULE_EXPORT void imcb_buddy_status( struct im_connection *ic, const char *handle, int flags, const char *state, const char *message );
    209209/* Not implemented yet! */ G_MODULE_EXPORT void imcb_buddy_times( struct im_connection *ic, const char *handle, time_t login, time_t idle );
    210 G_MODULE_EXPORT void serv_got_im( struct im_connection *ic, char *handle, char *msg, guint32 flags, time_t mtime, gint len );
    211 G_MODULE_EXPORT void serv_got_typing( struct im_connection *ic, char *handle, int timeout, int type );
     210G_MODULE_EXPORT void imcb_buddy_msg( struct im_connection *ic, char *handle, char *msg, u_int32_t flags, time_t sent_at );
     211G_MODULE_EXPORT void imcb_buddy_typing( struct im_connection *ic, char *handle, u_int32_t flags );
    212212
    213213/* Actions, or whatever. */
  • protocols/oscar/oscar.c

    r717e3bf r9624fdf  
    10701070       
    10711071        strip_linefeed(tmp);
    1072         serv_got_im(ic, userinfo->sn, tmp, flags, time(NULL), -1);
     1072        imcb_buddy_msg(ic, userinfo->sn, tmp, flags, 0);
    10731073        g_free(tmp);
    10741074       
     
    11671167                        message = g_strdup(args->msg);
    11681168                        strip_linefeed(message);
    1169                         serv_got_im(ic, uin, message, 0, time(NULL), -1);
     1169                        imcb_buddy_msg(ic, uin, message, 0, 0);
    11701170                        g_free(uin);
    11711171                        g_free(message);
     
    11861186
    11871187                        strip_linefeed(message);
    1188                         serv_got_im(ic, uin, message, 0, time(NULL), -1);
     1188                        imcb_buddy_msg(ic, uin, message, 0, 0);
    11891189                        g_free(uin);
    11901190                        g_free(m);
     
    17481748                        g_snprintf(sender, sizeof(sender), "%u", msg->sender);
    17491749                        strip_linefeed(dialog_msg);
    1750                         serv_got_im(ic, sender, dialog_msg, 0, t, -1);
     1750                        imcb_buddy_msg(ic, sender, dialog_msg, 0, t);
    17511751                        g_free(dialog_msg);
    17521752                } break;
     
    17691769
    17701770                        strip_linefeed(dialog_msg);
    1771                         serv_got_im(ic, sender, dialog_msg, 0, t, -1);
     1771                        imcb_buddy_msg(ic, sender, dialog_msg, 0, t);
    17721772                        g_free(dialog_msg);
    17731773                        g_free(m);
     
    24212421        if(type2 == 0x0002) {
    24222422                /* User is typing */
    2423                 serv_got_typing(ic, sn, 0, 1);
     2423                imcb_buddy_typing(ic, sn, OPT_TYPING);
    24242424        }
    24252425        else if (type2 == 0x0001) {
    24262426                /* User has typed something, but is not actively typing (stale) */
    2427                 serv_got_typing(ic, sn, 0, 2);
     2427                imcb_buddy_typing(ic, sn, OPT_THINKING);
    24282428        }
    24292429        else {
    24302430                /* User has stopped typing */
    2431                 serv_got_typing(ic, sn, 0, 0);
     2431                imcb_buddy_typing(ic, sn, 0);
    24322432        }       
    24332433       
  • protocols/yahoo/yahoo.c

    r717e3bf r9624fdf  
    618618        char *m = byahoo_strip( msg );
    619619       
    620         serv_got_im( ic, (char*) who, (char*) m, 0, 0, strlen( m ) );
     620        imcb_buddy_msg( ic, (char*) who, (char*) m, 0, 0 );
    621621        g_free( m );
    622622}
     
    634634{
    635635        struct im_connection *ic = byahoo_get_ic_by_id( id );
    636         if (stat == 1) {
    637                 /* User is typing */
    638                 serv_got_typing( ic, (char*) who, 1, 1 );
    639         }
    640         else {
    641                 /* User stopped typing */
    642                 serv_got_typing( ic, (char*) who, 1, 0 );
    643         }
     636       
     637        if( stat == 1 )
     638                imcb_buddy_typing( ic, (char*) who, OPT_TYPING );
     639        else
     640                imcb_buddy_typing( ic, (char*) who, 0 );
    644641}
    645642
Note: See TracChangeset for help on using the changeset viewer.