Thu, 20 Sep 2007 16:30:17 +0000
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 | 9 | PurpleAccount * |
| 10 | purple_accounts_find_ext(const char *name, const char *protocol_id, | |
| 11 | gboolean (*account_test)(const PurpleAccount *account)) | |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
12 | { |
| 15884 | 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 | 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 | 22 | for (l = purple_accounts_get_all(); l != NULL; l = l->next) { |
| 23 | PurpleAccount *account = (PurpleAccount *)l->data; | |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
24 | |
| 15884 | 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 | 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 | 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 | 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 | 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 |