Add parser for Response Length objects

This commit is contained in:
Denis Kenzior 2010-03-01 17:57:18 -06:00
parent 704d6175b7
commit 2c1cdebd1a
2 changed files with 33 additions and 0 deletions

View File

@ -69,6 +69,28 @@ static gboolean parse_dataobj_duration(struct comprehension_tlv_iter *iter,
return TRUE;
}
/* Defined in TS 102.223 Section 8.11 */
static gboolean parse_dataobj_response_len(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_response_length *response_len = user;
const unsigned char *data;
if (comprehension_tlv_iter_get_tag(iter) !=
STK_DATA_OBJECT_TYPE_RESPONSE_LENGTH)
return FALSE;
if (comprehension_tlv_iter_get_length(iter) != 2)
return FALSE;
data = comprehension_tlv_iter_get_data(iter);
response_len->min = data[0];
response_len->max = data[1];
return TRUE;
}
/* Defined in TS 102.223 Section 8.15 */
static gboolean parse_dataobj_text(struct comprehension_tlv_iter *iter,
void *user)
@ -227,6 +249,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
switch (type) {
case STK_DATA_OBJECT_TYPE_DURATION:
return parse_dataobj_duration;
case STK_DATA_OBJECT_TYPE_RESPONSE_LENGTH:
return parse_dataobj_response_len;
case STK_DATA_OBJECT_TYPE_TEXT:
return parse_dataobj_text;
case STK_DATA_OBJECT_TYPE_ICON_ID:

View File

@ -220,6 +220,15 @@ struct stk_text_attribute {
unsigned char len;
};
/*
* According to 102.223 Section 8.11, the maximum length should never be set
* to 0.
*/
struct stk_response_length {
unsigned char min;
unsigned char max;
};
struct stk_command_display_text {
char *text;
struct stk_icon_identifier icon_id;