diff -r d0f3a028347a -r 59927b2d3b75 telepathygabble/src/capabilities.c --- a/telepathygabble/src/capabilities.c Tue Feb 02 01:10:06 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* - * capabilities.c - Connection.Interface.Capabilities constants and utilities - * Copyright (C) 2005 Collabora Ltd. - * - * - * 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 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 - * Lesser General Public License for more details. - * - * 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 - */ - -#include "capabilities.h" - -#include "namespaces.h" -#include "config.h" -#include "gabble-presence-cache.h" -#include "telepathy-interfaces.h" -#include "gabble-media-channel.h" - -static const Feature self_advertised_features[] = -{ - { VERSION, NS_GOOGLE_FEAT_SESSION, 0}, - { VERSION, NS_GOOGLE_TRANSPORT_P2P, PRESENCE_CAP_GOOGLE_TRANSPORT_P2P}, - { VERSION, NS_JINGLE, PRESENCE_CAP_JINGLE}, - - { BUNDLE_VOICE_V1, NS_GOOGLE_FEAT_VOICE, PRESENCE_CAP_GOOGLE_VOICE}, - { BUNDLE_JINGLE_AUDIO, NS_JINGLE_DESCRIPTION_AUDIO, PRESENCE_CAP_JINGLE_DESCRIPTION_AUDIO}, - { BUNDLE_JINGLE_VIDEO, NS_JINGLE_DESCRIPTION_VIDEO, PRESENCE_CAP_JINGLE_DESCRIPTION_VIDEO}, - { NULL, NULL, 0} -}; - - - - -GSList * -capabilities_get_features (GabblePresenceCapabilities caps) -{ - GSList *features = NULL; - const Feature *i; - - for (i = self_advertised_features; NULL != i->ns; i++) - if ((i->caps & caps) == i->caps) - features = g_slist_append (features, (gpointer) i); - - return features; -} - -void -capabilities_fill_cache (GabblePresenceCache *cache) -{ - const Feature *feat; - for (feat = self_advertised_features; NULL != feat->ns; feat++) - { - gchar *node = g_strconcat (NS_GABBLE_CAPS "#", feat->bundle, NULL); - gabble_presence_cache_add_bundle_caps (cache, - node, feat->caps); - g_free (node); - } - - gabble_presence_cache_add_bundle_caps (cache, - "http://www.google.com/xmpp/client/caps#voice-v1", - PRESENCE_CAP_GOOGLE_VOICE); -} - -GabblePresenceCapabilities -capabilities_get_initial_caps () -{ - GabblePresenceCapabilities ret = 0; - const Feature *feat; - - for (feat = self_advertised_features; NULL != feat->ns; feat++) - { - if (g_str_equal (feat->bundle, VERSION)) - /* VERSION == bundle means a fixed feature, which we always advertise */ - ret |= feat->caps; - } - - return ret; -} - -const CapabilityConversionData capabilities_conversions[] = -{ - { TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA, - _gabble_media_channel_typeflags_to_caps_tmp, /*_gabble_media_channel_typeflags_to_caps,*/ - _gabble_media_channel_caps_to_typeflags_tmp /*_gabble_media_channel_caps_to_typeflags*/ }, - { NULL, NULL, NULL} -}; -