https://bugs.winehq.org/show_bug.cgi?id=42225
--- Comment #18 from Aric Stewart aric@codeweavers.com --- (In reply to Samuele from comment #16)
(In reply to Aric Stewart from comment #15)
Any chance to look deeper into this?
-aric
Yeah I would love to be able to use this software, I'm willing to test sorry if I didn't reply sooner. I'm not sure I understood correctly what you were asking but I did this to print first and second byte of the buffer before and after the code that strips the leading zero and adds it back. Data seems to match:
trace:hid_report:HID_set_to_device [FIRST] Leading 0,nextchar: 0,194 trace:hid_report:hidraw_set_feature_report [SECOND] Leading 0,nextchar: 0,194
Is this meaning there are 2 leading 0s on the feature report (0,0,194) or is it just (0, 194) and that 0 is being removed and re-added?
Then in process_hid_report I've added code to print the report buffer and I get different reports depending on which card I swipe. It's hard to see if the data is correct because it uses magstripe encoding and I need to convert the bytes to binary data and check it manually.
Actually I was more thinking of just dumping the raw data and looking to see if thing changed. Something like this for the reports
diff --git a/dlls/winebus.sys/main.c b/dlls/winebus.sys/main.c index 1902d516c6..23ab790682 100644 --- a/dlls/winebus.sys/main.c +++ b/dlls/winebus.sys/main.c @@ -640,6 +640,14 @@ void process_hid_report(DEVICE_OBJECT *device, BYTE *report, DWORD length) if (!length || !report) return;
+{ + int ii; + ERR("Report Data: "); + for (ii = 0; ii < length; ii++) + ERR("%x ", report[ii]); + ERR("\n"); +} + EnterCriticalSection(&ext->report_cs); if (length > ext->buffer_size) {
thanks -aric