summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Pessi <Pekka.Pessi@nokia.com>2011-02-01 21:08:20 +0200
committerPekka Pessi <Pekka.Pessi@nokia.com>2011-02-01 21:21:07 +0200
commitad89052fc9c7340648b22971eb58ad5e3ca4a1a9 (patch)
treee0358c27782559d6a91a2ffea8fff7188ba7a5a1
parenta2fa821e1b69b18904d79737fb26112a963a0f56 (diff)
ring-text-channel: add ring_text_channel_receive_text ()
-rw-r--r--src/ring-text-channel.c40
-rw-r--r--src/ring-text-channel.h8
2 files changed, 48 insertions, 0 deletions
diff --git a/src/ring-text-channel.c b/src/ring-text-channel.c
index 5b5be88..a66ac5d 100644
--- a/src/ring-text-channel.c
+++ b/src/ring-text-channel.c
@@ -813,6 +813,46 @@ ring_text_channel_receive_deliver(RingTextChannel *self,
#endif
+void
+ring_text_channel_receive_text (RingTextChannel *self,
+ gchar const *message_token,
+ gchar const *message,
+ gint64 message_sent,
+ gint64 message_received,
+ guint32 sms_class)
+{
+ TpBaseChannel *base = TP_BASE_CHANNEL (self);
+ TpBaseConnection *connection = tp_base_channel_get_connection (base);
+ TpMessage *msg;
+ guint id;
+
+ DEBUG("enter");
+
+ msg = tp_message_new (connection, 2, 2);
+
+ tp_message_set_handle (msg, 0, "message-sender",
+ TP_HANDLE_TYPE_CONTACT, tp_base_channel_get_target_handle (base));
+ tp_message_set_string (msg, 0, "message-token", message_token);
+ tp_message_set_uint32 (msg, 0, "message-type",
+ TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL);
+
+ tp_message_set_int64 (msg, 0, "message-sent", message_sent);
+ tp_message_set_int64 (msg, 0, "message-received", message_received);
+
+ if (0 <= sms_class && sms_class <= 3)
+ {
+ tp_message_set_uint32 (msg, 0, "sms-class", sms_class);
+ }
+
+ tp_message_set_string (msg, 1, "content-type", text_plain);
+ tp_message_set_string (msg, 1, "type", text_plain);
+ tp_message_set_string (msg, 1, "content", message);
+
+ id = tp_message_mixin_take_received ((GObject *) self, msg);
+
+ DEBUG("message mixin received with id=%u", id);
+}
+
static void
ring_text_channel_delivery_report(RingTextChannel *self,
char const *token,
diff --git a/src/ring-text-channel.h b/src/ring-text-channel.h
index ad7a2db..94e6b27 100644
--- a/src/ring-text-channel.h
+++ b/src/ring-text-channel.h
@@ -71,10 +71,18 @@ char *ring_text_channel_destination(char const *inspection);
/* FIXME: the gpointers are temporary hacks */
gboolean ring_text_channel_can_handle(gpointer);
void ring_text_channel_receive_deliver(RingTextChannel *, gpointer);
+
void ring_text_channel_receive_status_report(RingTextChannel *, gpointer);
#endif
+void ring_text_channel_receive_text (RingTextChannel *self,
+ gchar const *message_token,
+ gchar const *message,
+ gint64 message_sent,
+ gint64 message_received,
+ guint32 sms_class);
+
void ring_text_channel_outgoing_sms_complete(RingTextChannel *,
char const *token);