Changes in uspace/lib/usbhid/src/hidpath.c [160b75e:5499a8b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhid/src/hidpath.c
r160b75e r5499a8b 41 41 #include <assert.h> 42 42 43 43 /*---------------------------------------------------------------------------*/ 44 /** 45 * Compares two usages if they are same or not or one of the usages is not 46 * set. 47 * 48 * @param usage1 49 * @param usage2 50 * @return boolean 51 */ 52 #define USB_HID_SAME_USAGE(usage1, usage2) \ 53 ((usage1 == usage2) || (usage1 == 0) || (usage2 == 0)) 54 55 /** 56 * Compares two usage pages if they are same or not or one of them is not set. 57 * 58 * @param page1 59 * @param page2 60 * @return boolean 61 */ 62 #define USB_HID_SAME_USAGE_PAGE(page1, page2) \ 63 ((page1 == page2) || (page1 == 0) || (page2 == 0)) 64 65 /*---------------------------------------------------------------------------*/ 44 66 /** 45 67 * Appends one item (couple of usage_path and usage) into the usage path … … 70 92 } 71 93 94 /*---------------------------------------------------------------------------*/ 72 95 /** 73 96 * Removes last item from the usage path structure … … 88 111 } 89 112 113 /*---------------------------------------------------------------------------*/ 90 114 /** 91 115 * Nulls last item of the usage path structure. … … 99 123 100 124 if(!list_empty(&usage_path->head)){ 101 item = list_get_instance(usage_path->head.prev, usb_hid_report_usage_path_t, link); 125 item = list_get_instance(usage_path->head.prev, 126 usb_hid_report_usage_path_t, link); 127 102 128 memset(item, 0, sizeof(usb_hid_report_usage_path_t)); 103 129 } 104 130 } 105 131 132 /*---------------------------------------------------------------------------*/ 106 133 /** 107 134 * Modifies last item of usage path structure by given usage page or usage … … 134 161 } 135 162 136 163 /*---------------------------------------------------------------------------*/ 164 /** 165 * 166 * 167 * 168 * 169 */ 137 170 void usb_hid_print_usage_path(usb_hid_report_path_t *path) 138 171 { … … 144 177 while(item != &path->head) { 145 178 146 path_item = list_get_instance(item, usb_hid_report_usage_path_t, link); 179 path_item = list_get_instance(item, usb_hid_report_usage_path_t, 180 link); 181 147 182 usb_log_debug("\tUSAGE_PAGE: %X\n", path_item->usage_page); 148 183 usb_log_debug("\tUSAGE: %X\n", path_item->usage); 149 184 usb_log_debug("\tFLAGS: %d\n", path_item->flags); 150 185 151 item = item->next; 152 } 153 } 154 186 item = item->next; 187 } 188 } 189 190 /*---------------------------------------------------------------------------*/ 155 191 /** 156 192 * Compares two usage paths structures … … 195 231 } 196 232 197 // projit skrz cestu a kdyz nekde sedi tak vratim EOK198 // dojduli az za konec tak nnesedi199 233 report_link = report_path->head.next; 200 234 path_link = path->head.next; 201 path_item = list_get_instance(path_link, usb_hid_report_usage_path_t, link); 235 path_item = list_get_instance(path_link, 236 usb_hid_report_usage_path_t, link); 202 237 203 238 while(report_link != &report_path->head) { 204 report_item = list_get_instance(report_link, usb_hid_report_usage_path_t, link); 205 if(report_item->usage_page == path_item->usage_page){ 239 report_item = list_get_instance(report_link, 240 usb_hid_report_usage_path_t, link); 241 242 if(USB_HID_SAME_USAGE_PAGE(report_item->usage_page, 243 path_item->usage_page)){ 244 206 245 if(only_page == 0){ 207 if(report_item->usage == path_item->usage) { 246 if(USB_HID_SAME_USAGE(report_item->usage, 247 path_item->usage)) { 248 208 249 return EOK; 209 250 } … … 235 276 236 277 report_item = list_get_instance(report_link, 237 usb_hid_report_usage_path_t, 238 link); 278 usb_hid_report_usage_path_t, link); 239 279 240 280 path_item = list_get_instance(path_link, 241 usb_hid_report_usage_path_t, 242 link); 243 244 if((report_item->usage_page != path_item->usage_page) ||245 ((only_page == 0) &&246 (report_item->usage !=path_item->usage))) {281 usb_hid_report_usage_path_t, link); 282 283 if(!USB_HID_SAME_USAGE_PAGE(report_item->usage_page, 284 path_item->usage_page) || ((only_page == 0) && 285 !USB_HID_SAME_USAGE(report_item->usage, 286 path_item->usage))) { 247 287 248 288 return 1; … … 254 294 } 255 295 256 if((((flags & USB_HID_PATH_COMPARE_BEGIN) != 0) && (path_link == &path->head)) || 257 ((report_link == &report_path->head) && (path_link == &path->head))) { 296 if((((flags & USB_HID_PATH_COMPARE_BEGIN) != 0) && 297 (path_link == &path->head)) || 298 ((report_link == &report_path->head) && 299 (path_link == &path->head))) { 300 258 301 return EOK; 259 302 } … … 277 320 278 321 report_item = list_get_instance(report_link, 279 usb_hid_report_usage_path_t,280 link); 322 usb_hid_report_usage_path_t, link); 323 281 324 path_item = list_get_instance(path_link, 282 usb_hid_report_usage_path_t, 283 link); 284 285 if((report_item->usage_page != path_item->usage_page) || 286 ((only_page == 0) && 287 (report_item->usage != path_item->usage))) { 288 return 1; 325 usb_hid_report_usage_path_t, link); 326 327 if(!USB_HID_SAME_USAGE_PAGE(report_item->usage_page, 328 path_item->usage_page) || ((only_page == 0) && 329 !USB_HID_SAME_USAGE(report_item->usage, 330 path_item->usage))) { 331 332 return 1; 289 333 } else { 290 334 report_link = report_link->prev; … … 308 352 } 309 353 354 /*---------------------------------------------------------------------------*/ 310 355 /** 311 356 * Allocates and initializes new usage path structure. … … 329 374 } 330 375 376 /*---------------------------------------------------------------------------*/ 331 377 /** 332 378 * Releases given usage path structure. … … 345 391 } 346 392 347 393 /*---------------------------------------------------------------------------*/ 348 394 /** 349 395 * Clone content of given usage path to the new one … … 352 398 * @return New copy of given usage path structure 353 399 */ 354 usb_hid_report_path_t *usb_hid_report_path_clone(usb_hid_report_path_t *usage_path) 400 usb_hid_report_path_t *usb_hid_report_path_clone( 401 usb_hid_report_path_t *usage_path) 355 402 { 356 403 link_t *path_link; … … 371 418 path_link = usage_path->head.next; 372 419 while(path_link != &usage_path->head) { 373 path_item = list_get_instance(path_link, usb_hid_report_usage_path_t, 420 path_item = list_get_instance(path_link, usb_hid_report_usage_path_t, 374 421 link); 375 422 new_path_item = malloc(sizeof(usb_hid_report_usage_path_t)); … … 392 439 } 393 440 394 441 /*---------------------------------------------------------------------------*/ 395 442 /** 396 443 * Sets report id in usage path structure … … 400 447 * @return Error code 401 448 */ 402 int usb_hid_report_path_set_report_id(usb_hid_report_path_t *path, uint8_t report_id) 449 int usb_hid_report_path_set_report_id(usb_hid_report_path_t *path, 450 uint8_t report_id) 403 451 { 404 452 if(path == NULL){
Note:
See TracChangeset
for help on using the changeset viewer.