summaryrefslogtreecommitdiff
path: root/gabble
diff options
context:
space:
mode:
authorSenko Rasic <senko.rasic@collabora.co.uk>2010-08-20 11:33:37 +0200
committerSenko Rasic <senko.rasic@collabora.co.uk>2010-08-26 11:15:08 +0200
commitfb5918c26e65d399b6cdc8458e46bbcaabc95e34 (patch)
tree215be39e8f925d46d1004c8d672752af0798b8f0 /gabble
parent4c7d9f2f611fa937e90c8c063ef649d9d44562d3 (diff)
plugin(-loader).[ch]: support for adding custom statuses and linking them with privacy lists
Diffstat (limited to 'gabble')
-rw-r--r--gabble/plugin.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/gabble/plugin.h b/gabble/plugin.h
index 5fc2c3bfc..f5adf75b2 100644
--- a/gabble/plugin.h
+++ b/gabble/plugin.h
@@ -25,6 +25,7 @@
#include <gio/gio.h>
#include <telepathy-glib/base-connection.h>
+#include <telepathy-glib/presence-mixin.h>
#include <wocky/wocky-session.h>
#include <gabble/connection.h>
@@ -52,6 +53,12 @@ typedef void (*GabblePluginCreateSidecarImpl) (
GAsyncReadyCallback callback,
gpointer user_data);
+struct _GabblePluginPrivacyListMap {
+ const gchar *presence_status_name;
+ const gchar *privacy_list_name;
+};
+typedef struct _GabblePluginPrivacyListMap GabblePluginPrivacyListMap;
+
struct _GabblePluginInterface {
GTypeInterface parent;
@@ -76,6 +83,16 @@ struct _GabblePluginInterface {
* numbers.
*/
const gchar *version;
+
+ /**
+ * Additional custom statuses supported by the plugin.
+ */
+ TpPresenceStatusSpec *presence_statuses;
+
+ /**
+ * Privacy lists implementing specific statuses
+ */
+ GabblePluginPrivacyListMap *privacy_list_map;
};
GType gabble_plugin_get_type (void);
@@ -104,6 +121,17 @@ GabbleSidecar *gabble_plugin_create_sidecar_finish (
GAsyncResult *result,
GError **error);
+GList *gabble_plugin_get_custom_presence_statuses (
+ GabblePlugin *plugin);
+
+gboolean gabble_plugin_implements_presence_status (
+ GabblePlugin *plugin,
+ const gchar *status);
+
+const gchar *gabble_plugin_presence_status_for_privacy_list (
+ GabblePlugin *plugin,
+ const gchar *list_name);
+
/**
* gabble_plugin_create:
*