summaryrefslogtreecommitdiffstats
path: root/src/smsutil.h
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-07-02 19:00:27 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-07-02 19:03:05 -0500
commita9f776123ead64166e8338fb3fca59fb4a6d93ab (patch)
tree6f469c91ffe9e85e451de74e2cc63b9a0214044b /src/smsutil.h
parentbf2543b2072e6ec2af92de876a080b65695905d1 (diff)
downloadofono-a9f776123ead64166e8338fb3fca59fb4a6d93ab.tar.bz2
Add Cell Broadcast assembly utilities
Diffstat (limited to 'src/smsutil.h')
-rw-r--r--src/smsutil.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/smsutil.h b/src/smsutil.h
index f04434d6..89da973f 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -373,6 +373,19 @@ struct cbs {
guint8 ud[82];
};
+struct cbs_assembly_node {
+ guint32 serial;
+ guint16 bitmap;
+ GSList *pages;
+};
+
+struct cbs_assembly {
+ GSList *assembly_list;
+ GSList *recv_plmn;
+ GSList *recv_loc;
+ GSList *recv_cell;
+};
+
static inline gboolean is_bit_set(unsigned char oct, int bit)
{
int mask = 0x1 << bit;
@@ -453,3 +466,10 @@ gboolean cbs_extract_app_port(const struct cbs *cbs, int *dst, int *src,
gboolean *is_8bit);
char *cbs_decode_text(GSList *cbs_list, char *iso639_lang);
+
+struct cbs_assembly *cbs_assembly_new();
+void cbs_assembly_free(struct cbs_assembly *assembly);
+GSList *cbs_assembly_add_page(struct cbs_assembly *assembly,
+ const struct cbs *cbs);
+void cbs_assembly_location_changed(struct cbs_assembly *assembly,
+ gboolean lac, gboolean ci);