From 94b1d58417be50a2eaa4353283e898f01724ccdf Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Tue, 13 Apr 2010 09:12:59 +0200 Subject: [PATCH] audio: depurple candidate --- src/api/sipe-media.h | 10 +++++++++ src/core/sipe-media.c | 37 ++++++++++++++++---------------- src/purple/purple-media.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 18 deletions(-) diff --git a/src/api/sipe-media.h b/src/api/sipe-media.h index e0e892e5..3d04ccd2 100644 --- a/src/api/sipe-media.h +++ b/src/api/sipe-media.h @@ -106,6 +106,16 @@ sipe_candidate * sipe_backend_candidate_new(const gchar *foundation, void sipe_backend_candidate_free(sipe_candidate *candidate); +gchar *sipe_backend_candidate_get_username(sipe_candidate *candidate); +gchar *sipe_backend_candidate_get_password(sipe_candidate *candidate); +gchar *sipe_backend_candidate_get_foundation(sipe_candidate *candidate); +gchar *sipe_backend_candidate_get_ip(sipe_candidate *candidate); +guint sipe_backend_candidate_get_port(sipe_candidate *candidate); +guint32 sipe_backend_candidate_get_priority(sipe_candidate *candidate); +SipeComponentType sipe_backend_candidate_get_component_type(sipe_candidate *candidate); +SipeCandidateType sipe_backend_candidate_get_type(sipe_candidate *candidate); +SipeNetworkProtocol sipe_backend_candidate_get_protocol(sipe_candidate *candidate); + void sipe_backend_candidate_set_username_and_pwd(sipe_candidate *candidate, const gchar *username, const gchar *password); diff --git a/src/core/sipe-media.c b/src/core/sipe-media.c index 01df0210..c3b781b2 100644 --- a/src/core/sipe-media.c +++ b/src/core/sipe-media.c @@ -31,7 +31,6 @@ #include #include "sipe-core.h" -#include "sip-sec.h" #include "sipe.h" #include "sipmsg.h" #include "sipe-session.h" @@ -288,8 +287,8 @@ sipe_media_sdp_candidates_format(GList *candidates, sipe_media_call* call, gbool { GString *result = g_string_new(""); gchar *tmp; - gchar *username = purple_media_candidate_get_username(candidates->data); - gchar *password = purple_media_candidate_get_password(candidates->data); + gchar *username = sipe_backend_candidate_get_username(candidates->data); + gchar *password = sipe_backend_candidate_get_password(candidates->data); guint16 rtcp_port = 0; if (call->legacy_mode) @@ -300,43 +299,45 @@ sipe_media_sdp_candidates_format(GList *candidates, sipe_media_call* call, gbool g_free(tmp); while (candidates) { - PurpleMediaCandidate *c = candidates->data; + sipe_candidate *c = candidates->data; guint16 port; guint16 component; gchar *protocol; gchar *type; - port = purple_media_candidate_get_port(c); + port = sipe_backend_candidate_get_port(c); - switch (purple_media_candidate_get_component_id(c)) { - case PURPLE_MEDIA_COMPONENT_RTP: + switch (sipe_backend_candidate_get_component_type(c)) { + case SIPE_COMPONENT_RTP: component = 1; break; - case PURPLE_MEDIA_COMPONENT_RTCP: + case SIPE_COMPONENT_RTCP: component = 2; if (rtcp_port == 0) rtcp_port = port; break; + case SIPE_COMPONENT_NONE: + component = 0; } - switch (purple_media_candidate_get_protocol(c)) { - case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP: + switch (sipe_backend_candidate_get_protocol(c)) { + case SIPE_NETWORK_PROTOCOL_TCP: protocol = "TCP"; break; - case PURPLE_MEDIA_NETWORK_PROTOCOL_UDP: + case SIPE_NETWORK_PROTOCOL_UDP: protocol = "UDP"; break; } - switch (purple_media_candidate_get_candidate_type(c)) { - case PURPLE_MEDIA_CANDIDATE_TYPE_HOST: + switch (sipe_backend_candidate_get_type(c)) { + case SIPE_CANDIDATE_TYPE_HOST: type = "host"; break; - case PURPLE_MEDIA_CANDIDATE_TYPE_RELAY: + case SIPE_CANDIDATE_TYPE_RELAY: type = "relay"; break; - case PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX: + case SIPE_CANDIDATE_TYPE_SRFLX: type = "srflx"; break; default: @@ -345,11 +346,11 @@ sipe_media_sdp_candidates_format(GList *candidates, sipe_media_call* call, gbool } tmp = g_strdup_printf("a=candidate:%s %u %s %u %s %d typ %s \r\n", - purple_media_candidate_get_foundation(c), + sipe_backend_candidate_get_foundation(c), component, protocol, - purple_media_candidate_get_priority(c), - purple_media_candidate_get_ip(c), + sipe_backend_candidate_get_priority(c), + sipe_backend_candidate_get_ip(c), port, type); diff --git a/src/purple/purple-media.c b/src/purple/purple-media.c index abdc6ac8..b1231931 100644 --- a/src/purple/purple-media.c +++ b/src/purple/purple-media.c @@ -137,6 +137,60 @@ sipe_backend_candidate_free(sipe_candidate *codec) g_object_unref(codec); } +gchar * +sipe_backend_candidate_get_username(sipe_candidate *candidate) +{ + return purple_media_candidate_get_username((PurpleMediaCandidate*)candidate); +} + +gchar * +sipe_backend_candidate_get_password(sipe_candidate *candidate) +{ + return purple_media_candidate_get_password((PurpleMediaCandidate*)candidate); +} + +gchar * +sipe_backend_candidate_get_foundation(sipe_candidate *candidate) +{ + return purple_media_candidate_get_foundation((PurpleMediaCandidate*)candidate); +} + +gchar * +sipe_backend_candidate_get_ip(sipe_candidate *candidate) +{ + return purple_media_candidate_get_ip((PurpleMediaCandidate*)candidate); +} + +guint +sipe_backend_candidate_get_port(sipe_candidate *candidate) +{ + return purple_media_candidate_get_port((PurpleMediaCandidate*)candidate); +} + +guint32 +sipe_backend_candidate_get_priority(sipe_candidate *candidate) +{ + return purple_media_candidate_get_priority((PurpleMediaCandidate*)candidate); +} + +SipeComponentType +sipe_backend_candidate_get_component_type(sipe_candidate *candidate) +{ + return purple_media_candidate_get_component_id((PurpleMediaCandidate*)candidate); +} + +SipeCandidateType +sipe_backend_candidate_get_type(sipe_candidate *candidate) +{ + return purple_media_candidate_get_candidate_type((PurpleMediaCandidate*)candidate); +} + +SipeNetworkProtocol +sipe_backend_candidate_get_protocol(sipe_candidate *candidate) +{ + return purple_media_candidate_get_protocol((PurpleMediaCandidate*)candidate); +} + void sipe_backend_candidate_set_username_and_pwd(sipe_candidate *candidate, const gchar *username, -- 2.11.4.GIT