diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-09-12 09:19:23 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-09-14 07:05:25 +0200 |
commit | 1111bfa80664d88b5e9572a9d3de7c4f117e7384 (patch) | |
tree | cc8ecc79ebdbf58acd6a2cced2467d966a2f4640 /src | |
parent | bdf0f9484b4244c024599e00ec589ccc5b97893e (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.c | 9 | ||||
-rw-r--r-- | src/mm-sms-part.h | 4 | ||||
-rw-r--r-- | src/mm-sms.c | 1 |
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]), |