Produce new LmMessageNode with a struct Jingle
authorNicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Fri, 25 Jun 2010 22:29:51 +0200
changeset 22 a089f2f49e9f
parent 21 147f131382dd
child 23 9367e144e626
Produce new LmMessageNode with a struct Jingle
jingle/jingle.c
jingle/jingle.h
--- a/jingle/jingle.c	Wed Jun 16 20:16:45 2010 +0200
+++ b/jingle/jingle.c	Fri Jun 25 22:29:51 2010 +0200
@@ -260,3 +260,55 @@
   lm_message_handler_invalidate(jingle_iq_handler);
   lm_message_handler_unref(jingle_iq_handler);
 }
+
+LmMessageNode* get_lm_from_jingle_struct(const JingleNode* elem)
+{
+  LmMessageNode* node = g_new(JingleNode, 1);
+  lm_message_node_set_value(node, "jingle");
+  if (jingle_action_list[elem->action][0])
+    lm_message_node_set_attribute(node, "action", jingle_action_list[elem->action]);
+  if (elem->initiator)
+    lm_message_node_set_attribute(node, "initiator", elem->initiator);
+  if (elem->responder)
+    lm_message_node_set_attribute(node, "responder",elem->responder);
+  if (elem->sid)
+    lm_message_node_set_attribute(node, "sid", elem->sid);
+  g_slist_foreach(elem->content, addContenttoNode, node);
+  return node;
+}
+
+void get_lm_from_content_struct(gpointer data, gpointer userdata)
+{
+  JingleContent* content = data;
+  LmMessageNode* dad = userdata;
+  LmMessageNode* node = lm_message_add_child(dad, "content", NULL), *node2= NULL;
+  
+  if (content->creator == JINGLE_CREATOR_INITIATOR)
+    lm_message_node_set_attribute(node, "creator", "initiator");
+  else
+    lm_message_node_set_attribute(node, "creator", "responder");
+  
+  if (content->disposition)
+    lm_message_node_set_attribute(node, "disposition", content->disposition);
+  
+  if (content->name)
+    lm_message_node_set_attribute(node, "name", content->name);
+  
+  if (content->senders == JINGLE_SENDERS_BOTH)
+    lm_message_node_set_attribute(node, "senders", "both");
+  else if (content->senders == JINGLE_SENDERS_INITIATOR)
+    lm_message_node_set_attribute(node, "senders", "initiator");
+  else if (content->senders == JINGLE_SENDERS_RESPONDER)
+    lm_message_node_set_attribute(node, "senders", "responder");
+    
+    // Care of desc & app
+}
+
+LmMessageNode* dup_lm_message_node(const LmMessageNode* src)
+{
+  LmMessageNode* new = NULL;
+  new = g_memdup(src);
+  src->next = NULL;
+  src->prev = NULL;
+  return src;
+}
--- a/jingle/jingle.h	Wed Jun 16 20:16:45 2010 +0200
+++ b/jingle/jingle.h	Fri Jun 25 22:29:51 2010 +0200
@@ -43,7 +43,7 @@
   /* pointer to the original LmMessage */
   LmMessage *message;
 
-  /* poiter to the <jingle> element */
+  /* pointer to the <jingle> element */
   LmMessageNode *node;
 
   /* action attribute */
@@ -116,4 +116,7 @@
 void jingle_ack_iq(LmMessage *m);
 JingleAction jingle_action_from_str(const gchar* string);
 
+LmMessageNode* get_lm_from_jingle_struct(const JingleNode* elem)
+void get_lm_from_content_struct(gpointer data, gpointer userdata)
+LmMessageNode* dup_lm_message_node(const LmMessageNode* src)
 #endif