3      Copyright (C) Dean Camera, 2011. 
   5   dean [at] fourwalledcubicle [dot] com 
   9 #ifndef _DESCRIPTORS_H_ 
  10 #define _DESCRIPTORS_H_ 
  13                 #include <avr/pgmspace.h> 
  15                 #include <LUFA/Drivers/USB/USB.h> 
  17                 #include "TempDataLogger.h" 
  20                 /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ 
  21                 #define MASS_STORAGE_IN_EPNUM          3 
  23                 /** Endpoint number of the Mass Storage host-to-device data OUT endpoint. */ 
  24                 #define MASS_STORAGE_OUT_EPNUM         4 
  26                 /** Size in bytes of the Mass Storage data endpoints. */ 
  27                 #define MASS_STORAGE_IO_EPSIZE         64 
  29                 /** Endpoint number of the Generic HID reporting IN endpoint. */ 
  30                 #define GENERIC_IN_EPNUM               1 
  32                 /** Size in bytes of the Generic HID reporting endpoint. */ 
  33                 #define GENERIC_EPSIZE                 16 
  35                 /** Size in bytes of the Generic HID reports (including report ID byte). */ 
  36                 #define GENERIC_REPORT_SIZE            sizeof(Device_Report_t) 
  39                 /** Type define for the device configuration descriptor structure. This must be defined in the 
  40                  *  application code, as the configuration descriptor contains several sub-descriptors which 
  41                  *  vary between devices, and which describe the device's usage to the host. 
  45                         USB_Descriptor_Configuration_Header_t Config
; 
  47                         // Mass Storage Interface 
  48                         USB_Descriptor_Interface_t            MS_Interface
; 
  49                         USB_Descriptor_Endpoint_t             MS_DataInEndpoint
; 
  50                         USB_Descriptor_Endpoint_t             MS_DataOutEndpoint
; 
  52                         // Settings Management Generic HID Interface 
  53                         USB_Descriptor_Interface_t            HID_Interface
; 
  54                         USB_HID_Descriptor_HID_t              HID_GenericHID
; 
  55                         USB_Descriptor_Endpoint_t             HID_ReportINEndpoint
; 
  56                 } USB_Descriptor_Configuration_t
; 
  58         /* Function Prototypes: */ 
  59                 uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue
, 
  61                                                     const void** const DescriptorAddress
) 
  62                                                     ATTR_WARN_UNUSED_RESULT 
ATTR_NON_NULL_PTR_ARG(3);