From: Robert M. <mar...@us...> - 2006-02-11 07:34:33
|
Update of /cvsroot/jvcl/dev/JVCL3/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6796/JVCL3/run Modified Files: JvHidControllerClass.pas Log Message: Singleton test removed from HID component, SetupApi updated to Jedi-apilib version Index: JvHidControllerClass.pas =================================================================== RCS file: /cvsroot/jvcl/dev/JVCL3/run/JvHidControllerClass.pas,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** JvHidControllerClass.pas 20 Sep 2005 10:38:13 -0000 1.31 --- JvHidControllerClass.pas 11 Feb 2006 07:34:22 -0000 1.32 *************** *** 498,502 **** RsEDeviceCannotBeIdentified = 'device cannot be identified'; RsEDeviceCannotBeOpened = 'device cannot be opened'; - RsEOnlyOneControllerPerProgram = 'Only one TJvHidDeviceController allowed per program'; RsEHIDBooleanError = 'HID Error: a boolean function failed'; --- 498,501 ---- *************** *** 506,514 **** Kernel32DllName = 'kernel32.dll'; ! var ! // counter to prevent a second TJvHidDeviceController instance ! GlobalInstanceCount: Integer = 0; ! ! //== =these are declared inconsistent in Windows.pas ========================= function ReadFileEx(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD; --- 505,509 ---- Kernel32DllName = 'kernel32.dll'; ! //=== these are declared inconsistent in Windows.pas ========================= function ReadFileEx(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD; *************** *** 546,557 **** end; procedure TJvHidDeviceReadThread.Execute; var SleepRet: DWORD; - - procedure Dummy(ErrorCode: DWORD; Count: DWORD; Ovl: POverlapped); stdcall; - begin - end; - begin SleepRet := WAIT_IO_COMPLETION; --- 541,551 ---- end; + procedure DummyReadCompletion(ErrorCode: DWORD; Count: DWORD; Ovl: POverlapped); stdcall; + begin + end; + procedure TJvHidDeviceReadThread.Execute; var SleepRet: DWORD; begin SleepRet := WAIT_IO_COMPLETION; *************** *** 561,565 **** SleepRet := WAIT_IO_COMPLETION; FillChar(Report[0], Device.Caps.InputReportByteLength, #0); ! if Device.ReadFileEx(Report[0], Device.Caps.InputReportByteLength, @Dummy) then begin // wait for read to complete --- 555,559 ---- SleepRet := WAIT_IO_COMPLETION; FillChar(Report[0], Device.Caps.InputReportByteLength, #0); ! if Device.ReadFileEx(Report[0], Device.Caps.InputReportByteLength, @DummyReadCompletion) then begin // wait for read to complete *************** *** 1567,1575 **** FInDeviceChange := False; - // this is just to remind you that one controller is sufficient - Inc(GlobalInstanceCount); - if GlobalInstanceCount > 1 then - raise EControllerError.CreateRes(@RsEOnlyOneControllerPerProgram); - FList := TList.Create; --- 1561,1564 ---- *************** *** 1596,1603 **** HidDev: TJvHidDevice; begin - Dec(GlobalInstanceCount); - // this only triggers if a second instance throws an exception - if GlobalInstanceCount > 0 then - Exit; // to prevent strange problems FDeviceChangeEvent := nil; --- 1585,1588 ---- |