[telepathy-gabble/master] Add accessor for GabbleJingleSession:dialect
Will Thompson
will.thompson at collabora.co.uk
Tue Jun 23 10:32:06 PDT 2009
---
src/jingle-content.c | 28 ++++++++--------------------
src/jingle-media-rtp.c | 8 ++------
src/jingle-session.c | 6 ++++++
src/jingle-session.h | 1 +
src/jingle-transport-google.c | 4 ++--
5 files changed, 19 insertions(+), 28 deletions(-)
diff --git a/src/jingle-content.c b/src/jingle-content.c
index 6745334..645a8f6 100644
--- a/src/jingle-content.c
+++ b/src/jingle-content.c
@@ -452,9 +452,7 @@ gabble_jingle_content_parse_add (GabbleJingleContent *c,
LmMessageNode *trans_node, *desc_node;
GType transport_type = 0;
GabbleJingleTransportIface *trans = NULL;
- JingleDialect dialect;
-
- g_object_get (c->session, "dialect", &dialect, NULL);
+ JingleDialect dialect = gabble_jingle_session_get_dialect (c->session);
desc_node = lm_message_node_get_child_any_ns (content_node, "description");
trans_node = lm_message_node_get_child_any_ns (content_node, "transport");
@@ -583,24 +581,18 @@ gabble_jingle_content_parse_accept (GabbleJingleContent *c,
GabbleJingleContentPrivate *priv = c->priv;
const gchar *senders;
LmMessageNode *trans_node, *desc_node;
- JingleDialect dialect;
+ JingleDialect dialect = gabble_jingle_session_get_dialect (c->session);
JingleContentSenders newsenders;
desc_node = lm_message_node_get_child_any_ns (content_node, "description");
trans_node = lm_message_node_get_child_any_ns (content_node, "transport");
senders = lm_message_node_get_attribute (content_node, "senders");
- g_object_get (c->session, "dialect", &dialect, NULL);
-
- /* FIXME: if we examine dialect manually, we don't need google_mode param flag */
- if (google_mode)
+ if (JINGLE_IS_GOOGLE_DIALECT (dialect) && trans_node == NULL)
{
- if (trans_node == NULL)
- {
- DEBUG ("no transport node, assuming GTalk3 dialect");
- /* gtalk lj0.3 assumes google-p2p transport */
- g_object_set (c->session, "dialect", JINGLE_DIALECT_GTALK3, NULL);
- }
+ DEBUG ("no transport node, assuming GTalk3 dialect");
+ /* gtalk lj0.3 assumes google-p2p transport */
+ g_object_set (c->session, "dialect", JINGLE_DIALECT_GTALK3, NULL);
}
if (senders == NULL)
@@ -667,12 +659,10 @@ gabble_jingle_content_produce_node (GabbleJingleContent *c,
{
GabbleJingleContentPrivate *priv = c->priv;
LmMessageNode *content_node, *trans_node;
- JingleDialect dialect;
+ JingleDialect dialect = gabble_jingle_session_get_dialect (c->session);
void (*produce_desc)(GabbleJingleContent *, LmMessageNode *) =
GABBLE_JINGLE_CONTENT_GET_CLASS (c)->produce_description;
- g_object_get (c->session, "dialect", &dialect, NULL);
-
if ((dialect == JINGLE_DIALECT_GTALK3) ||
(dialect == JINGLE_DIALECT_GTALK4))
{
@@ -938,9 +928,7 @@ gabble_jingle_content_change_direction (GabbleJingleContent *c,
GabbleJingleContentPrivate *priv = c->priv;
LmMessage *msg;
LmMessageNode *sess_node;
- JingleDialect dialect;
-
- g_object_get (c->session, "dialect", &dialect, NULL);
+ JingleDialect dialect = gabble_jingle_session_get_dialect (c->session);
if (JINGLE_IS_GOOGLE_DIALECT (dialect))
{
diff --git a/src/jingle-media-rtp.c b/src/jingle-media-rtp.c
index b7ec157..5a2837c 100644
--- a/src/jingle-media-rtp.c
+++ b/src/jingle-media-rtp.c
@@ -503,7 +503,7 @@ parse_description (GabbleJingleContent *content,
GList *codecs = NULL;
JingleCodec *p;
LmMessageNode *node;
- JingleDialect dialect;
+ JingleDialect dialect = gabble_jingle_session_get_dialect (content->session);
gboolean video_session = FALSE;
DEBUG ("node: %s", desc_node->name);
@@ -516,8 +516,6 @@ parse_description (GabbleJingleContent *content,
if (mtype == JINGLE_MEDIA_TYPE_NONE)
return;
- g_object_get (content->session, "dialect", &dialect, NULL);
-
DEBUG ("detected media type %u", mtype);
if (dialect == JINGLE_DIALECT_GTALK3)
@@ -706,11 +704,9 @@ produce_description (GabbleJingleContent *obj, LmMessageNode *content_node)
GabbleJingleMediaRtp *desc = GABBLE_JINGLE_MEDIA_RTP (obj);
GabbleJingleMediaRtpPrivate *priv = desc->priv;
GList *li;
- JingleDialect dialect;
+ JingleDialect dialect = gabble_jingle_session_get_dialect (obj->session);
LmMessageNode *desc_node;
- g_object_get (obj->session, "dialect", &dialect, NULL);
-
desc_node = produce_description_node (dialect, priv->media_type,
content_node);
diff --git a/src/jingle-session.c b/src/jingle-session.c
index d625f2b..9135158 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -2275,6 +2275,12 @@ gabble_jingle_session_can_modify_contents (GabbleJingleSession *sess)
return !JINGLE_IS_GOOGLE_DIALECT (sess->priv->dialect);
}
+JingleDialect
+gabble_jingle_session_get_dialect (GabbleJingleSession *sess)
+{
+ return sess->priv->dialect;
+}
+
/* Only to be used for the test suite */
void
gabble_set_jingle_session_timeout (guint ms)
diff --git a/src/jingle-session.h b/src/jingle-session.h
index ed9bd0d..545b576 100644
--- a/src/jingle-session.h
+++ b/src/jingle-session.h
@@ -108,6 +108,7 @@ GList *gabble_jingle_session_get_contents (GabbleJingleSession *sess);
const gchar *gabble_jingle_session_get_peer_resource (
GabbleJingleSession *sess);
const gchar *gabble_jingle_session_get_sid (GabbleJingleSession *sess);
+JingleDialect gabble_jingle_session_get_dialect (GabbleJingleSession *sess);
gboolean gabble_jingle_session_can_modify_contents (GabbleJingleSession *sess);
diff --git a/src/jingle-transport-google.c b/src/jingle-transport-google.c
index e2afbeb..7741c7a 100644
--- a/src/jingle-transport-google.c
+++ b/src/jingle-transport-google.c
@@ -237,7 +237,7 @@ parse_candidates (GabbleJingleTransportIface *obj,
JingleDialect dialect;
g_object_get (priv->content, "media-type", &media_type, NULL);
- g_object_get (priv->content->session, "dialect", &dialect, NULL);
+ dialect = gabble_jingle_session_get_dialect (priv->content->session);
for (node = transport_node->children; node; node = node->next)
{
@@ -502,7 +502,7 @@ group_and_transmit_candidates (GabbleJingleTransportGoogle *transport,
DEBUG ("Ignoring unknown component %d", c->component);
}
- g_object_get (priv->content->session, "dialect", &dialect, NULL);
+ dialect = gabble_jingle_session_get_dialect (priv->content->session);
g_object_get (priv->content, "media-type", &media, NULL);
if (media == JINGLE_MEDIA_TYPE_VIDEO && JINGLE_IS_GOOGLE_DIALECT (dialect))
--
1.5.6.5
More information about the telepathy-commits
mailing list