diff options
author | Andrzej Zaborowski <andrew.zaborowski@intel.com> | 2010-05-16 16:07:22 +0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-05-25 16:52:54 -0500 |
commit | 429d03c965cbfbd06620969060fff569711d4746 (patch) | |
tree | 6d87323c8bfa173df3e1ff008b0a52bbf6266ea7 /src | |
parent | 0366159a66f377d1d3e71e7c41f08dc3af0358a2 (diff) | |
download | ofono-429d03c965cbfbd06620969060fff569711d4746.tar.bz2 |
stkutil: Add Select Item response builder
Diffstat (limited to 'src')
-rw-r--r-- | src/stkutil.c | 21 | ||||
-rw-r--r-- | src/stkutil.h | 5 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/stkutil.c b/src/stkutil.c index 6dc55a11..c9a9918f 100644 --- a/src/stkutil.c +++ b/src/stkutil.c @@ -3038,6 +3038,21 @@ static inline gboolean stk_tlv_append_bytes(struct stk_tlv_builder *iter, return TRUE; } +/* Described in TS 102.223 Section 8.6 */ +static gboolean build_dataobj_item_id(struct stk_tlv_builder *tlv, + const void *data, gboolean cr) +{ + const unsigned char *item_id = data; + + if (*item_id == 0) + return TRUE; + + return stk_tlv_open_container(tlv, cr, + STK_DATA_OBJECT_TYPE_ITEM_ID, FALSE) && + stk_tlv_append_byte(tlv, *item_id) && + stk_tlv_close_container(tlv); +} + /* Described in TS 102.223 Section 8.8 */ static gboolean build_dataobj_duration(struct stk_tlv_builder *tlv, const void *data, gboolean cr) @@ -3220,6 +3235,12 @@ unsigned int stk_pdu_from_response(const struct stk_response *response, case STK_COMMAND_TYPE_REFRESH: case STK_COMMAND_TYPE_SETUP_MENU: break; + case STK_COMMAND_TYPE_SELECT_ITEM: + ok = build_dataobj(&builder, + build_dataobj_item_id, DATAOBJ_FLAG_CR, + &response->select_item.item_id, + NULL); + break; default: return 0; }; diff --git a/src/stkutil.h b/src/stkutil.h index 96919f3a..1810b8ed 100644 --- a/src/stkutil.h +++ b/src/stkutil.h @@ -1018,6 +1018,10 @@ struct stk_response_poll_interval { struct stk_duration max_interval; }; +struct stk_response_select_item { + unsigned char item_id; +}; + struct stk_response { unsigned char number; unsigned char type; @@ -1034,6 +1038,7 @@ struct stk_response { struct stk_response_poll_interval poll_interval; struct stk_response_generic refresh; struct stk_response_generic set_up_menu; + struct stk_response_select_item select_item; struct stk_response_generic send_sms; }; |