#ifndef _DESCRIPTORS_H_
#define _DESCRIPTORS_H_
#include <avr/pgmspace.h>
#include <LUFA/Drivers/USB/USB.h>
#include "TempDataLogger.h"
#include "Config/AppConfig.h"
#define MASS_STORAGE_IN_EPADDR (ENDPOINT_DIR_IN | 3)
#define MASS_STORAGE_OUT_EPADDR (ENDPOINT_DIR_OUT | 4)
#define MASS_STORAGE_IO_EPSIZE 64
#define GENERIC_IN_EPADDR (ENDPOINT_DIR_IN | 1)
#define GENERIC_EPSIZE 16
#define GENERIC_REPORT_SIZE sizeof(Device_Report_t)
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
USB_Descriptor_Interface_t MS_Interface;
USB_Descriptor_Endpoint_t MS_DataInEndpoint;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
USB_Descriptor_Interface_t HID_Interface;
USB_HID_Descriptor_HID_t HID_GenericHID;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
enum InterfaceDescriptors_t
{
INTERFACE_ID_MassStorage = 0,
INTERFACE_ID_HID = 1,
};
enum StringDescriptors_t
{
STRING_ID_Language = 0,
STRING_ID_Manufacturer = 1,
STRING_ID_Product = 2,
};
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint16_t wIndex,
const void** const DescriptorAddress)
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
#endif