/* * jingle-tp-util.c - Telepathy-flavoured Jingle utility functions * Copyright © 2008–2012 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 "config.h" #include "jingle-tp-util.h" #include WockyJingleMediaType wocky_jingle_media_type_from_tp (TpMediaStreamType type) { switch (type) { case TP_MEDIA_STREAM_TYPE_AUDIO: return WOCKY_JINGLE_MEDIA_TYPE_AUDIO; case TP_MEDIA_STREAM_TYPE_VIDEO: return WOCKY_JINGLE_MEDIA_TYPE_VIDEO; default: g_return_val_if_reached (WOCKY_JINGLE_MEDIA_TYPE_NONE); } } TpMediaStreamType wocky_jingle_media_type_to_tp (WockyJingleMediaType type) { switch (type) { case WOCKY_JINGLE_MEDIA_TYPE_AUDIO: return TP_MEDIA_STREAM_TYPE_AUDIO; case WOCKY_JINGLE_MEDIA_TYPE_VIDEO: return TP_MEDIA_STREAM_TYPE_VIDEO; default: g_return_val_if_reached (TP_MEDIA_STREAM_TYPE_AUDIO); } } static const gchar * const relay_type_map[] = { /* WOCKY_JINGLE_RELAY_TYPE_UDP */ "udp", /* WOCKY_JINGLE_RELAY_TYPE_TCP */ "tcp", /* WOCKY_JINGLE_RELAY_TYPE_TLS */ "tls", }; GPtrArray * gabble_build_tp_relay_info (GPtrArray *relays) { guint i; GPtrArray *tp_relays = g_ptr_array_sized_new (relays->len); g_ptr_array_set_free_func (tp_relays, (GDestroyNotify) g_hash_table_unref); for (i = 0; i < relays->len; i++) { WockyJingleRelay *relay = g_ptr_array_index (relays, i); g_return_val_if_fail (relay->type < WOCKY_N_JINGLE_RELAY_TYPES, tp_relays); g_ptr_array_add (tp_relays, tp_asv_new ( "type", G_TYPE_STRING, relay_type_map[relay->type], "ip", G_TYPE_STRING, relay->ip, "port", G_TYPE_UINT, relay->port, "username", G_TYPE_STRING, relay->username, "password", G_TYPE_STRING, relay->password, "component", G_TYPE_UINT, relay->component, NULL)); } return tp_relays; }