X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/b37d77eab32d171ad7b28157a924a4026e2aebd1..d41cd9a41aca81eaa21e65e6c53672fe604fa3d5:/LUFA/Drivers/USB/Class/Host/HID.c diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c index c38766500..bb10ee2dd 100644 --- a/LUFA/Drivers/USB/Class/Host/HID.c +++ b/LUFA/Drivers/USB/Class/Host/HID.c @@ -3,7 +3,7 @@ Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ /* @@ -116,9 +116,9 @@ uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo } } - HIDInterfaceInfo->State.InterfaceNumber = HIDInterface->InterfaceNumber; - HIDInterfaceInfo->State.HIDReportSize = HIDDescriptor->HIDReportLength; - HIDInterfaceInfo->State.SupportsBootProtocol = (HIDInterface->SubClass != HID_BOOTP_NonBootProtocol); + HIDInterfaceInfo->State.InterfaceNumber = HIDInterface->InterfaceNumber; + HIDInterfaceInfo->State.HIDReportSize = HIDDescriptor->HIDReportLength; + HIDInterfaceInfo->State.SupportsBootProtocol = (HIDInterface->SubClass != HID_CSCP_NonBootProtocol); HIDInterfaceInfo->State.LargestReportSize = 8; HIDInterfaceInfo->State.IsActive = true; @@ -127,12 +127,13 @@ uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo static uint8_t DCOMP_HID_Host_NextHIDInterface(void* const CurrentDescriptor) { - if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface) + USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t); + + if (Header->Type == DTYPE_Interface) { - USB_Descriptor_Interface_t* CurrentInterface = DESCRIPTOR_PCAST(CurrentDescriptor, - USB_Descriptor_Interface_t); + USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t); - if (CurrentInterface->Class == HID_INTERFACE_CLASS) + if (Interface->Class == HID_CSCP_HIDClass) return DESCRIPTOR_SEARCH_Found; } @@ -141,9 +142,11 @@ static uint8_t DCOMP_HID_Host_NextHIDInterface(void* const CurrentDescriptor) static uint8_t DCOMP_HID_Host_NextHID(void* const CurrentDescriptor) { - if (DESCRIPTOR_TYPE(CurrentDescriptor) == HID_DTYPE_HID) + USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t); + + if (Header->Type == HID_DTYPE_HID) return DESCRIPTOR_SEARCH_Found; - else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface) + else if (Header->Type == DTYPE_Interface) return DESCRIPTOR_SEARCH_Fail; else return DESCRIPTOR_SEARCH_NotFound; @@ -151,15 +154,16 @@ static uint8_t DCOMP_HID_Host_NextHID(void* const CurrentDescriptor) static uint8_t DCOMP_HID_Host_NextHIDInterfaceEndpoint(void* const CurrentDescriptor) { - if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint) + USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t); + + if (Header->Type == DTYPE_Endpoint) { - USB_Descriptor_Endpoint_t* CurrentEndpoint = DESCRIPTOR_PCAST(CurrentDescriptor, - USB_Descriptor_Endpoint_t); + USB_Descriptor_Endpoint_t* Endpoint = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Endpoint_t); - if (!(Pipe_IsEndpointBound(CurrentEndpoint->EndpointAddress))) + if (!(Pipe_IsEndpointBound(Endpoint->EndpointAddress))) return DESCRIPTOR_SEARCH_Found; } - else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface) + else if (Header->Type == DTYPE_Interface) { return DESCRIPTOR_SEARCH_Fail; }