X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=libempathy%2Fempathy-contact.h;h=8b89b39842299fcd3400dee0e61648d16e588932;hp=02c252d6e1d63da7f697315df65f7aab2c41fcac;hb=56337470e94a98a963e978d8b8f97f311cc817b7;hpb=ba02e026e2dc5a87bf13047a2de1b132fb5044dc diff --git a/libempathy/empathy-contact.h b/libempathy/empathy-contact.h index 02c252d6..8b89b398 100644 --- a/libempathy/empathy-contact.h +++ b/libempathy/empathy-contact.h @@ -1,22 +1,20 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Copyright (C) 2004 Imendio AB - * Copyright (C) 2007 Collabora Ltd. + * Copyright (C) 2007-2009 Collabora Ltd. * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Authors: Mikael Hallendal * Martyn Russell @@ -28,10 +26,8 @@ #include +#include #include -#include - -#include "empathy-avatar.h" G_BEGIN_DECLS @@ -45,62 +41,84 @@ G_BEGIN_DECLS typedef struct _EmpathyContact EmpathyContact; typedef struct _EmpathyContactClass EmpathyContactClass; -struct _EmpathyContact { - GObject parent; +struct _EmpathyContact +{ + GObject parent; + gpointer priv; }; -struct _EmpathyContactClass { - GObjectClass parent_class; +struct _EmpathyContactClass +{ + GObjectClass parent_class; }; +typedef struct { + guchar *data; + gsize len; + gchar *format; + gchar *token; + guint refcount; +} EmpathyAvatar; + typedef enum { - EMPATHY_CAPABILITIES_NONE = 0, - EMPATHY_CAPABILITIES_AUDIO = 1 << 0, - EMPATHY_CAPABILITIES_VIDEO = 1 << 1, - EMPATHY_CAPABILITIES_UNKNOWN = 1 << 7 + EMPATHY_CAPABILITIES_NONE = 0, + EMPATHY_CAPABILITIES_AUDIO = 1 << 0, + EMPATHY_CAPABILITIES_VIDEO = 1 << 1, + EMPATHY_CAPABILITIES_FT = 1 << 2, + EMPATHY_CAPABILITIES_UNKNOWN = 1 << 7 } EmpathyCapabilities; -GType empathy_contact_get_type (void) G_GNUC_CONST; -EmpathyContact * empathy_contact_new (McAccount *account); -EmpathyContact * empathy_contact_new_full (McAccount *account, - const gchar *id, - const gchar *name); -const gchar * empathy_contact_get_id (EmpathyContact *contact); -void empathy_contact_set_id (EmpathyContact *contact, - const gchar *id); -const gchar * empathy_contact_get_name (EmpathyContact *contact); -void empathy_contact_set_name (EmpathyContact *contact, - const gchar *name); -EmpathyAvatar * empathy_contact_get_avatar (EmpathyContact *contact); -void empathy_contact_set_avatar (EmpathyContact *contact, - EmpathyAvatar *avatar); -McAccount * empathy_contact_get_account (EmpathyContact *contact); -void empathy_contact_set_account (EmpathyContact *contact, - McAccount *account); -McPresence empathy_contact_get_presence (EmpathyContact *contact); -void empathy_contact_set_presence (EmpathyContact *contact, - McPresence presence); -const gchar * empathy_contact_get_presence_message (EmpathyContact *contact); -void empathy_contact_set_presence_message (EmpathyContact *contact, - const gchar *message); -guint empathy_contact_get_handle (EmpathyContact *contact); -void empathy_contact_set_handle (EmpathyContact *contact, - guint handle); -EmpathyCapabilities empathy_contact_get_capabilities (EmpathyContact *contact); -void empathy_contact_set_capabilities (EmpathyContact *contact, - EmpathyCapabilities capabilities); -gboolean empathy_contact_is_user (EmpathyContact *contact); -void empathy_contact_set_is_user (EmpathyContact *contact, - gboolean is_user); -gboolean empathy_contact_is_online (EmpathyContact *contact); -const gchar * empathy_contact_get_status (EmpathyContact *contact); -gboolean empathy_contact_can_voip (EmpathyContact *contact); -gboolean empathy_contact_is_ready (EmpathyContact *contact); -gboolean empathy_contact_equal (gconstpointer v1, - gconstpointer v2); -guint empathy_contact_hash (gconstpointer key); +GType empathy_contact_get_type (void) G_GNUC_CONST; +EmpathyContact * empathy_contact_new (TpContact *tp_contact); +TpContact * empathy_contact_get_tp_contact (EmpathyContact *contact); +const gchar * empathy_contact_get_id (EmpathyContact *contact); +void empathy_contact_set_id (EmpathyContact *contact, const gchar *id); +const gchar * empathy_contact_get_name (EmpathyContact *contact); +void empathy_contact_set_name (EmpathyContact *contact, const gchar *name); +EmpathyAvatar * empathy_contact_get_avatar (EmpathyContact *contact); +void empathy_contact_set_avatar (EmpathyContact *contact, + EmpathyAvatar *avatar); +McAccount * empathy_contact_get_account (EmpathyContact *contact); +TpConnection * empathy_contact_get_connection (EmpathyContact *contact); +McPresence empathy_contact_get_presence (EmpathyContact *contact); +void empathy_contact_set_presence (EmpathyContact *contact, + McPresence presence); +const gchar * empathy_contact_get_presence_message (EmpathyContact *contact); +void empathy_contact_set_presence_message (EmpathyContact *contact, + const gchar *message); +guint empathy_contact_get_handle (EmpathyContact *contact); +void empathy_contact_set_handle (EmpathyContact *contact, guint handle); +EmpathyCapabilities empathy_contact_get_capabilities (EmpathyContact *contact); +void empathy_contact_set_capabilities (EmpathyContact *contact, + EmpathyCapabilities capabilities); +gboolean empathy_contact_is_user (EmpathyContact *contact); +void empathy_contact_set_is_user (EmpathyContact *contact, + gboolean is_user); +gboolean empathy_contact_is_online (EmpathyContact *contact); +const gchar * empathy_contact_get_status (EmpathyContact *contact); +gboolean empathy_contact_can_voip (EmpathyContact *contact); +gboolean empathy_contact_can_send_files (EmpathyContact *contact); +guint empathy_contact_hash (gconstpointer key); + +void empathy_contact_load_avatar_data (EmpathyContact *contact, + const guchar *data, const gsize len, const gchar *format, + const gchar *token); +gboolean empathy_contact_load_avatar_cache (EmpathyContact *contact, + const gchar *token); + + +#define EMPATHY_TYPE_AVATAR (empathy_avatar_get_type ()) +GType empathy_avatar_get_type (void) G_GNUC_CONST; +EmpathyAvatar * empathy_avatar_new (guchar *data, + gsize len, + gchar *format, + gchar *token); +EmpathyAvatar * empathy_avatar_ref (EmpathyAvatar *avatar); +void empathy_avatar_unref (EmpathyAvatar *avatar); + +gboolean empathy_avatar_save_to_file (EmpathyAvatar *avatar, + const gchar *filename, GError **error); G_END_DECLS #endif /* __EMPATHY_CONTACT_H__ */ -