len_white:
I've copied my report descriptor (from hid.c) .. Could you see if it looks ok?
Your report descriptor is slightly modified one from the "Sample Report Descriptor (Parallel/Hybrid Mode)" on the MS document, DigitizerDrvs_touch.docx (
http://msdn.microsoft.com/en-us/windows/hardware/gg487437.aspx )
- Touch Valid Usage (bit) is deleted
- X,Y range is reduced from 0x7FFF to 0x0FFF
1) Missing USAGE_PAGE (Digitizers)
USAGE_PAGE (Digitizers) is required at the second touch collection, because the Usage Page is altered by the USAGE_PAGE (Generic DeskTop) of the first collection.
0xA1, 0x02, // COLLECTION (Logical) - second touch
0x05, 0x0D, // USAGE_PAGE (Digitizers) // <--------
0x09, 0x42, // USAGE (Tip Switch)
2) The size of the input report is 14 bytes
Byte offset
0 Report ID (1)
First touch
1 Tip Switch / In Range / 6bits padding
2 Contact Identifier
3, 4 X
5, 6 Y
Second touch
7 Tip Switch / In Range / 6bits padding
8 Contact Identifier
9, 10 X
11, 12 Y
13 Actual count
3) Feature report
The report ID of the feature report is 1, which is defined at the top of your report descriptor ( REPORT_ID (Touch) )
The size of Feature report is 2 bytes.
Byte offset
0 Report ID (1)
1 Maximum Count
Tsuneo