Commit d0806c81 authored by Dean Camera's avatar Dean Camera
Browse files

Deleted StdDescriptors.c, renamed USB_GetDescriptor() to...

Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor, moved ConfigDescriptor.c/.h from the LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs.
parent b3a4d851
......@@ -138,10 +138,9 @@ SRC = $(TARGET).c \
$(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c \
$(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \
$(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c \
$(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c \
......
This diff is collapsed.
......@@ -26,6 +26,8 @@
* - Removed DESCRIPTOR_COMPARATOR() macro - comparators should now use regular function definitions to clarify user code
* - USB_IsConnected is now cleared before the USB_Disconnect() event is fired in response to VBUS being removed
* - Fixed incorrect PID value being used in the USBtoSerial project (thanks to Phill)
* - Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor, moved ConfigDescriptor.c/.h from the
* LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs
*
*
* \section Sec_ChangeLog090510 Version 090510
......
......@@ -267,17 +267,6 @@
* \ref Group_USBManagement documentation).
*/
void EVENT_USB_Reset(void);
/** Event for USB device mode error. This event fires when the USB interface is in device mode,
* and an error occurs which prevents it from operating normally.
*
* \param ErrorCode Error code indicating the source of the error, a value in
* \ref USB_Device_ErrorCodes_t
*
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
* \ref Group_USBManagement documentation).
*/
void EVENT_USB_DeviceError(const uint8_t ErrorCode);
#endif
/* Private Interface - For use in library only: */
......@@ -314,7 +303,6 @@
void EVENT_USB_Suspend(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_WakeUp(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_Reset(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_DeviceError(const uint8_t ErrorCode) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
#endif
#endif
......
/*
LUFA Library
Copyright (C) Dean Camera, 2009.
dean [at] fourwalledcubicle [dot] com
www.fourwalledcubicle.com
*/
/*
Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose and without fee is hereby
granted, provided that the above copyright notice appear in all
copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
#include "USBMode.h"
#if defined(USB_CAN_BE_DEVICE)
#include "StdDescriptors.h"
uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
{
EVENT_USB_DeviceError(DEVICE_ERROR_GetDescriptorNotHooked);
return 0;
};
#endif
......@@ -456,33 +456,6 @@
#endif
} USB_Descriptor_String_t;
/* Function Prototypes: */
/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
* index and language ID. This function MUST be overridden in the user application (added with full, identical
* prototype and name except for the \ref ATTR_WEAK attribute) so that the library can call it to retrieve descriptor
* data.
*
* \param wValue The type of the descriptor to retrieve in the upper byte, and the index in the
* lower byte (when more than one descriptor of the given type exists, such as the
* case of string descriptors). The type may be one of the standard types defined
* in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
* \param wIndex The language ID of the string to return if the wValue type indicates DTYPE_String,
* otherwise zero for standard descriptors, or as defined in a class-specific
* standards.
* \param DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
* the address of the descriptor.
*
* \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.
* If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
* allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the
* USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
* switch.
*
* \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise
*/
uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Macros: */
......
......@@ -137,7 +137,7 @@ static void USB_Device_SetConfiguration(void)
#else
USB_Descriptor_Device_t* DevDescriptorPtr;
if ((USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr) == NO_DESCRIPTOR) ||
if ((CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr) == NO_DESCRIPTOR) ||
#if defined(USE_RAM_DESCRIPTORS)
((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations))
#elif defined (USE_EEPROM_DESCRIPTORS)
......@@ -179,8 +179,11 @@ static void USB_Device_GetDescriptor(void)
void* DescriptorPointer;
uint16_t DescriptorSize;
if ((DescriptorSize = USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex, &DescriptorPointer)) == NO_DESCRIPTOR)
if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue,
USB_ControlRequest.wIndex, &DescriptorPointer)) == NO_DESCRIPTOR)
{
return;
}
Endpoint_ClearSETUP();
......
......@@ -114,20 +114,32 @@
#define USB_Device_IsUSBSuspended() ((UDINT & (1 << SUSPI)) ? true : false)
#endif
/* Enums: */
/** Enum for the ErrorCode parameter of the \ref EVENT_USB_DeviceError() event.
/* Function Prototypes: */
/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
* index and language ID. This function MUST be overridden in the user application (added with full, identical
* prototype and name except for the \ref ATTR_WEAK attribute) so that the library can call it to retrieve descriptor
* data.
*
* \see Events.h for more information on this event.
*/
enum USB_Device_ErrorCodes_t
{
DEVICE_ERROR_GetDescriptorNotHooked = 0, /**< Indicates that the \ref USB_GetDescriptor() method
* has not been hooked by the user application.
* \param wValue The type of the descriptor to retrieve in the upper byte, and the index in the
* lower byte (when more than one descriptor of the given type exists, such as the
* case of string descriptors). The type may be one of the standard types defined
* in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
* \param wIndex The language ID of the string to return if the wValue type indicates DTYPE_String,
* otherwise zero for standard descriptors, or as defined in a class-specific
* standards.
* \param DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
* the address of the descriptor.
*
* \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.
* If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
* allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the
* USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
* switch.
*
* \see \ref Group_Descriptors for more information on
* the \ref USB_GetDescriptor() method.
* \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise
*/
};
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
......
......@@ -206,7 +206,7 @@ void USB_ResetInterface(void)
{
USB_Descriptor_Device_t* DeviceDescriptorPtr;
if (USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR)
if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR)
{
#if defined(USE_RAM_DESCRIPTORS)
USB_ControlEndpointSize = DeviceDescriptorPtr->Endpoint0Size;
......
......@@ -46,10 +46,9 @@
* - LUFA/Drivers/USB/LowLevel/LowLevel.c
* - LUFA/Drivers/USB/LowLevel/Pipe.c
* - LUFA/Drivers/USB/HighLevel/Events.c
* - LUFA/Drivers/USB/HighLevel/StdDescriptors.c
* - LUFA/Drivers/USB/HighLevel/USBInterrupt.c
* - LUFA/Drivers/USB/HighLevel/USBTask.c
* - LUFA/Drivers/USB/Class/ConfigDescriptor.c
* - LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c
* - LUFA/Drivers/USB/Class/HIDParser.c
*
* \section Module Description
......@@ -97,7 +96,7 @@
#include "LowLevel/OTG.h"
#endif
#include "Class/ConfigDescriptor.h"
#include "HighLevel/ConfigDescriptor.h"
#include "Class/HIDParser.h"
#endif
......
......@@ -23,6 +23,11 @@
* \ref Group_Events for new API details.
* - The STREAM_CALLBACK() macro has been removed. User applications should replace all instances of the macro with regular
* function signatures of a function accepting no arguments and returning a uint8_t value.
* - The Event_DeviceError() event no longer exists, as its sole caller (unlinked USB_GetDescriptor() function) now produces a
* compilation error rather than a runtime error. The StdDescriptors.c file no longer exists as a result, and should be removed
* from project makefiles.
* - The USB_GetDescriptor() function has been renamed to CALLBACK_USB_GetDescriptor() to be in line with the new CALLBACK_ function
* prefixes for functions which *must* be implemented in the user application.
*
* <b>Host Mode</b>
* - Support for non-control data pipe interrupts has been dropped due to many issues in the implementation. All existing
......
......@@ -8,18 +8,18 @@
# Makefile for the LUFA library itself.
LUFA_SRC_FILES = ./Drivers/USB/LowLevel/LowLevel.c \
LUFA_SRC_FILES = ./Drivers/USB/LowLevel/DevChapter9.c \
./Drivers/USB/LowLevel/Endpoint.c \
./Drivers/USB/LowLevel/Pipe.c \
./Drivers/USB/LowLevel/DevChapter9.c \
./Drivers/USB/LowLevel/HostChapter9.c \
./Drivers/USB/LowLevel/Host.c \
./Drivers/USB/HighLevel/USBTask.c \
./Drivers/USB/HighLevel/USBInterrupt.c \
./Drivers/USB/LowLevel/HostChapter9.c \
./Drivers/USB/LowLevel/LowLevel.c \
./Drivers/USB/LowLevel/Pipe.c \
./Drivers/USB/HighLevel/Events.c \
./Drivers/USB/HighLevel/StdDescriptors.c \
./Drivers/USB/Class/HIDParser.c \
./Drivers/USB/HighLevel/USBInterrupt.c \
./Drivers/USB/HighLevel/USBTask.c \
./Drivers/USB/Class/ConfigDescriptor.c \
./Drivers/USB/Class/HIDParser.c \
./Scheduler/Scheduler.c \
./MemoryAllocator/DynAlloc.c \
./Drivers/Board/Temperature.c \
......
......@@ -196,7 +196,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
* is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the
* USB host.
*/
uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
{
const uint8_t DescriptorType = (wValue >> 8);
const uint8_t DescriptorNumber = (wValue & 0xFF);
......
......@@ -92,7 +92,7 @@
#define DTYPE_Report 0x22
/* Function Prototypes: */
uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
#endif
......@@ -107,7 +107,5 @@
void EVENT_USB_UnhandledControlPacket(void);
bool GetNextReport(USB_KeyboardReport_Data_t* ReportData);
void SendKey(USB_KeyboardReport_Data_t* KeyboardReportData, uint8_t Key);
void Send(USB_KeyboardReport_Data_t* KeyboardReportData, bool SendReport);
#endif
......@@ -134,10 +134,9 @@ SRC = $(TARGET).c \
$(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c \
$(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \
$(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c \
$(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c \
$(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment