aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-07-22 20:00:15 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-10-25 19:47:18 +0200
commit7db17b64a3f7263f91c2f7e7625f3ba8a1d9a4b4 (patch)
tree98941112ec654e594398943991d56169218cbaa8 /src
parentdf986c076dec33128c2ba202062ce4338cef3ad2 (diff)
sms-part: handle CDMA teleservice ID and service category
Diffstat (limited to 'src')
-rw-r--r--src/mm-sms-part.c11
-rw-r--r--src/mm-sms-part.h8
-rw-r--r--src/mm-sms.c4
3 files changed, 21 insertions, 2 deletions
diff --git a/src/mm-sms-part.c b/src/mm-sms-part.c
index 9dde8ed7..9aafcc36 100644
--- a/src/mm-sms-part.c
+++ b/src/mm-sms-part.c
@@ -48,6 +48,10 @@ struct _MMSmsPart {
guint concat_reference;
guint concat_max;
guint concat_sequence;
+
+ /* CDMA specific */
+ MMSmsCdmaTeleserviceId cdma_teleservice_id;
+ MMSmsCdmaServiceCategory cdma_service_category;
};
void
@@ -162,6 +166,11 @@ mm_sms_part_should_concat (MMSmsPart *self)
return self->should_concat;
}
+PART_GET_FUNC (MMSmsCdmaTeleserviceId, cdma_teleservice_id)
+PART_SET_FUNC (MMSmsCdmaTeleserviceId, cdma_teleservice_id)
+PART_GET_FUNC (MMSmsCdmaServiceCategory, cdma_service_category)
+PART_SET_FUNC (MMSmsCdmaServiceCategory, cdma_service_category)
+
MMSmsPart *
mm_sms_part_new (guint index,
MMSmsPduType pdu_type)
@@ -173,6 +182,8 @@ mm_sms_part_new (guint index,
sms_part->pdu_type = pdu_type;
sms_part->encoding = MM_SMS_ENCODING_UNKNOWN;
sms_part->delivery_state = MM_SMS_DELIVERY_STATE_UNKNOWN;
+ sms_part->cdma_teleservice_id = MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN;
+ sms_part->cdma_service_category = MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN;
sms_part->class = -1;
return sms_part;
diff --git a/src/mm-sms-part.h b/src/mm-sms-part.h
index d5b373c5..822bad25 100644
--- a/src/mm-sms-part.h
+++ b/src/mm-sms-part.h
@@ -116,4 +116,12 @@ void mm_sms_part_set_concat_sequence (MMSmsPart *part,
gboolean mm_sms_part_should_concat (MMSmsPart *part);
+/* CDMA specific */
+MMSmsCdmaTeleserviceId mm_sms_part_get_cdma_teleservice_id (MMSmsPart *part);
+void mm_sms_part_set_cdma_teleservice_id (MMSmsPart *part,
+ MMSmsCdmaTeleserviceId cdma_teleservice_id);
+MMSmsCdmaServiceCategory mm_sms_part_get_cdma_service_category (MMSmsPart *part);
+void mm_sms_part_set_cdma_service_category (MMSmsPart *part,
+ MMSmsCdmaServiceCategory cdma_service_category);
+
#endif /* MM_SMS_PART_H */
diff --git a/src/mm-sms.c b/src/mm-sms.c
index e07273d6..48912d71 100644
--- a/src/mm-sms.c
+++ b/src/mm-sms.c
@@ -1500,8 +1500,8 @@ assemble_sms (MMSms *self,
g_byte_array_ref (fulldata)),
"smsc", mm_sms_part_get_smsc (sorted_parts[0]),
"class", mm_sms_part_get_class (sorted_parts[0]),
- "teleservice-id", MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN,
- "service-category", MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN,
+ "teleservice-id", mm_sms_part_get_cdma_teleservice_id (sorted_parts[0]),
+ "service-category", mm_sms_part_get_cdma_service_category (sorted_parts[0]),
"number", mm_sms_part_get_number (sorted_parts[0]),
"validity", (validity_relative ?
g_variant_new ("(uv)", MM_SMS_VALIDITY_TYPE_RELATIVE, g_variant_new_uint32 (validity_relative)) :