Changeset 23411c6 for skype/skype.c


Ignore:
Timestamp:
2007-08-20T22:00:16Z (17 years ago)
Author:
VMiklos <vmiklos@…>
Branches:
master
Children:
98bca36
Parents:
f78f949
Message:

implement skype_set_away()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • skype/skype.c

    rf78f949 r23411c6  
    4040        { "DND",      "Do Not Disturb" },
    4141        { "INVISIBLE",      "Invisible" },
    42         { "OFFLINE",      "Offline" }
     42        { "OFFLINE",      "Offline" },
     43        { NULL, NULL}
    4344};
    4445
     
    258259}
    259260
     261const struct skype_away_state *skype_away_state_by_name( char *name )
     262{
     263        int i;
     264
     265        for( i = 0; skype_away_state_list[i].full_name; i ++ )
     266                if( g_strcasecmp( skype_away_state_list[i].full_name, name ) == 0 )
     267                        return( skype_away_state_list + i );
     268
     269        return NULL;
     270}
     271
    260272static void skype_set_away( struct im_connection *ic, char *state_txt, char *message )
    261273{
     274        const struct skype_away_state *state;
     275        char *buf;
     276
     277        if( strcmp( state_txt, GAIM_AWAY_CUSTOM ) == 0 )
     278                state = skype_away_state_by_name( "Away" );
     279        else
     280                state = skype_away_state_by_name( state_txt );
     281        printf("would set to: '%s'\n", state->code);
     282        buf = g_strdup_printf("SET USERSTATUS %s\n", state->code);
     283        skype_write( ic, buf, strlen( buf ) );
     284        g_free(buf);
    262285}
    263286
    264287static GList *skype_away_states( struct im_connection *ic )
    265288{
    266         static GList *l = NULL;
     289        GList *l = NULL;
    267290        int i;
    268291       
    269         if( l == NULL )
    270                 for( i = 0; skype_away_state_list[i].full_name; i ++ )
    271                         l = g_list_append( l, (void*) skype_away_state_list[i].full_name );
     292        for( i = 0; skype_away_state_list[i].full_name; i ++ )
     293                l = g_list_append( l, (void*) skype_away_state_list[i].full_name );
    272294       
    273295        return l;
     
    315337        ret->add_buddy = skype_add_buddy;
    316338        ret->remove_buddy = skype_remove_buddy;
    317         ret->away_states = skype_away_states;
    318         ret->set_away = skype_set_away;
    319339        ret->handle_cmp = g_strcasecmp;
    320340        register_protocol( ret );
Note: See TracChangeset for help on using the changeset viewer.