Mercurial > pidgin.yaz
annotate libpurple/protocols/jabber/usertune.c @ 20016:2644267a6fb1
A couple more things for the ChangeLog
author | Kevin Stange <kevin@simguy.net> |
---|---|
date | Fri, 14 Sep 2007 06:20:12 +0000 |
parents | ab38146f8f78 |
children | 5103485b4b26 |
rev | line source |
---|---|
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
1 /* |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
2 * purple - Jabber Protocol Plugin |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
3 * |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
4 * Copyright (C) 2007, Andreas Monitzer <andy@monitzer.com> |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
5 * |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
6 * This program is free software; you can redistribute it and/or modify |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
7 * it under the terms of the GNU General Public License as published by |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
8 * the Free Software Foundation; either version 2 of the License, or |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
9 * (at your option) any later version. |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
10 * |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
11 * This program is distributed in the hope that it will be useful, |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
14 * GNU General Public License for more details. |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
15 * |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
16 * You should have received a copy of the GNU General Public License |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
17 * along with this program; if not, write to the Free Software |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
19 * |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
20 */ |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
21 |
19697
d32ed28cf645
Fix mingw build of xmpp prpl
Daniel Atallah <daniel.atallah@gmail.com>
parents:
17596
diff
changeset
|
22 #include "internal.h" |
d32ed28cf645
Fix mingw build of xmpp prpl
Daniel Atallah <daniel.atallah@gmail.com>
parents:
17596
diff
changeset
|
23 |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
24 #include "usertune.h" |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
25 #include "pep.h" |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
26 #include <string.h> |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
27 #include "internal.h" |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
28 #include "request.h" |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
29 #include "status.h" |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
30 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
31 static void jabber_tune_cb(JabberStream *js, const char *from, xmlnode *items) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
32 /* it doesn't make sense to have more than one item here, so let's just pick the first one */ |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
33 xmlnode *item = xmlnode_get_child(items, "item"); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
34 JabberBuddy *buddy = jabber_buddy_find(js, from, FALSE); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
35 xmlnode *tuneinfo, *tune; |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
36 PurpleJabberTuneInfo tuneinfodata; |
17595
6820304c215f
Removed some C99-code
Andreas Monitzer <pidgin@monitzer.com>
parents:
17593
diff
changeset
|
37 JabberBuddyResource *resource; |
6820304c215f
Removed some C99-code
Andreas Monitzer <pidgin@monitzer.com>
parents:
17593
diff
changeset
|
38 const char *status_id; |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
39 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
40 /* ignore the tune of people not on our buddy list */ |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
41 if (!buddy || !item) |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
42 return; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
43 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
44 tuneinfodata.artist = ""; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
45 tuneinfodata.title = ""; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
46 tuneinfodata.album = ""; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
47 tuneinfodata.track = ""; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
48 tuneinfodata.time = -1; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
49 tuneinfodata.url = ""; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
50 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
51 tune = xmlnode_get_child_with_namespace(item, "tune", "http://jabber.org/protocol/tune"); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
52 if (!tune) |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
53 return; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
54 for (tuneinfo = tune->child; tuneinfo; tuneinfo = tuneinfo->next) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
55 if (tuneinfo->type == XMLNODE_TYPE_TAG) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
56 if (!strcmp(tuneinfo->name, "artist")) { |
17590
60c8535afc33
Fixed embarrassing typos. Maybe I shouldn't code while half asleep.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17587
diff
changeset
|
57 if (tuneinfodata.artist[0] == '\0') /* only pick the first one */ |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
58 tuneinfodata.artist = xmlnode_get_data(tuneinfo); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
59 } else if (!strcmp(tuneinfo->name, "length")) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
60 if (tuneinfodata.time == -1) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
61 char *length = xmlnode_get_data(tuneinfo); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
62 if (length) |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
63 tuneinfodata.time = strtol(length, NULL, 10); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
64 } |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
65 } else if (!strcmp(tuneinfo->name, "source")) { |
17590
60c8535afc33
Fixed embarrassing typos. Maybe I shouldn't code while half asleep.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17587
diff
changeset
|
66 if (tuneinfodata.album[0] == '\0') /* only pick the first one */ |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
67 tuneinfodata.album = xmlnode_get_data(tuneinfo); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
68 } else if (!strcmp(tuneinfo->name, "title")) { |
17590
60c8535afc33
Fixed embarrassing typos. Maybe I shouldn't code while half asleep.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17587
diff
changeset
|
69 if (tuneinfodata.title[0] == '\0') /* only pick the first one */ |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
70 tuneinfodata.title = xmlnode_get_data(tuneinfo); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
71 } else if (!strcmp(tuneinfo->name, "track")) { |
17590
60c8535afc33
Fixed embarrassing typos. Maybe I shouldn't code while half asleep.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17587
diff
changeset
|
72 if (tuneinfodata.track[0] == '\0') /* only pick the first one */ |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
73 tuneinfodata.track = xmlnode_get_data(tuneinfo); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
74 } else if (!strcmp(tuneinfo->name, "uri")) { |
17590
60c8535afc33
Fixed embarrassing typos. Maybe I shouldn't code while half asleep.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17587
diff
changeset
|
75 if (tuneinfodata.url[0] == '\0') /* only pick the first one */ |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
76 tuneinfodata.url = xmlnode_get_data(tuneinfo); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
77 } |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
78 } |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
79 } |
17595
6820304c215f
Removed some C99-code
Andreas Monitzer <pidgin@monitzer.com>
parents:
17593
diff
changeset
|
80 resource = jabber_buddy_find_resource(buddy, NULL); |
17596
6842cc73b1b7
Implemented XEP-0172: User Nickname, fixed some potential crashers in the other PEP callbacks.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17595
diff
changeset
|
81 if(!resource) |
6842cc73b1b7
Implemented XEP-0172: User Nickname, fixed some potential crashers in the other PEP callbacks.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17595
diff
changeset
|
82 return; /* huh? */ |
17595
6820304c215f
Removed some C99-code
Andreas Monitzer <pidgin@monitzer.com>
parents:
17593
diff
changeset
|
83 status_id = jabber_buddy_state_get_status_id(resource->state); |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
84 |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
85 purple_prpl_got_user_status(js->gc->account, from, status_id, PURPLE_TUNE_ARTIST, tuneinfodata.artist, PURPLE_TUNE_TITLE, tuneinfodata.title, PURPLE_TUNE_ALBUM, tuneinfodata.album, PURPLE_TUNE_TRACK, tuneinfodata.track, PURPLE_TUNE_TIME, tuneinfodata.time, PURPLE_TUNE_URL, tuneinfodata.url, NULL); |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
86 } |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
87 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
88 void jabber_tune_init(void) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
89 jabber_add_feature("tune", "http://jabber.org/protocol/tune", jabber_pep_namespace_only_when_pep_enabled_cb); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
90 jabber_pep_register_handler("tunen", "http://jabber.org/protocol/tune", jabber_tune_cb); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
91 } |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
92 |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
93 void jabber_tune_set(PurpleConnection *gc, const PurpleJabberTuneInfo *tuneinfo) { |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
94 xmlnode *publish, *tunenode; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
95 JabberStream *js = gc->proto_data; |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
96 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
97 publish = xmlnode_new("publish"); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
98 xmlnode_set_attrib(publish,"node","http://jabber.org/protocol/tune"); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
99 tunenode = xmlnode_new_child(xmlnode_new_child(publish, "item"), "tune"); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
100 xmlnode_set_namespace(tunenode, "http://jabber.org/protocol/tune"); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
101 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
102 if(tuneinfo) { |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
103 if(tuneinfo->artist && tuneinfo->artist[0] != '\0') |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
104 xmlnode_insert_data(xmlnode_new_child(tunenode, "artist"),tuneinfo->artist,-1); |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
105 if(tuneinfo->title && tuneinfo->title[0] != '\0') |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
106 xmlnode_insert_data(xmlnode_new_child(tunenode, "title"),tuneinfo->title,-1); |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
107 if(tuneinfo->album && tuneinfo->album[0] != '\0') |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
108 xmlnode_insert_data(xmlnode_new_child(tunenode, "source"),tuneinfo->album,-1); |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
109 if(tuneinfo->url && tuneinfo->url[0] != '\0') |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
110 xmlnode_insert_data(xmlnode_new_child(tunenode, "uri"),tuneinfo->url,-1); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
111 if(tuneinfo->time >= 0) { |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
112 char *length = g_strdup_printf("%d", tuneinfo->time); |
17587
84638e3af1bc
Minor compilation fixes and corrected some typos on user tune. Added convenience function for setting the user tune.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17584
diff
changeset
|
113 xmlnode_insert_data(xmlnode_new_child(tunenode, "length"),length,-1); |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
114 g_free(length); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
115 } |
17593
759cd72bd2ff
Replaced a clean and simple API with a very weird hack due to vivid request on #pidgin by multiple devs. This avoids the change in PurplePluginProtocolInfo, but requires complicated change tracking in every prpl. The others prpl should add this change tracking, too (since otherwise the status gets changed even though nothing they care about changed), but that's not up to me.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17590
diff
changeset
|
116 if(tuneinfo->track && tuneinfo->track[0] != '\0') |
17584
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
117 xmlnode_insert_data(xmlnode_new_child(tunenode, "track"),tuneinfo->track,-1); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
118 } |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
119 |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
120 jabber_pep_publish(js, publish); |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
121 /* publish is freed by jabber_pep_publish -> jabber_iq_send -> jabber_iq_free |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
122 (yay for well-defined memory management rules) */ |
3e437e86bd6e
Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
diff
changeset
|
123 } |