libpurple/dbus-useful.c

Thu, 20 Sep 2007 16:30:17 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Thu, 20 Sep 2007 16:30:17 +0000
branch
sadrul.currentmedia
changeset 21193
e918a1846d03
parent 15884
4de1981757fc
child 16238
33bf2fd32108
child 18068
b6554e3c8224
child 18121
2d8ea56b9097
child 20478
46933dc62880
child 32438
dc8991868906
child 38259
c593fc9f5438
permissions
-rw-r--r--

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.

11187
27beea38898f [gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11146
diff changeset
1 #include <string.h>
27beea38898f [gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11146
diff changeset
2 #include <glib.h>
27beea38898f [gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11146
diff changeset
3
11331
6e06ed40a312 [gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11187
diff changeset
4 #include "dbus-useful.h"
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
5 #include "conversation.h"
11187
27beea38898f [gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11146
diff changeset
6 #include "util.h"
27beea38898f [gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11146
diff changeset
7
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
8
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
9 PurpleAccount *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
10 purple_accounts_find_ext(const char *name, const char *protocol_id,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
11 gboolean (*account_test)(const PurpleAccount *account))
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
12 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
13 PurpleAccount *result = NULL;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
14 GList *l;
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
15 char *who;
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
16
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
17 if (name)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
18 who = g_strdup(purple_normalize(NULL, name));
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
19 else
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
20 who = NULL;
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
21
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
22 for (l = purple_accounts_get_all(); l != NULL; l = l->next) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
23 PurpleAccount *account = (PurpleAccount *)l->data;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
24
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
25 if (who && strcmp(purple_normalize(NULL, purple_account_get_username(account)), who))
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
26 continue;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
27
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
28 if (protocol_id && strcmp(account->protocol_id, protocol_id))
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
29 continue;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
30
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
31 if (account_test && !account_test(account))
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
32 continue;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
33
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
34 result = account;
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
35 break;
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
36 }
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
37
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
38 g_free(who);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
39
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11903
diff changeset
40 return result;
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
41 }
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
42
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
43 PurpleAccount *purple_accounts_find_any(const char *name, const char *protocol)
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
44 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
45 return purple_accounts_find_ext(name, protocol, NULL);
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
46 }
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
47
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
48 PurpleAccount *purple_accounts_find_connected(const char *name, const char *protocol)
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
49 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
50 return purple_accounts_find_ext(name, protocol, purple_account_is_connected);
11146
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
51 }
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
52
c56333373e3c [gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff changeset
53

mercurial