diff --git a/src/logid/backend/dj/Report.cpp b/src/logid/backend/dj/Report.cpp index 49d2900..dff4040 100644 --- a/src/logid/backend/dj/Report.cpp +++ b/src/logid/backend/dj/Report.cpp @@ -44,10 +44,35 @@ static const std::array DJReportDesc = { 0xC0 // End Collection }; +static const std::array DJReportDesc2 = { + 0xA1, 0x01, // Collection (Application) + 0x85, 0x20, // Report ID (32) + 0x75, 0x08, // Report Size (8) + 0x95, 0x0E, // Report Count (14) + 0x15, 0x00, // Logical Minimum (0) + 0x26, 0xFF, 0x00, // Logical Maximum (255) + 0x09, 0x41, // Usage (0x41) + 0x81, 0x00, // Input (Data, Array, Absolute) + 0x09, 0x41, // Usage (0x41) + 0x91, 0x00, // Output (Data, Array, Absolute) + 0x85, 0x21, // Report ID (33) + 0x95, 0x1F, // Report Count (31) + 0x15, 0x00, // Logical Minimum (0) + 0x26, 0xFF, 0x00, // Logical Maximum (255) + 0x09, 0x42, // Usage (0x42) + 0x81, 0x00, // Input (Data, Array, Absolute) + 0x09, 0x42, // Usage (0x42) + 0x91, 0x00, // Output (Data, Array, Absolute) + 0xC0 // End Collection +}; + bool dj::supportsDjReports(std::vector&& rdesc) { auto it = std::search(rdesc.begin(), rdesc.end(), DJReportDesc.begin(), DJReportDesc.end()); + if(it == rdesc.end()) + it = std::search(rdesc.begin(), rdesc.end(), + DJReportDesc2.begin(), DJReportDesc2.end()); return it != rdesc.end(); }