diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2007-06-14 09:27:11 +0000 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2007-06-14 09:27:11 +0000 |
commit | 304d5e33a45f6f1d469c7b54b041ffc99a554e55 (patch) | |
tree | 37761d26c9e0e895a1246630af27d4ee18276af8 /src/text-helper.c | |
parent | b0b1c83f78e2a5be60ef7d1f05a1ee5477026768 (diff) | |
download | telepathy-salut-304d5e33a45f6f1d469c7b54b041ffc99a554e55.tar.gz |
text-helper: add text_helper_create_message_groupchat
20070614092711-7fe3f-6bb01027e7c056509dffa821d5fca7d02144b439.gz
Diffstat (limited to 'src/text-helper.c')
-rw-r--r-- | src/text-helper.c | 103 |
1 files changed, 75 insertions, 28 deletions
diff --git a/src/text-helper.c b/src/text-helper.c index 1ed91b17..33b7ff7c 100644 --- a/src/text-helper.c +++ b/src/text-helper.c @@ -52,48 +52,95 @@ add_text(GibberXmppStanza *stanza, const gchar *text) { "body", text, GIBBER_W3C_NS_XHTML); } -GibberXmppStanza * -text_helper_create_message(const gchar *from, const gchar *to, - TpChannelTextMessageType type, - const gchar *text, - GError **error) +GibberXmppStanza * +create_message_stanza (const gchar *from, + const gchar *to, + TpChannelTextMessageType type, + const gchar *text, + GError **error) { GibberXmppStanza *stanza; - if (type > TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE) { - DEBUG ("invalid message type %u", type); + if (type > TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE) + { + DEBUG ("invalid message type %u", type); - g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT, - "invalid message type: %u", type); + g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT, + "invalid message type: %u", type); - return NULL; - } - stanza = gibber_xmpp_stanza_new("message"); - - switch (type) { - case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL: - case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION: - gibber_xmpp_node_set_attribute(stanza->node, "type", "chat"); - break; - case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE: - case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY: - gibber_xmpp_node_set_attribute(stanza->node, "type", "normal"); - break; - } - - gibber_xmpp_node_set_attribute(stanza->node, "from", from); - gibber_xmpp_node_set_attribute(stanza->node, "to", to); + return NULL; + } + stanza = gibber_xmpp_stanza_new ("message"); + + gibber_xmpp_node_set_attribute (stanza->node, "from", from); + gibber_xmpp_node_set_attribute (stanza->node, "to", to); if (type == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION) { gchar *tmp; tmp = g_strconcat ("/me ", text, NULL); - add_text(stanza, tmp); + add_text (stanza, tmp); g_free (tmp); } else { - add_text(stanza, text); + add_text (stanza, text); + } + + return stanza; +} + +GibberXmppStanza * +text_helper_create_message (const gchar *from, + const gchar *to, + TpChannelTextMessageType type, + const gchar *text, + GError **error) +{ + GibberXmppStanza *stanza; + + stanza = create_message_stanza (from, to, type, text, error); + if (stanza == NULL) + return NULL; + + switch (type) + { + case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL: + case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION: + gibber_xmpp_node_set_attribute (stanza->node, "type", "chat"); + break; + case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE: + case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY: + gibber_xmpp_node_set_attribute (stanza->node, "type", "normal"); + break; + } + + return stanza; +} + +GibberXmppStanza * +text_helper_create_message_groupchat (const gchar *from, + const gchar *to, + TpChannelTextMessageType type, + const gchar *text, + GError **error) +{ + GibberXmppStanza *stanza; + + stanza = create_message_stanza (from, to, type, text, error); + if (stanza == NULL) + return NULL; + + switch (type) + { + case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL: + case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION: + gibber_xmpp_node_set_attribute (stanza->node, "type", "groupchat"); + break; + case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE: + case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY: + gibber_xmpp_node_set_attribute (stanza->node, "type", "normal"); + break; } return stanza; |