uint8_t FoundEndpoints = 0;\r
\r
/* Get Configuration Descriptor size from the device */\r
- if (USB_Host_GetDeviceConfigDescriptor(&ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful)\r
+ if (USB_GetDeviceConfigDescriptor(&ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful)\r
return ControlError;\r
\r
/* Ensure that the Configuration Descriptor isn't too large */\r
ConfigDescriptorData = alloca(ConfigDescriptorSize);\r
\r
/* Retrieve the entire configuration descriptor into the allocated buffer */\r
- USB_Host_GetDeviceConfigDescriptor(&ConfigDescriptorSize, ConfigDescriptorData);\r
+ USB_GetDeviceConfigDescriptor(&ConfigDescriptorSize, ConfigDescriptorData);\r
\r
/* Validate returned data - ensure first entry is a configuration header descriptor */\r
if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)\r
return InvalidConfigDataReturned;\r
\r
/* Get the HID interface from the configuration descriptor */\r
- if (USB_Host_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData, NextHIDInterface))\r
+ if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
+ DComp_NextHIDInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
{\r
/* Descriptor not found, error out */\r
return NoHIDInterfaceFound;\r
while (FoundEndpoints != ((1 << HID_DATA_IN_PIPE) | (1 << HID_DATA_OUT_PIPE)))\r
{\r
/* Get the next HID interface's data endpoint descriptor */\r
- if (USB_Host_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
- NextInterfaceHIDDataEndpoint))\r
+ if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
+ DComp_NextInterfaceHIDDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)\r
{\r
/* Not all HID devices have an OUT endpoint - if we've reached the end of the HID descriptor\r
* but only found the mandatory IN endpoint, it's safe to continue with the device enumeration */\r
EndpointData->EndpointAddress, EndpointData->EndpointSize, PIPE_BANK_SINGLE);\r
\r
Pipe_SetInfiniteINRequests();\r
-\r
- #if defined(INTERRUPT_DATA_PIPE)\r
- Pipe_SetInterruptPeriod(EndpointData->PollingIntervalMS);\r
-\r
- /* Enable the pipe IN interrupt for the data pipe */\r
- USB_INT_Enable(PIPE_INT_IN); \r
- #endif\r
\r
FoundEndpoints |= (1 << HID_DATA_IN_PIPE);\r
}\r
*\r
* \return A value from the DSEARCH_Return_ErrorCodes_t enum\r
*/\r
-DESCRIPTOR_COMPARATOR(NextHIDInterface)\r
+uint8_t DComp_NextHIDInterface(void* CurrentDescriptor)\r
{\r
/* Determine if the current descriptor is an interface descriptor */\r
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)\r
if (DESCRIPTOR_CAST(CurrentDescriptor, USB_Descriptor_Interface_t).Class == HID_CLASS)\r
{\r
/* Indicate that the descriptor being searched for has been found */\r
- return Descriptor_Search_Found;\r
+ return DESCRIPTOR_SEARCH_Found;\r
}\r
}\r
\r
/* Current descriptor does not match what this comparator is looking for */\r
- return Descriptor_Search_NotFound;\r
+ return DESCRIPTOR_SEARCH_NotFound;\r
}\r
\r
/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's\r
*\r
* \return A value from the DSEARCH_Return_ErrorCodes_t enum\r
*/\r
-DESCRIPTOR_COMPARATOR(NextInterfaceHIDDataEndpoint)\r
+uint8_t DComp_NextInterfaceHIDDataEndpoint(void* CurrentDescriptor)\r
{\r
/* Determine the type of the current descriptor */\r
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)\r
{\r
/* Indicate that the descriptor being searched for has been found */\r
- return Descriptor_Search_Found;\r
+ return DESCRIPTOR_SEARCH_Found;\r
}\r
else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)\r
{\r
/* Indicate that the search has failed prematurely and should be aborted */\r
- return Descriptor_Search_Fail;\r
+ return DESCRIPTOR_SEARCH_Fail;\r
}\r
\r
/* Current descriptor does not match what this comparator is looking for */\r
- return Descriptor_Search_NotFound;\r
+ return DESCRIPTOR_SEARCH_NotFound;\r
}\r