Mercurial > pidgin
comparison libpurple/protocols/jabber/presence.c @ 20570:5913725cbcd6
Use an independant status type for 'current media' stuff, instead of using
status attributes. This includes changes in both xmpp and msn.
Also, in MSN, CurrentMedia is sent with PSM if you turn on the status and
set the attributes on the account.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Thu, 20 Sep 2007 16:30:17 +0000 |
parents | 5103485b4b26 |
children | c97e3ab9ef11 |
comparison
equal
deleted
inserted
replaced
20569:7393ee28c819 | 20570:5913725cbcd6 |
---|---|
102 int primitive; | 102 int primitive; |
103 xmlnode *presence, *x, *photo; | 103 xmlnode *presence, *x, *photo; |
104 char *stripped = NULL; | 104 char *stripped = NULL; |
105 JabberBuddyState state; | 105 JabberBuddyState state; |
106 int priority; | 106 int priority; |
107 const char *artist, *title, *source, *uri, *track; | 107 const char *artist = NULL, *title = NULL, *source = NULL, *uri = NULL, *track = NULL; |
108 int length; | 108 int length = -1; |
109 gboolean allowBuzz; | 109 gboolean allowBuzz; |
110 PurpleStatus *tune; | |
110 | 111 |
111 if(NULL == status) { | 112 if(NULL == status) { |
112 PurplePresence *gpresence = purple_account_get_presence(account); | 113 PurplePresence *gpresence = purple_account_get_presence(account); |
113 status = purple_presence_get_active_status(gpresence); | 114 status = purple_presence_get_active_status(gpresence); |
114 } | 115 } |
170 js->old_priority = priority; | 171 js->old_priority = priority; |
171 g_free(stripped); | 172 g_free(stripped); |
172 } | 173 } |
173 | 174 |
174 /* next, check if there are any changes to the tune values */ | 175 /* next, check if there are any changes to the tune values */ |
175 artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST); | 176 tune = purple_presence_get_status(purple_status_get_presence(status), "tune"); |
176 title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE); | 177 if (tune && purple_status_is_active(tune)) { |
177 source = purple_status_get_attr_string(status, PURPLE_TUNE_ALBUM); | 178 artist = purple_status_get_attr_string(tune, PURPLE_TUNE_ARTIST); |
178 uri = purple_status_get_attr_string(status, PURPLE_TUNE_URL); | 179 title = purple_status_get_attr_string(tune, PURPLE_TUNE_TITLE); |
179 track = purple_status_get_attr_string(status, PURPLE_TUNE_TRACK); | 180 source = purple_status_get_attr_string(tune, PURPLE_TUNE_ALBUM); |
180 length = (!purple_status_get_attr_value(status, PURPLE_TUNE_TIME))?-1:purple_status_get_attr_int(status, PURPLE_TUNE_TIME); | 181 uri = purple_status_get_attr_string(tune, PURPLE_TUNE_URL); |
182 track = purple_status_get_attr_string(tune, PURPLE_TUNE_TRACK); | |
183 length = (!purple_status_get_attr_value(tune, PURPLE_TUNE_TIME)) ? -1 : | |
184 purple_status_get_attr_int(tune, PURPLE_TUNE_TIME); | |
185 } | |
181 | 186 |
182 if(CHANGED(artist, js->old_artist) || CHANGED(title, js->old_title) || CHANGED(source, js->old_source) || | 187 if(CHANGED(artist, js->old_artist) || CHANGED(title, js->old_title) || CHANGED(source, js->old_source) || |
183 CHANGED(uri, js->old_uri) || CHANGED(track, js->old_track) || (length != js->old_length)) { | 188 CHANGED(uri, js->old_uri) || CHANGED(track, js->old_track) || (length != js->old_length)) { |
184 PurpleJabberTuneInfo tuneinfo = { | 189 PurpleJabberTuneInfo tuneinfo = { |
185 (char*)artist, | 190 (char*)artist, |