[telepathy-gabble/master] Make construction of olpc_caps data-driven again, by recycling feature types

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Aug 24 12:55:35 PDT 2009


---
 src/capabilities.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/capabilities.c b/src/capabilities.c
index df4c794..5aea4d1 100644
--- a/src/capabilities.c
+++ b/src/capabilities.c
@@ -44,7 +44,8 @@ struct _Feature
 {
   enum {
     FEATURE_FIXED,
-    FEATURE_OPTIONAL
+    FEATURE_OPTIONAL,
+    FEATURE_OLPC
   } feature_type;
   gchar *ns;
 };
@@ -74,10 +75,10 @@ static const Feature self_advertised_features[] =
   { FEATURE_OPTIONAL, NS_JINGLE_RTP_AUDIO },
   { FEATURE_OPTIONAL, NS_JINGLE_RTP_VIDEO },
 
-  { FEATURE_OPTIONAL, NS_OLPC_BUDDY_PROPS "+notify" },
-  { FEATURE_OPTIONAL, NS_OLPC_ACTIVITIES "+notify" },
-  { FEATURE_OPTIONAL, NS_OLPC_CURRENT_ACTIVITY "+notify" },
-  { FEATURE_OPTIONAL, NS_OLPC_ACTIVITY_PROPS "+notify" },
+  { FEATURE_OLPC, NS_OLPC_BUDDY_PROPS "+notify" },
+  { FEATURE_OLPC, NS_OLPC_ACTIVITIES "+notify" },
+  { FEATURE_OLPC, NS_OLPC_CURRENT_ACTIVITY "+notify" },
+  { FEATURE_OLPC, NS_OLPC_ACTIVITY_PROPS "+notify" },
 
   { FEATURE_OPTIONAL, NS_GEOLOC "+notify" },
 
@@ -251,10 +252,12 @@ gabble_capabilities_init (GabbleConnection *conn)
       gabble_capability_set_add (geoloc_caps, NS_GEOLOC "+notify");
 
       olpc_caps = gabble_capability_set_new ();
-      gabble_capability_set_add (olpc_caps, NS_OLPC_BUDDY_PROPS "+notify");
-      gabble_capability_set_add (olpc_caps, NS_OLPC_ACTIVITIES "+notify");
-      gabble_capability_set_add (olpc_caps, NS_OLPC_CURRENT_ACTIVITY "+notify");
-      gabble_capability_set_add (olpc_caps, NS_OLPC_ACTIVITY_PROPS "+notify");
+
+      for (feat = self_advertised_features; feat->ns != NULL; feat++)
+        {
+          if (feat->feature_type == FEATURE_OLPC)
+            gabble_capability_set_add (olpc_caps, feat->ns);
+        }
     }
 
   g_assert (feature_handles != NULL);
-- 
1.5.6.5




More information about the telepathy-commits mailing list