[telepathy-gabble/master] gabble_presence_resource_has_caps: change to use namespaces (and quirk pseudo-namespaces)

Simon McVittie simon.mcvittie at collabora.co.uk
Tue Sep 8 04:10:08 PDT 2009


---
 src/jingle-session.c |    4 +++-
 src/presence.c       |    7 ++++---
 src/presence.h       |    4 ++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/jingle-session.c b/src/jingle-session.c
index 06d736a..54a2af8 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -28,6 +28,7 @@
 
 #define DEBUG_FLAG GABBLE_DEBUG_MEDIA
 
+#include "capabilities.h"
 #include "connection.h"
 #include "debug.h"
 #include "gabble-signals-marshal.h"
@@ -631,7 +632,8 @@ lookup_content (GabbleJingleSession *sess,
 
       if (creator == NULL && presence != NULL &&
           gabble_presence_resource_has_caps (presence, priv->peer_resource,
-              PRESENCE_CAP_JINGLE_OMITS_CONTENT_CREATOR))
+              gabble_capability_set_predicate_has,
+              QUIRK_OMITS_CONTENT_CREATORS))
         {
           DEBUG ("working around missing 'creator' attribute");
 
diff --git a/src/presence.c b/src/presence.c
index 64e266f..6bd24c3 100644
--- a/src/presence.c
+++ b/src/presence.c
@@ -198,7 +198,8 @@ gabble_presence_pick_resource_by_caps (
 gboolean
 gabble_presence_resource_has_caps (GabblePresence *presence,
                                    const gchar *resource,
-                                   GabblePresenceCapabilities caps)
+                                   GabbleCapabilitySetPredicate predicate,
+                                   gpointer user_data)
 {
   GabblePresencePrivate *priv = GABBLE_PRESENCE_PRIV (presence);
   GSList *i;
@@ -207,8 +208,8 @@ gabble_presence_resource_has_caps (GabblePresence *presence,
     {
       Resource *res = (Resource *) i->data;
 
-      if (!tp_strdiff (res->name, resource) && (res->caps & caps) == caps)
-        return TRUE;
+      if (!tp_strdiff (res->name, resource))
+        return predicate (res->cap_set, user_data);
     }
 
   return FALSE;
diff --git a/src/presence.h b/src/presence.h
index 976a7fc..eb35d0c 100644
--- a/src/presence.h
+++ b/src/presence.h
@@ -91,8 +91,8 @@ const gchar *gabble_presence_pick_resource_by_caps (GabblePresence *presence,
     GabbleCapabilitySetPredicate predicate, gpointer user_data);
 
 gboolean gabble_presence_resource_has_caps (GabblePresence *presence,
-                                   const gchar *resource,
-                                   GabblePresenceCapabilities caps);
+    const gchar *resource, GabbleCapabilitySetPredicate predicate,
+    gpointer user_data);
 
 LmMessage *gabble_presence_as_message (GabblePresence *presence,
     const gchar *to);
-- 
1.5.6.5




More information about the telepathy-commits mailing list