diff options
author | Senko Rasic <senko.rasic@collabora.co.uk> | 2010-08-20 11:33:37 +0200 |
---|---|---|
committer | Senko Rasic <senko.rasic@collabora.co.uk> | 2010-08-26 11:15:08 +0200 |
commit | fb5918c26e65d399b6cdc8458e46bbcaabc95e34 (patch) | |
tree | 215be39e8f925d46d1004c8d672752af0798b8f0 /gabble | |
parent | 4c7d9f2f611fa937e90c8c063ef649d9d44562d3 (diff) |
plugin(-loader).[ch]: support for adding custom statuses and linking them with privacy lists
Diffstat (limited to 'gabble')
-rw-r--r-- | gabble/plugin.h | 28 |
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: * |