comparison libpurple/protocols/msn/user.c @ 24510:e344426d7c28

Add the Games and Office media to MSN as attributes tacked on to the tune status, as suggested by rlaager. Should probably generalize "tune" into "media" for 3.0. Also, updates the status text to include the album, if it's available. Fixes #4872.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Mon, 24 Nov 2008 05:51:18 +0000
parents 169c1451b7e5
children 4fd22591e3f0 367b3ddcf5c3
comparison
equal deleted inserted replaced
24509:1ee0ded8926b 24510:e344426d7c28
104 104
105 if (!offline || !user->mobile) { 105 if (!offline || !user->mobile) {
106 purple_prpl_got_user_status_deactive(account, user->passport, "mobile"); 106 purple_prpl_got_user_status_deactive(account, user->passport, "mobile");
107 } 107 }
108 108
109 if (!offline && user->media.title) { 109 if (!offline && user->media.type != CURRENT_MEDIA_UNKNOWN) {
110 purple_prpl_got_user_status(account, user->passport, "tune", 110 if (user->media.type == CURRENT_MEDIA_MUSIC) {
111 PURPLE_TUNE_ARTIST, user->media.artist, 111 purple_prpl_got_user_status(account, user->passport, "tune",
112 PURPLE_TUNE_ALBUM, user->media.album, 112 PURPLE_TUNE_ARTIST, user->media.artist,
113 PURPLE_TUNE_TITLE, user->media.title, 113 PURPLE_TUNE_ALBUM, user->media.album,
114 NULL); 114 PURPLE_TUNE_TITLE, user->media.title,
115 NULL);
116 } else if (user->media.type == CURRENT_MEDIA_GAMES) {
117 purple_prpl_got_user_status(account, user->passport, "tune",
118 "game", user->media.title,
119 NULL);
120 } else if (user->media.type == CURRENT_MEDIA_OFFICE) {
121 purple_prpl_got_user_status(account, user->passport, "tune",
122 "office", user->media.title,
123 NULL);
124 } else {
125 purple_debug_warning("msn", "Got CurrentMedia with unknown type %d.\n",
126 user->media.type);
127 }
115 } else { 128 } else {
116 purple_prpl_got_user_status_deactive(account, user->passport, "tune"); 129 purple_prpl_got_user_status_deactive(account, user->passport, "tune");
117 } 130 }
118 131
119 if (user->idle) 132 if (user->idle)
189 202
190 g_free(user->media.title); 203 g_free(user->media.title);
191 g_free(user->media.album); 204 g_free(user->media.album);
192 g_free(user->media.artist); 205 g_free(user->media.artist);
193 206
207 user->media.type = media ? media->type : CURRENT_MEDIA_UNKNOWN;
194 user->media.title = media ? g_strdup(media->title) : NULL; 208 user->media.title = media ? g_strdup(media->title) : NULL;
195 user->media.artist = media ? g_strdup(media->artist) : NULL; 209 user->media.artist = media ? g_strdup(media->artist) : NULL;
196 user->media.album = media ? g_strdup(media->album) : NULL; 210 user->media.album = media ? g_strdup(media->album) : NULL;
197 } 211 }
198 212