From: Yang Gu <gyagp0@gmail.com>
To: ofono@ofono.org
Subject: [PATCH 02/13] Add parser for frame layout objects
Date: Thu, 22 Apr 2010 23:12:19 +0800 [thread overview]
Message-ID: <1271949150-9085-2-git-send-email-yang.gu@intel.com> (raw)
In-Reply-To: <1271949150-9085-1-git-send-email-yang.gu@intel.com>
[-- Attachment #1: Type: text/plain, Size: 2506 bytes --]
---
src/stkutil.c | 26 ++++++++++++++++++++++++++
src/stkutil.h | 16 ++++++++++++++++
2 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/src/stkutil.c b/src/stkutil.c
index b855b0f..fab60a9 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -1578,6 +1578,30 @@ static gboolean parse_dataobj_browsing_status(
return parse_dataobj_common_byte_array(iter, array);
}
+/* Defined in TS 102.223 Section 8.78 */
+static gboolean parse_dataobj_frame_layout(struct comprehension_tlv_iter *iter,
+ void *user)
+{
+ struct stk_frame_layout *fl = user;
+ const unsigned char *data;
+ unsigned char len = comprehension_tlv_iter_get_length(iter);
+
+ if (len < 2)
+ return FALSE;
+
+ data = comprehension_tlv_iter_get_data(iter);
+
+ if (data[0] != STK_LAYOUT_HORIZONTAL &&
+ data[0] != STK_LAYOUT_VERTICAL)
+ return FALSE;
+
+ fl->layout = data[0];
+ fl->len = len - 1;
+ memcpy(fl->size, data + 1, fl->len);
+
+ return TRUE;
+}
+
/* Defined in TS 102.223 Section 8.80 */
static gboolean parse_dataobj_frame_id(struct comprehension_tlv_iter *iter,
void *user)
@@ -1741,6 +1765,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
return parse_dataobj_battery_state;
case STK_DATA_OBJECT_TYPE_BROWSING_STATUS:
return parse_dataobj_browsing_status;
+ case STK_DATA_OBJECT_TYPE_FRAME_LAYOUT:
+ return parse_dataobj_frame_layout;
case STK_DATA_OBJECT_TYPE_FRAME_ID:
return parse_dataobj_frame_id;
default:
diff --git a/src/stkutil.h b/src/stkutil.h
index 98da709..52b62af 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -365,6 +365,11 @@ enum stk_battery_state {
STK_BATTERY_FULL = 0x04
};
+enum stk_frame_layout_type {
+ STK_LAYOUT_HORIZONTAL = 0x01,
+ STK_LAYOUT_VERTICAL = 0x02
+};
+
/* For data object that only has a byte array with undetermined length */
struct stk_common_byte_array {
unsigned char *array;
@@ -693,6 +698,17 @@ struct stk_item_text_attribute_list {
unsigned char len;
};
+/*
+ * According to 102.223 Section 8.78 the length of CTLV is 1 byte. This means
+ * that the maximum length is 127 bytes for the total length of layout and
+ * relative-sized frame. Thus the maximum length of relative size is 126 bytes.
+ */
+struct stk_frame_layout {
+ unsigned char layout;
+ unsigned char size[126];
+ unsigned int len;
+};
+
struct stk_command_display_text {
char *text;
struct stk_icon_id icon_id;
--
1.7.0.4
next prev parent reply other threads:[~2010-04-22 15:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-22 15:12 [PATCH 01/13] Add parser for browsing status objects Yang Gu
2010-04-22 15:12 ` Yang Gu [this message]
2010-04-22 15:12 ` [PATCH 03/13] Add parser for frames information objects Yang Gu
2010-04-22 15:12 ` [PATCH 04/13] Add parser for meid objects Yang Gu
2010-04-22 15:12 ` [PATCH 05/13] Add parser for multimedia message reference objects Yang Gu
2010-04-22 15:12 ` [PATCH 06/13] Add parser for multimedia message identifier objects Yang Gu
2010-04-22 15:12 ` [PATCH 07/13] Add parser for multimedia message transfer status objects Yang Gu
2010-04-22 15:12 ` [PATCH 08/13] Add parser for mm content identifier objects Yang Gu
2010-04-22 15:12 ` [PATCH 09/13] Add parser for multimedia message notification objects Yang Gu
2010-04-22 15:12 ` [PATCH 10/13] Add parser for last envelope objects Yang Gu
2010-04-22 15:12 ` [PATCH 11/13] Add parser for registry application data objects Yang Gu
2010-04-22 15:12 ` [PATCH 12/13] Add parser for activate descriptor objects Yang Gu
2010-04-22 15:12 ` [PATCH 13/13] Add parser for broadcast network information objects Yang Gu
2010-04-23 16:54 ` [PATCH 01/13] Add parser for browsing status objects Denis Kenzior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1271949150-9085-2-git-send-email-yang.gu@intel.com \
--to=gyagp0@gmail.com \
--cc=ofono@ofono.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.