libpurple/protocols/jabber/data.h

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 26703
17f9a4bef2a3
child 27422
e073924c74db
child 28321
c8d617c408ab
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
1 /*
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
2 * This program is free software; you can redistribute it and/or modify
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
3 * it under the terms of the GNU General Public License as published by
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
4 * the Free Software Foundation; either version 2 of the License, or
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
5 * (at your option) any later version.
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24386
diff changeset
6 *
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
7 * This program is distributed in the hope that it will be useful,
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
10 * GNU Library General Public License for more details.
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24386
diff changeset
11 *
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
12 * You should have received a copy of the GNU General Public License
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
13 * along with this program; if not, write to the Free Software
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
15 */
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24386
diff changeset
16
26703
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 26088
diff changeset
17 #ifndef PURPLE_JABBER_DATA_H
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 26088
diff changeset
18 #define PURPLE_JABBER_DATA_H
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
19
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
20 #include "xmlnode.h"
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
21 #include "jabber.h"
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
22
24254
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
23 #define XEP_0231_NAMESPACE "urn:xmpp:bob"
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
24
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
25 #include <glib.h>
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
26
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
27 typedef struct {
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
28 char *cid;
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
29 char *type;
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
30 gsize size;
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
31 gpointer data;
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
32 } JabberData;
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
33
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
34 /* creates a JabberData instance from raw data */
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
35 JabberData *jabber_data_create_from_data(gconstpointer data, gsize size,
24254
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
36 const char *type, JabberStream *js);
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
37
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
38 /* create a JabberData instance from an XML "data" element (as defined by
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
39 XEP 0231 */
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
40 JabberData *jabber_data_create_from_xml(xmlnode *tag);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
41
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
42 const char *jabber_data_get_cid(const JabberData *data);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
43 const char *jabber_data_get_type(const JabberData *data);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
44
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
45 gsize jabber_data_get_size(const JabberData *data);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
46 gpointer jabber_data_get_data(const JabberData *data);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
47
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
48 /* returns the XML definition for the data element */
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
49 xmlnode *jabber_data_get_xml_definition(const JabberData *data);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
50
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
51 /* returns an XHTML-IM "img" tag given a data instance */
24254
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
52 xmlnode *jabber_data_get_xhtml_im(const JabberData *data, const gchar *alt);
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
53
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
54 /* returns a data request element (to be included in an iq stanza) for requesting
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
55 data */
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
56 xmlnode *jabber_data_get_xml_request(const gchar *cid);
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
57
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
58 /* lookup functions */
24254
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
59 const JabberData *jabber_data_find_local_by_alt(const gchar *alt);
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
60 const JabberData *jabber_data_find_local_by_cid(const gchar *cid);
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
61 const JabberData *jabber_data_find_remote_by_cid(const gchar *cid);
24386
0710eb7a41c5 A couple of compile warning fixes, a couple of memory leak plugs.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24255
diff changeset
62
24254
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
63 /* store data objects */
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
64 void jabber_data_associate_local(JabberData *data, const gchar *alt);
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
65 void jabber_data_associate_remote(JabberData *data);
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
66
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
67 /* handles iq requests */
25817
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25566
diff changeset
68 void jabber_data_parse(JabberStream *js, const char *who, JabberIqType type,
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25566
diff changeset
69 const char *id, xmlnode *data_node);
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
70
24254
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
71 void jabber_data_init(void);
2d990726bf92 Updated to use latest spec. in XEP-0231
Marcus Lundblad <malu@pidgin.im>
parents: 23629
diff changeset
72 void jabber_data_uninit(void);
23629
05adde07702c New files used for custom smileys.
Marcus Lundblad <malu@pidgin.im>
parents:
diff changeset
73
26703
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 26088
diff changeset
74 #endif /* PURPLE_JABBER_DATA_H */

mercurial