Changeset 4022b68 for protocols


Ignore:
Timestamp:
2010-08-21T22:42:01Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
fd424c8
Parents:
327af51 (diff), c00dd71 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline.

Location:
protocols
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • protocols/bee.c

    r327af51 r4022b68  
    4040        s = set_add( &b->set, "auto_reconnect_delay", "5*3<900", set_eval_account_reconnect_delay, b );
    4141        s = set_add( &b->set, "debug", "false", set_eval_bool, b );
     42        s = set_add( &b->set, "mobile_is_away", "false", set_eval_bool, b );
    4243        s = set_add( &b->set, "save_on_quit", "true", set_eval_bool, b );
    4344        s = set_add( &b->set, "status", NULL, set_eval_away_status, b );
  • protocols/bee.h

    r327af51 r4022b68  
    5656void bee_free( bee_t *b );
    5757
     58/* TODO(wilmer): Kill at least the OPT_ flags that have an equivalent here. */
    5859typedef enum
    5960{
    6061        BEE_USER_ONLINE = 1,    /* Compatibility with old OPT_LOGGED_IN flag */
    6162        BEE_USER_AWAY = 4,      /* Compatibility with old OPT_AWAY flag */
     63        BEE_USER_MOBILE = 8,    /* Compatibility with old OPT_MOBILE flag */
    6264        BEE_USER_LOCAL = 256,   /* Locally-added contacts (not in real contact list) */
    6365} bee_user_flags_t;
  • protocols/bee_user.c

    r327af51 r4022b68  
    195195                bu->status = NULL;
    196196       
     197        if( bu->status == NULL && ( flags & OPT_MOBILE ) &&
     198            set_getbool( &bee->set, "mobile_is_away" ) )
     199        {
     200                bu->flags |= BEE_USER_AWAY;
     201                bu->status = g_strdup( "Mobile" );
     202        }
     203       
    197204        if( bee->ui->user_status )
    198205                bee->ui->user_status( bee, bu, old );
     
    268275}
    269276
    270 void imcb_buddy_typing( struct im_connection *ic, char *handle, uint32_t flags )
     277void imcb_buddy_typing( struct im_connection *ic, const char *handle, uint32_t flags )
    271278{
    272279        bee_user_t *bu;
  • protocols/nogaim.h

    r327af51 r4022b68  
    6363#define OPT_LOGGING_OUT 0x00000002
    6464#define OPT_AWAY        0x00000004
     65#define OPT_MOBILE      0x00000008
    6566#define OPT_DOES_HTML   0x00000010
    6667#define OPT_LOCALBUDDY  0x00000020 /* For nicks local to one groupchat */
     
    312313G_MODULE_EXPORT void imcb_buddy_nick_hint( struct im_connection *ic, const char *handle, const char *nick );
    313314
    314 G_MODULE_EXPORT void imcb_buddy_typing( struct im_connection *ic, char *handle, uint32_t flags );
     315G_MODULE_EXPORT void imcb_buddy_typing( struct im_connection *ic, const char *handle, uint32_t flags );
    315316G_MODULE_EXPORT struct bee_user *imcb_buddy_by_handle( struct im_connection *ic, const char *handle );
    316317G_MODULE_EXPORT void imcb_clean_handle( struct im_connection *ic, char *handle );
  • protocols/oscar/oscar.c

    r327af51 r4022b68  
    898898                        flags |= OPT_AWAY;
    899899        }
     900       
     901        /* Maybe this should be done just for AIM contacts, not sure. */
     902        if (info->flags & AIM_FLAG_WIRELESS)
     903                flags |= OPT_MOBILE;
    900904       
    901905        if (info->present & AIM_USERINFO_PRESENT_ICQEXTSTATUS) {
  • protocols/purple/purple.c

    r327af51 r4022b68  
    427427{
    428428        PurpleTypingState state = PURPLE_NOT_TYPING;
    429         PurpleConversation *conv;
     429        PurpleAccount *pa = ic->proto_data;
    430430       
    431431        if( flags & OPT_TYPING )
     
    434434                state = PURPLE_TYPED;
    435435       
    436         if( ( conv = purple_find_conversation_with_account( PURPLE_CONV_TYPE_IM,
    437                                                             who, ic->proto_data ) ) == NULL )
    438         {
    439                 purple_conv_im_set_typing_state( purple_conversation_get_im_data( conv ), state );
    440                 return 1;
    441         }
    442         else
    443         {
    444                 return 0;
    445         }
     436        serv_send_typing( purple_account_get_connection( pa ), who, state );
     437       
     438        return 1;
    446439}
    447440
     
    807800       
    808801        imcb_buddy_msg( ic, (char*) who, (char*) message, 0, mtime );
     802}
     803
     804/* No, this is not a ui_op but a signal. */
     805static void prplcb_buddy_typing( PurpleAccount *account, const char *who, gpointer null )
     806{
     807        PurpleConversation *conv;
     808        PurpleConvIm *im;
     809        int state;
     810       
     811        if( ( conv = purple_find_conversation_with_account( PURPLE_CONV_TYPE_IM, who, account ) ) == NULL )
     812                return;
     813       
     814        im = PURPLE_CONV_IM(conv);
     815        switch( purple_conv_im_get_typing_state( im ) )
     816        {
     817        case PURPLE_TYPING:
     818                state = OPT_TYPING;
     819                break;
     820        case PURPLE_TYPED:
     821                state = OPT_THINKING;
     822                break;
     823        default:
     824                state = 0;
     825        }
     826       
     827        imcb_buddy_typing( purple_ic_by_pa( account ), who, state );
    809828}
    810829
     
    11391158        purple_prefs_load();
    11401159       
     1160        /* No, really. So far there were ui_ops for everything, but now suddenly
     1161           one needs to use signals for typing notification stuff. :-( */
     1162        purple_signal_connect( purple_conversations_get_handle(), "buddy-typing",
     1163                               &funcs, PURPLE_CALLBACK(prplcb_buddy_typing), NULL );
     1164        purple_signal_connect( purple_conversations_get_handle(), "buddy-typed",
     1165                               &funcs, PURPLE_CALLBACK(prplcb_buddy_typing), NULL );
     1166        purple_signal_connect( purple_conversations_get_handle(), "buddy-typing-stopped",
     1167                               &funcs, PURPLE_CALLBACK(prplcb_buddy_typing), NULL );
     1168       
    11411169        memset( &funcs, 0, sizeof( funcs ) );
    11421170        funcs.login = purple_login;
  • protocols/yahoo/yahoo.c

    r327af51 r4022b68  
    589589        if( away )
    590590                flags |= OPT_AWAY;
     591        if( mobile )
     592                flags |= OPT_MOBILE;
    591593       
    592594        switch (stat)
Note: See TracChangeset for help on using the changeset viewer.