Sat, 02 Jun 2007 03:46:40 +0000
A patch from QuLogic to fix a bug with a zero timestamp for unidle notices
in the system log.
I've changed the patch to keep the current behavior for idle notices (i.e.
to show the time when the buddy originally went idle).
Fixes #1282
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
1 | /** |
| 15884 | 2 | * @file dbus-bindings.h Purple DBUS Bindings |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
3 | * @ingroup core |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
4 | * |
| 15884 | 5 | * purple |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
6 | * |
| 15884 | 7 | * Purple is the legal property of its developers, whose names are too numerous |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
8 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
9 | * source distribution. |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
10 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
11 | * This program is free software; you can redistribute it and/or modify |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
12 | * it under the terms of the GNU General Public License as published by |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
13 | * the Free Software Foundation; either version 2 of the License, or |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
14 | * (at your option) any later version. |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
15 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
16 | * This program is distributed in the hope that it will be useful, |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
19 | * GNU General Public License for more details. |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
20 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
21 | * You should have received a copy of the GNU General Public License |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
22 | * along with this program; if not, write to the Free Software |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
24 | * |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
25 | */ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
26 | |
| 15884 | 27 | #ifndef _PURPLE_DBUS_BINDINGS_H_ |
| 28 | #define _PURPLE_DBUS_BINDINGS_H_ | |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
29 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
30 | #include <dbus/dbus.h> |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
31 | #include <dbus/dbus-glib-lowlevel.h> |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
32 | #include <glib.h> |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
33 | |
|
11884
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
34 | #ifdef __cplusplus |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
35 | extern "C" { |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
36 | #endif |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
37 | |
|
17513
643f813446c6
A patch from QuLogic to fix a bug with a zero timestamp for unidle notices
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
38 | gint purple_dbus_pointer_to_id(gconstpointer node); |
| 15884 | 39 | gpointer purple_dbus_id_to_pointer(gint id, PurpleDBusType *type); |
|
17513
643f813446c6
A patch from QuLogic to fix a bug with a zero timestamp for unidle notices
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
40 | gint purple_dbus_pointer_to_id_error(gconstpointer ptr, DBusError *error); |
| 15884 | 41 | gpointer purple_dbus_id_to_pointer_error(gint id, PurpleDBusType *type, |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
42 | const char *typename, DBusError *error); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
43 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
44 | #define NULLIFY(id) id = empty_to_null(id) |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
45 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
46 | #define CHECK_ERROR(error) if (dbus_error_is_set(error)) return NULL; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
47 | |
| 15884 | 48 | #define PURPLE_DBUS_ID_TO_POINTER(ptr, id, type, error) \ |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
49 | G_STMT_START { \ |
| 15884 | 50 | ptr = (type*) purple_dbus_id_to_pointer_error \ |
| 51 | (id, PURPLE_DBUS_TYPE(type), #type, error); \ | |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
52 | CHECK_ERROR(error); \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
53 | } G_STMT_END |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
54 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
55 | |
| 15884 | 56 | #define PURPLE_DBUS_POINTER_TO_ID(id, ptr, error) \ |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
57 | G_STMT_START { \ |
| 15884 | 58 | id = purple_dbus_pointer_to_id_error(ptr,error); \ |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
59 | CHECK_ERROR(error); \ |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
60 | } G_STMT_END |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
61 | |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
62 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
63 | dbus_bool_t |
| 15884 | 64 | purple_dbus_message_get_args (DBusMessage *message, |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
65 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
66 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
67 | ...); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
68 | dbus_bool_t |
| 15884 | 69 | purple_dbus_message_get_args_valist (DBusMessage *message, |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
70 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
71 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
72 | va_list var_args); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
73 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
74 | dbus_bool_t |
| 15884 | 75 | purple_dbus_message_iter_get_args (DBusMessageIter *iter, |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
76 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
77 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
78 | ...); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
79 | |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
80 | dbus_bool_t |
| 15884 | 81 | purple_dbus_message_iter_get_args_valist (DBusMessageIter *iter, |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
82 | DBusError *error, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
83 | int first_arg_type, |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
84 | va_list var_args); |
|
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
85 | |
| 15884 | 86 | dbus_int32_t* purple_dbusify_GList(GList *list, gboolean free_memory, |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
87 | dbus_int32_t *len); |
| 15884 | 88 | dbus_int32_t* purple_dbusify_GSList(GSList *list, gboolean free_memory, |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
89 | dbus_int32_t *len); |
| 15884 | 90 | gpointer* purple_GList_to_array(GList *list, gboolean free_memory, |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
91 | dbus_int32_t *len); |
| 15884 | 92 | gpointer* purple_GSList_to_array(GSList *list, gboolean free_memory, |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
93 | dbus_int32_t *len); |
| 15884 | 94 | GHashTable *purple_dbus_iter_hash_table(DBusMessageIter *iter, DBusError *error); |
|
11187
27beea38898f
[gaim-migrate @ 13303]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11174
diff
changeset
|
95 | |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
96 | const char* empty_to_null(const char *str); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
97 | const char* null_to_empty(const char *s); |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
98 | |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
99 | typedef struct { |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
100 | const char *name; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
101 | const char *parameters; |
|
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
102 | DBusMessage* (*handler)(DBusMessage *request, DBusError *error); |
| 15884 | 103 | } PurpleDBusBinding; |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
104 | |
| 15884 | 105 | void purple_dbus_register_bindings(void *handle, PurpleDBusBinding *bindings); |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
106 | |
| 15884 | 107 | DBusConnection *purple_dbus_get_connection(void); |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
108 | |
|
11884
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
109 | #ifdef __cplusplus |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
110 | } |
|
11174
513d5e6e7f7e
[gaim-migrate @ 13279]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
111 | #endif |
|
11884
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
112 | |
|
44f2000e6d64
[gaim-migrate @ 14175]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11501
diff
changeset
|
113 | #endif |