aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy/empathy-contact.c6
-rw-r--r--libempathy/empathy-tp-call.c18
-rw-r--r--libempathy/empathy-tp-contact-factory.c5
3 files changed, 14 insertions, 15 deletions
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index 3f03c1d33..698612572 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -159,7 +159,7 @@ empathy_contact_class_init (EmpathyContactClass *class)
"Contact Capabilities",
"Capabilities of the contact",
EMPATHY_TYPE_CAPABILITIES,
- 0,
+ EMPATHY_CAPABILITIES_UNKNOWN,
G_PARAM_READWRITE));
g_object_class_install_property (object_class,
@@ -176,10 +176,6 @@ empathy_contact_class_init (EmpathyContactClass *class)
static void
empathy_contact_init (EmpathyContact *contact)
{
- EmpathyContactPriv *priv;
-
- priv = GET_PRIV (contact);
- priv->capabilities = EMPATHY_CAPABILITIES_UNKNOWN;
}
static void
diff --git a/libempathy/empathy-tp-call.c b/libempathy/empathy-tp-call.c
index 4ec4a97ff..7deb31c25 100644
--- a/libempathy/empathy-tp-call.c
+++ b/libempathy/empathy-tp-call.c
@@ -327,13 +327,14 @@ tp_call_request_streams_for_capabilities (EmpathyTpCall *call,
static void
tp_call_request_streams_capabilities_cb (EmpathyContact *contact,
- GParamSpec *property, gpointer user_data)
+ GParamSpec *property,
+ gpointer user_data)
{
EmpathyTpCall *call = EMPATHY_TP_CALL (user_data);
g_signal_handlers_disconnect_by_func (contact,
- tp_call_request_streams_capabilities_cb,
- user_data);
+ tp_call_request_streams_capabilities_cb,
+ user_data);
tp_call_request_streams_for_capabilities (call,
empathy_contact_get_capabilities (contact));
@@ -361,11 +362,12 @@ tp_call_request_streams (EmpathyTpCall *call)
else
{
capabilities = empathy_contact_get_capabilities (priv->contact);
- if (capabilities == EMPATHY_CAPABILITIES_UNKNOWN) {
- g_signal_connect (G_OBJECT (priv->contact), "notify::capabilities",
- G_CALLBACK (tp_call_request_streams_capabilities_cb), call);
- return;
- }
+ if (capabilities == EMPATHY_CAPABILITIES_UNKNOWN)
+ {
+ g_signal_connect (priv->contact, "notify::capabilities",
+ G_CALLBACK (tp_call_request_streams_capabilities_cb), call);
+ return;
+ }
}
tp_call_request_streams_for_capabilities (call, capabilities);
diff --git a/libempathy/empathy-tp-contact-factory.c b/libempathy/empathy-tp-contact-factory.c
index 533f1c5b1..1cce6080c 100644
--- a/libempathy/empathy-tp-contact-factory.c
+++ b/libempathy/empathy-tp-contact-factory.c
@@ -505,7 +505,8 @@ tp_contact_factory_update_capabilities (EmpathyTpContactFactory *tp_factory,
capabilities = empathy_contact_get_capabilities (contact);
if (strcmp (channel_type, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA) == 0) {
- capabilities = EMPATHY_CAPABILITIES_NONE;
+ capabilities &= ~EMPATHY_CAPABILITIES_AUDIO;
+ capabilities &= ~EMPATHY_CAPABILITIES_VIDEO;
if (specific & TP_CHANNEL_MEDIA_CAPABILITY_AUDIO) {
capabilities |= EMPATHY_CAPABILITIES_AUDIO;
}
@@ -533,7 +534,7 @@ tp_contact_factory_get_capabilities_cb (DBusGProxy *proxy,
if (error) {
empathy_debug (DEBUG_DOMAIN, "Error getting capabilities: %s",
- error->message);
+ error->message);
/* FIXME Should set the capabilities of the contacts for which this request
* originated to NONE */
goto OUT;