aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-09-12 09:19:23 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-09-14 07:05:25 +0200
commit1111bfa80664d88b5e9572a9d3de7c4f117e7384 (patch)
treecc8ecc79ebdbf58acd6a2cced2467d966a2f4640 /src
parentbdf0f9484b4244c024599e00ec589ccc5b97893e (diff)
api: new `DeliveryState' property in the SMS interface
Given only for STATUS REPORT SMS messages.
Diffstat (limited to 'src')
-rw-r--r--src/mm-sms-part.c9
-rw-r--r--src/mm-sms-part.h4
-rw-r--r--src/mm-sms.c1
3 files changed, 13 insertions, 1 deletions
diff --git a/src/mm-sms-part.c b/src/mm-sms-part.c
index 95c41264..4f21e3a7 100644
--- a/src/mm-sms-part.c
+++ b/src/mm-sms-part.c
@@ -331,6 +331,8 @@ struct _MMSmsPart {
guint validity;
gboolean delivery_report_request;
guint message_reference;
+ /* NOT a MMSmsDeliveryState, which just includes the known values */
+ guint delivery_state;
gboolean should_concat;
guint concat_reference;
@@ -413,6 +415,8 @@ PART_GET_FUNC (gboolean, delivery_report_request)
PART_SET_FUNC (gboolean, delivery_report_request)
PART_GET_FUNC (guint, message_reference)
PART_SET_FUNC (guint, message_reference)
+PART_GET_FUNC (guint, delivery_state)
+PART_SET_FUNC (guint, delivery_state)
PART_GET_FUNC (guint, concat_reference)
@@ -459,6 +463,8 @@ mm_sms_part_new (guint index,
sms_part = g_slice_new0 (MMSmsPart);
sms_part->index = index;
sms_part->pdu_type = pdu_type;
+ sms_part->encoding = MM_SMS_ENCODING_UNKNOWN;
+ sms_part->delivery_state = MM_SMS_DELIVERY_STATE_UNKNOWN;
return sms_part;
}
@@ -693,7 +699,8 @@ mm_sms_part_new_from_binary_pdu (guint index,
offset += 7;
/* ----- TP-STATUS (1 byte) ------ */
- mm_dbg (" status: %u", (guint)pdu[offset]);
+ mm_dbg (" delivery state: %u", (guint)pdu[offset]);
+ mm_sms_part_set_delivery_state (sms_part, pdu[offset]);
offset++;
/* ------ TP-PI (1 byte) OPTIONAL ------ */
diff --git a/src/mm-sms-part.h b/src/mm-sms-part.h
index bfb11753..ee5f62f2 100644
--- a/src/mm-sms-part.h
+++ b/src/mm-sms-part.h
@@ -108,6 +108,10 @@ guint mm_sms_part_get_validity (MMSmsPart *part);
void mm_sms_part_set_validity (MMSmsPart *part,
guint validity);
+guint mm_sms_part_get_delivery_state (MMSmsPart *part);
+void mm_sms_part_set_delivery_state (MMSmsPart *part,
+ guint delivery_state);
+
guint mm_sms_part_get_message_reference (MMSmsPart *part);
void mm_sms_part_set_message_reference (MMSmsPart *part,
guint message_reference);
diff --git a/src/mm-sms.c b/src/mm-sms.c
index 1de83af0..f9e9b251 100644
--- a/src/mm-sms.c
+++ b/src/mm-sms.c
@@ -1252,6 +1252,7 @@ assemble_sms (MMSms *self,
"validity", mm_sms_part_get_validity (sorted_parts[0]),
"timestamp", mm_sms_part_get_timestamp (sorted_parts[0]),
"discharge-timestamp", mm_sms_part_get_discharge_timestamp (sorted_parts[0]),
+ "delivery-state", mm_sms_part_get_delivery_state (sorted_parts[0]),
/* delivery report request and message reference taken always from the last part */
"message-reference", mm_sms_part_get_message_reference (sorted_parts[self->priv->max_parts - 1]),
"delivery-report-request", mm_sms_part_get_delivery_report_request (sorted_parts[self->priv->max_parts - 1]),