@@ -402,6 +402,171 @@ static inline bool tud_hid_gamepad_report(uint8_t report_id, int8_t x, int8_t y
402
402
HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
403
403
HID_COLLECTION_END \
404
404
405
+ // HID Lighting and Illumination Report Descriptor Template
406
+ // - 1st parameter is report id HID_REPORT_ID(n) (optional)
407
+ #define TUD_HID_REPORT_DESC_LIGHTING (report_id ) \
408
+ HID_USAGE_PAGE ( HID_USAGE_PAGE_LIGHTING_AND_ILLUMINATION ),\
409
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ARRAY ),\
410
+ HID_COLLECTION ( HID_COLLECTION_APPLICATION ),\
411
+ /* Lamp Array Attributes Report */ \
412
+ HID_REPORT_ID (report_id ) \
413
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ARRAY_ATTRIBUTES_REPORT ),\
414
+ HID_COLLECTION ( HID_COLLECTION_LOGICAL ),\
415
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_COUNT ),\
416
+ HID_LOGICAL_MIN ( 0 ),\
417
+ HID_LOGICAL_MAX_N ( 65535 , 3 ),\
418
+ HID_REPORT_SIZE ( 16 ),\
419
+ HID_REPORT_COUNT ( 1 ),\
420
+ HID_FEATURE ( HID_CONSTANT | HID_VARIABLE | HID_ABSOLUTE ),\
421
+ HID_USAGE ( HID_USAGE_LIGHTING_BOUNDING_BOX_WIDTH_IN_MICROMETERS ),\
422
+ HID_USAGE ( HID_USAGE_LIGHTING_BOUNDING_BOX_HEIGHT_IN_MICROMETERS ),\
423
+ HID_USAGE ( HID_USAGE_LIGHTING_BOUNDING_BOX_DEPTH_IN_MICROMETERS ),\
424
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ARRAY_KIND ),\
425
+ HID_USAGE ( HID_USAGE_LIGHTING_MIN_UPDATE_INTERVAL_IN_MICROSECONDS ),\
426
+ HID_LOGICAL_MIN ( 0 ),\
427
+ HID_LOGICAL_MAX_N ( 2147483647 , 3 ),\
428
+ HID_REPORT_SIZE ( 32 ),\
429
+ HID_REPORT_COUNT ( 5 ),\
430
+ HID_FEATURE ( HID_CONSTANT | HID_VARIABLE | HID_ABSOLUTE ),\
431
+ HID_COLLECTION_END ,\
432
+ /* Lamp Attributes Request Report */ \
433
+ HID_REPORT_ID ( report_id + 1 ) \
434
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ATTRIBUTES_REQUEST_REPORT ),\
435
+ HID_COLLECTION ( HID_COLLECTION_LOGICAL ),\
436
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ID ),\
437
+ HID_LOGICAL_MIN ( 0 ),\
438
+ HID_LOGICAL_MAX_N ( 65535 , 3 ),\
439
+ HID_REPORT_SIZE ( 16 ),\
440
+ HID_REPORT_COUNT ( 1 ),\
441
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
442
+ HID_COLLECTION_END ,\
443
+ /* Lamp Attributes Response Report */ \
444
+ HID_REPORT_ID ( report_id + 2 ) \
445
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ATTRIBUTES_RESPONSE_REPORT ),\
446
+ HID_COLLECTION ( HID_COLLECTION_LOGICAL ),\
447
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ID ),\
448
+ HID_LOGICAL_MIN ( 0 ),\
449
+ HID_LOGICAL_MAX_N ( 65535 , 3 ),\
450
+ HID_REPORT_SIZE ( 16 ),\
451
+ HID_REPORT_COUNT ( 1 ),\
452
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
453
+ HID_USAGE ( HID_USAGE_LIGHTING_POSITION_X_IN_MICROMETERS ),\
454
+ HID_USAGE ( HID_USAGE_LIGHTING_POSITION_Y_IN_MICROMETERS ),\
455
+ HID_USAGE ( HID_USAGE_LIGHTING_POSITION_Z_IN_MICROMETERS ),\
456
+ HID_USAGE ( HID_USAGE_LIGHTING_UPDATE_LATENCY_IN_MICROSECONDS ),\
457
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_PURPOSES ),\
458
+ HID_LOGICAL_MIN ( 0 ),\
459
+ HID_LOGICAL_MAX_N ( 2147483647 , 3 ),\
460
+ HID_REPORT_SIZE ( 32 ),\
461
+ HID_REPORT_COUNT ( 5 ),\
462
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
463
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_LEVEL_COUNT ),\
464
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_LEVEL_COUNT ),\
465
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_LEVEL_COUNT ),\
466
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_LEVEL_COUNT ),\
467
+ HID_USAGE ( HID_USAGE_LIGHTING_IS_PROGRAMMABLE ),\
468
+ HID_USAGE ( HID_USAGE_LIGHTING_INPUT_BINDING ),\
469
+ HID_LOGICAL_MIN ( 0 ),\
470
+ HID_LOGICAL_MAX_N ( 255 , 2 ),\
471
+ HID_REPORT_SIZE ( 8 ),\
472
+ HID_REPORT_COUNT ( 6 ),\
473
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
474
+ HID_COLLECTION_END ,\
475
+ /* Lamp Multi-Update Report */ \
476
+ HID_REPORT_ID ( report_id + 3 ) \
477
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_MULTI_UPDATE_REPORT ),\
478
+ HID_COLLECTION ( HID_COLLECTION_LOGICAL ),\
479
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_COUNT ),\
480
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_UPDATE_FLAGS ),\
481
+ HID_LOGICAL_MIN ( 0 ),\
482
+ HID_LOGICAL_MAX ( 8 ),\
483
+ HID_REPORT_SIZE ( 8 ),\
484
+ HID_REPORT_COUNT ( 2 ),\
485
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
486
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ID ),\
487
+ HID_LOGICAL_MIN ( 0 ),\
488
+ HID_LOGICAL_MAX_N ( 65535 , 3 ),\
489
+ HID_REPORT_SIZE ( 16 ),\
490
+ HID_REPORT_COUNT ( 8 ),\
491
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
492
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
493
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
494
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
495
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
496
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
497
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
498
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
499
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
500
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
501
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
502
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
503
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
504
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
505
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
506
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
507
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
508
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
509
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
510
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
511
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
512
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
513
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
514
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
515
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
516
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
517
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
518
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
519
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
520
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
521
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
522
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
523
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
524
+ HID_LOGICAL_MIN ( 0 ),\
525
+ HID_LOGICAL_MAX_N ( 255 , 2 ),\
526
+ HID_REPORT_SIZE ( 8 ),\
527
+ HID_REPORT_COUNT ( 32 ),\
528
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
529
+ HID_COLLECTION_END ,\
530
+ /* Lamp Range Update Report */ \
531
+ HID_REPORT_ID ( report_id + 4 ) \
532
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_RANGE_UPDATE_REPORT ),\
533
+ HID_COLLECTION ( HID_COLLECTION_LOGICAL ),\
534
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_UPDATE_FLAGS ),\
535
+ HID_LOGICAL_MIN ( 0 ),\
536
+ HID_LOGICAL_MAX ( 8 ),\
537
+ HID_REPORT_SIZE ( 8 ),\
538
+ HID_REPORT_COUNT ( 1 ),\
539
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
540
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ID_START ),\
541
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ID_END ),\
542
+ HID_LOGICAL_MIN ( 0 ),\
543
+ HID_LOGICAL_MAX_N ( 65535 , 3 ),\
544
+ HID_REPORT_SIZE ( 16 ),\
545
+ HID_REPORT_COUNT ( 2 ),\
546
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
547
+ HID_USAGE ( HID_USAGE_LIGHTING_RED_UPDATE_CHANNEL ),\
548
+ HID_USAGE ( HID_USAGE_LIGHTING_GREEN_UPDATE_CHANNEL ),\
549
+ HID_USAGE ( HID_USAGE_LIGHTING_BLUE_UPDATE_CHANNEL ),\
550
+ HID_USAGE ( HID_USAGE_LIGHTING_INTENSITY_UPDATE_CHANNEL ),\
551
+ HID_LOGICAL_MIN ( 0 ),\
552
+ HID_LOGICAL_MAX_N ( 255 , 2 ),\
553
+ HID_REPORT_SIZE ( 8 ),\
554
+ HID_REPORT_COUNT ( 4 ),\
555
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
556
+ HID_COLLECTION_END ,\
557
+ /* Lamp Array Control Report */ \
558
+ HID_REPORT_ID ( report_id + 5 ) \
559
+ HID_USAGE ( HID_USAGE_LIGHTING_LAMP_ARRAY_CONTROL_REPORT ),\
560
+ HID_COLLECTION ( HID_COLLECTION_LOGICAL ),\
561
+ HID_USAGE ( HID_USAGE_LIGHTING_AUTONOMOUS_MODE ),\
562
+ HID_LOGICAL_MIN ( 0 ),\
563
+ HID_LOGICAL_MAX ( 1 ),\
564
+ HID_REPORT_SIZE ( 8 ),\
565
+ HID_REPORT_COUNT ( 1 ),\
566
+ HID_FEATURE ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),\
567
+ HID_COLLECTION_END ,\
568
+ HID_COLLECTION_END \
569
+
405
570
//--------------------------------------------------------------------+
406
571
// Internal Class Driver API
407
572
//--------------------------------------------------------------------+
0 commit comments