diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2008-01-10 17:10:10 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@frugalware.org> | 2008-01-10 17:10:10 +0100 |
commit | 93dffeafa371bc2384dd13229d15fc31fab62d00 (patch) | |
tree | cc0965b882757df7b975b023fc24623022607974 | |
parent | 61728715f9701af2a516f24fee50a379aca0eb6f (diff) |
new skype_set_display_name() function
- this adds support for setting display_name
- also add support for the deprecated nick command in skype_set_my_name()
-rw-r--r-- | skype/skype.c | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/skype/skype.c b/skype/skype.c index 804803d0..4e7c13ba 100644 --- a/skype/skype.c +++ b/skype/skype.c @@ -132,17 +132,6 @@ const struct skype_away_state skype_away_state_list[] = * Functions */ -static void skype_init( account_t *acc ) -{ - set_t *s; - - s = set_add( &acc->set, "server", SKYPE_DEFAULT_SERVER, set_eval_account, acc ); - s->flags |= ACC_SET_OFFLINE_ONLY; - - s = set_add( &acc->set, "port", SKYPE_DEFAULT_PORT, set_eval_int, acc ); - s->flags |= ACC_SET_OFFLINE_ONLY; -} - int skype_write( struct im_connection *ic, char *buf, int len ) { struct skype_data *sd = ic->proto_data; @@ -859,6 +848,19 @@ static GList *skype_away_states( struct im_connection *ic ) return l; } +static char *skype_set_display_name( set_t *set, char *value ) +{ + account_t *acc = set->data; + struct im_connection *ic = acc->ic; + //struct skype_data *sd = ic->proto_data; + char *buf; + + buf = g_strdup_printf("SET PROFILE MOOD_TEXT %s", value); + skype_write( ic, buf, strlen( buf ) ); + g_free(buf); + return(value); +} + static void skype_add_buddy( struct im_connection *ic, char *who, char *group ) { char *buf, *nick, *ptr; @@ -1001,6 +1003,25 @@ static void skype_get_info(struct im_connection *ic, char *who) g_free(buf); } +static void skype_set_my_name( struct im_connection *ic, char *info ) +{ + skype_set_display_name( set_find( &ic->acc->set, "display_name" ), info ); +} + +static void skype_init( account_t *acc ) +{ + set_t *s; + + s = set_add( &acc->set, "server", SKYPE_DEFAULT_SERVER, set_eval_account, acc ); + s->flags |= ACC_SET_OFFLINE_ONLY; + + s = set_add( &acc->set, "port", SKYPE_DEFAULT_PORT, set_eval_int, acc ); + s->flags |= ACC_SET_OFFLINE_ONLY; + + s = set_add( &acc->set, "display_name", NULL, skype_set_display_name, acc ); + s->flags |= ACC_SET_NOSAVE | ACC_SET_ONLINE_ONLY; +} + void init_plugin(void) { struct prpl *ret = g_new0( struct prpl, 1 ); @@ -1011,6 +1032,7 @@ void init_plugin(void) ret->logout = skype_logout; ret->buddy_msg = skype_buddy_msg; ret->get_info = skype_get_info; + ret->set_my_name = skype_set_my_name; ret->away_states = skype_away_states; ret->set_away = skype_set_away; ret->add_buddy = skype_add_buddy; |