From 3cc55c4ae3856bae820c1445e45017d3d473639c Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Mon, 12 Aug 2024 17:46:38 +0200 Subject: [PATCH] btstack_hid_parser: add HID Descriptor Iterator --- src/btstack_hid_parser.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/btstack_hid_parser.c b/src/btstack_hid_parser.c index d2eae1e6a..ce2eae8e0 100644 --- a/src/btstack_hid_parser.c +++ b/src/btstack_hid_parser.c @@ -455,7 +455,7 @@ void btstack_hid_descriptor_iterator_init(btstack_hid_descriptor_iterator_t * it } bool btstack_hid_descriptor_iterator_has_more(btstack_hid_descriptor_iterator_t * iterator){ - if ((iterator->item_ready == false) && (iterator->descriptor_len > 0)){ + if ((iterator->item_ready == false) && (iterator->descriptor_len > iterator->descriptor_pos)){ uint16_t item_len = iterator->descriptor_len - iterator->descriptor_pos; const uint8_t *item_data = &iterator->descriptor[iterator->descriptor_pos]; bool ok = btstack_hid_parse_descriptor_item(&iterator->descriptor_item, item_data, item_len); @@ -469,11 +469,7 @@ bool btstack_hid_descriptor_iterator_has_more(btstack_hid_descriptor_iterator_t } const hid_descriptor_item_t * const btstack_hid_descriptor_iterator_get_item(btstack_hid_descriptor_iterator_t * iterator){ - - btstack_assert(iterator->descriptor_len >= iterator->descriptor_item.item_size); - - iterator->descriptor_len -= iterator->descriptor_item.item_size; - iterator->descriptor += iterator->descriptor_item.item_size; + iterator->descriptor_pos += iterator->descriptor_item.item_size; iterator->item_ready = false; return &iterator->descriptor_item; }