Commit 5832bab0 authored by Dean Camera's avatar Dean Camera
Browse files

Rename the AT90USBXXX67 internal driver directory to AVRU4U6U7.

parent 87059198
...@@ -251,15 +251,15 @@ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8 ...@@ -251,15 +251,15 @@ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8
* we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would * we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would
* have occupied). * have occupied).
* *
* \param[in] CurrentItemAttributes Pointer to the attrbutes of the item the HID report parser is currently working with * \param[in] CurrentItem Pointer to the item the HID report parser is currently working with
* *
* \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded * \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded
*/ */
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes) bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
{ {
/* Check the attributes of the current item - see if we are interested in it or not; /* Check the attributes of the current item - see if we are interested in it or not;
* only store KEYBOARD usage page items into the Processed HID Report structure to * only store KEYBOARD usage page items into the Processed HID Report structure to
* save RAM and ignore the rest * save RAM and ignore the rest
*/ */
return (CurrentItemAttributes->Usage.Page == USAGE_PAGE_KEYBOARD); return (CurrentItem->Attributes.Usage.Page == USAGE_PAGE_KEYBOARD);
} }
...@@ -75,4 +75,6 @@ ...@@ -75,4 +75,6 @@
void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode); void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode);
void EVENT_USB_Host_DeviceEnumerationComplete(void); void EVENT_USB_Host_DeviceEnumerationComplete(void);
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem);
#endif #endif
...@@ -250,16 +250,36 @@ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8 ...@@ -250,16 +250,36 @@ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8
* we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would * we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would
* have occupied). * have occupied).
* *
* \param[in] CurrentItemAttributes Pointer to the attrbutes of the item the HID report parser is currently working with * \param[in] CurrentItem Pointer to the item the HID report parser is currently working with
* *
* \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded * \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded
*/ */
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes) bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
{ {
bool IsMouse = false;
/* Iterate through the item's collection path, until either the root collection node or a collection with the
* Mouse Usage is found - this prevents Joysticks, which use identical descriptors except for the Joystick usage
* parent node, from being erronously treated as a mouse
*/
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
{
if ((CurrPath->Usage.Page == USAGE_PAGE_GENERIC_DCTRL) &&
(CurrPath->Usage.Usage == USAGE_MOUSE))
{
IsMouse = true;
break;
}
}
/* If a collection with the mouse usage was not found, indicate that we are not interested in this item */
if (!IsMouse)
return false;
/* Check the attributes of the current item - see if we are interested in it or not; /* Check the attributes of the current item - see if we are interested in it or not;
* only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report * only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report
* structure to save RAM and ignore the rest * structure to save RAM and ignore the rest
*/ */
return ((CurrentItemAttributes->Usage.Page == USAGE_PAGE_BUTTON) || return ((CurrentItem->Attributes.Usage.Page == USAGE_PAGE_BUTTON) ||
(CurrentItemAttributes->Usage.Page == USAGE_PAGE_GENERIC_DCTRL)); (CurrentItem->Attributes.Usage.Page == USAGE_PAGE_GENERIC_DCTRL));
} }
...@@ -69,6 +69,9 @@ ...@@ -69,6 +69,9 @@
/** HID Report Descriptor Usage Page value for a Generic Desktop Control */ /** HID Report Descriptor Usage Page value for a Generic Desktop Control */
#define USAGE_PAGE_GENERIC_DCTRL 0x01 #define USAGE_PAGE_GENERIC_DCTRL 0x01
/** HID Report Descriptor Usage for a Mouse */
#define USAGE_MOUSE 0x02
/** HID Report Descriptor Usage value for a X axis movement */ /** HID Report Descriptor Usage value for a X axis movement */
#define USAGE_X 0x30 #define USAGE_X 0x30
...@@ -84,4 +87,6 @@ ...@@ -84,4 +87,6 @@
void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode); void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t SubErrorCode);
void EVENT_USB_Host_DeviceEnumerationComplete(void); void EVENT_USB_Host_DeviceEnumerationComplete(void);
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem);
#endif #endif
...@@ -75,15 +75,15 @@ uint8_t GetHIDReportData(void) ...@@ -75,15 +75,15 @@ uint8_t GetHIDReportData(void)
* we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would * we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would
* have occupied). * have occupied).
* *
* \param[in] CurrentItemAttributes Pointer to the attrbutes of the item the HID report parser is currently working with * \param[in] CurrentItem Pointer to the item the HID report parser is currently working with
* *
* \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded * \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded
*/ */
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes) bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
{ {
/* Check the attributes of the current item - see if we are interested in it or not; /* Check the attributes of the current item - see if we are interested in it or not;
* only store KEYBOARD usage page items into the Processed HID Report structure to * only store KEYBOARD usage page items into the Processed HID Report structure to
* save RAM and ignore the rest * save RAM and ignore the rest
*/ */
return (CurrentItemAttributes->Usage.Page == USAGE_PAGE_KEYBOARD); return (CurrentItem->Attributes.Usage.Page == USAGE_PAGE_KEYBOARD);
} }
...@@ -77,6 +77,6 @@ ...@@ -77,6 +77,6 @@
/* Function Prototypes: */ /* Function Prototypes: */
uint8_t GetHIDReportData(void); uint8_t GetHIDReportData(void);
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes); bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItemAttributes);
#endif #endif
...@@ -75,16 +75,36 @@ uint8_t GetHIDReportData(void) ...@@ -75,16 +75,36 @@ uint8_t GetHIDReportData(void)
* we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would * we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would
* have occupied). * have occupied).
* *
* \param[in] CurrentItemAttributes Pointer to the attrbutes of the item the HID report parser is currently working with * \param[in] CurrentItem Pointer to the item the HID report parser is currently working with
* *
* \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded * \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded
*/ */
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes) bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
{ {
/* Check the attributes of the current item - see if we are interested in it or not; bool IsMouse = false;
/* Iterate through the item's collection path, until either the root collection node or a collection with the
* Mouse Usage is found - this prevents Joysticks, which use identical descriptors except for the Joystick usage
* parent node, from being erronously treated as a mouse
*/
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
{
if ((CurrPath->Usage.Page == USAGE_PAGE_GENERIC_DCTRL) &&
(CurrPath->Usage.Usage == USAGE_MOUSE))
{
IsMouse = true;
break;
}
}
/* If a collection with the mouse usage was not found, indicate that we are not interested in this item */
if (!IsMouse)
return false;
/* Check the attributes of the current mouse item - see if we are interested in it or not;
* only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report * only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report
* structure to save RAM and ignore the rest * structure to save RAM and ignore the rest
*/ */
return ((CurrentItemAttributes->Usage.Page == USAGE_PAGE_BUTTON) || return ((CurrentItem->Attributes.Usage.Page == USAGE_PAGE_BUTTON) ||
(CurrentItemAttributes->Usage.Page == USAGE_PAGE_GENERIC_DCTRL)); (CurrentItem->Attributes.Usage.Page == USAGE_PAGE_GENERIC_DCTRL));
} }
...@@ -43,6 +43,9 @@ ...@@ -43,6 +43,9 @@
#include "MouseHostWithParser.h" #include "MouseHostWithParser.h"
/* Macros: */ /* Macros: */
/** HID Report Descriptor Usage for a Mouse */
#define USAGE_MOUSE 0x02
/** HID Report Descriptor Usage Page value for a toggle button */ /** HID Report Descriptor Usage Page value for a toggle button */
#define USAGE_PAGE_BUTTON 0x09 #define USAGE_PAGE_BUTTON 0x09
...@@ -86,6 +89,6 @@ ...@@ -86,6 +89,6 @@
/* Function Prototypes: */ /* Function Prototypes: */
uint8_t GetHIDReportData(void); uint8_t GetHIDReportData(void);
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes); bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem);
#endif #endif
This diff is collapsed.
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \ defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || \ defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || \
defined(__AVR_ATmega32U6__)) defined(__AVR_ATmega32U6__))
#include "AT90USBXXX67/ADC.h" #include "AVRU4U6U7/ADC.h"
#else #else
#error "ADC is not available for the currently selected AVR model." #error "ADC is not available for the currently selected AVR model."
#endif #endif
......
...@@ -37,13 +37,13 @@ ...@@ -37,13 +37,13 @@
*/ */
/** \ingroup Group_ADC /** \ingroup Group_ADC
* @defgroup Group_ADC_AT90USBXXX67 AT90USBXXX6 and AT90USBXXX7 Models * @defgroup Group_ADC_AVRU4U6U7 Series U4, U6 and U7 Model ADC Driver
* *
* @{ * @{
*/ */
#ifndef __ADC_AT90USBXXX67_H__ #ifndef __ADC_AVRU4U6U7_H__
#define __ADC_AT90USBXXX67_H__ #define __ADC_AVRU4U6U7_H__
/* Includes: */ /* Includes: */
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
......
...@@ -271,7 +271,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID ...@@ -271,7 +271,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID
if (ParserData->LargestReportSizeBits < CurrReportIDInfo->ReportSizeBits[ReportSizeIndex]) if (ParserData->LargestReportSizeBits < CurrReportIDInfo->ReportSizeBits[ReportSizeIndex])
ParserData->LargestReportSizeBits = CurrReportIDInfo->ReportSizeBits[ReportSizeIndex]; ParserData->LargestReportSizeBits = CurrReportIDInfo->ReportSizeBits[ReportSizeIndex];
if (!(ReportItemData & IOF_CONSTANT) && CALLBACK_HIDParser_FilterHIDReportItem(&CurrStateTable->Attributes)) if (!(ReportItemData & IOF_CONSTANT) && CALLBACK_HIDParser_FilterHIDReportItem(&NewReportItem))
{ {
if (ParserData->TotalReportItems == HID_MAX_REPORTITEMS) if (ParserData->TotalReportItems == HID_MAX_REPORTITEMS)
return HID_PARSE_InsufficientReportItems; return HID_PARSE_InsufficientReportItems;
......
...@@ -288,11 +288,11 @@ ...@@ -288,11 +288,11 @@
* HID_ReportInfo_t structure. This can be used to filter only those items the application will be using, so that * HID_ReportInfo_t structure. This can be used to filter only those items the application will be using, so that
* no RAM is wasted storing the attributes for report items which will never be referenced by the application. * no RAM is wasted storing the attributes for report items which will never be referenced by the application.
* *
* \param[in] CurrentItemAttributes Pointer to the current report item attributes for user checking * \param[in] CurrentItem Pointer to the current report item for user checking
* *
* \return Boolean true if the item should be stored into the HID_ReportInfo_t structure, false if it should be ignored * \return Boolean true if the item should be stored into the HID_ReportInfo_t structure, false if it should be ignored
*/ */
bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes); bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem);
/* Private Interface - For use in library only: */ /* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__) #if !defined(__DOXYGEN__)
......
...@@ -24,6 +24,10 @@ ...@@ -24,6 +24,10 @@
* - Audio class Device mode demos now work at both 16MHz and 8MHz, rather than just at 8MHz * - Audio class Device mode demos now work at both 16MHz and 8MHz, rather than just at 8MHz
* - The previous USBtoSerial demo has been moved into the projects directory, as it was just a modified CDC demo * - The previous USBtoSerial demo has been moved into the projects directory, as it was just a modified CDC demo
* - The Endpoint/Pipe functions now use the const qualifier on the input buffer * - The Endpoint/Pipe functions now use the const qualifier on the input buffer
* - Changed the CALLBACK_HIDParser_FilterHIDReportItem() callback to pass a HID_ReportItem_t rather than just the current
* item's attributes, to expose more information on the item (including it's type, collection path, etc.)
* - Changed MouseHostWithParser demos to check that the report items have a Mouse usage collection as a parent at some point,
* to prevent Joysticks from enumerating with the demo
* *
* <b>Fixed:</b> * <b>Fixed:</b>
* - Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a * - Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a
......
...@@ -27,9 +27,8 @@ ...@@ -27,9 +27,8 @@
* This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible with * This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible with
* all USB AVR models. * all USB AVR models.
* *
* \dir LUFA/Drivers/Peripheral/AT90USBXXX67 * \dir LUFA/Drivers/Peripheral/AVRU4U6U7
* \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files. Its original name is due to legacy * \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files.
* reasons.
* *
* This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible only with * This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible only with
* the AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 USB AVR models, such as the AT90USB1287. Its contents should <b>not</b> be * the AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 USB AVR models, such as the AT90USB1287. Its contents should <b>not</b> be
......
...@@ -23,9 +23,10 @@ ...@@ -23,9 +23,10 @@
* - Change makefiles to allow for absolute LUFA location to be used * - Change makefiles to allow for absolute LUFA location to be used
* - Add RNDIS Host Class driver * - Add RNDIS Host Class driver
* - Add unit testing to APIs * - Add unit testing to APIs
* - Add board overviews
* - Make new demos * - Make new demos
* -# Keyboard/Mouse Dual Class Host * -# Keyboard/Mouse Dual Class Host
* -# Multiple-report HID device * -# Multiple-Report HID device
* -# Mouse/CDC Dual Class Device * -# Mouse/CDC Dual Class Device
* -# Joystick Host * -# Joystick Host
* - Port LUFA to other architectures * - Port LUFA to other architectures
......
...@@ -11,7 +11,12 @@ ...@@ -11,7 +11,12 @@
* areas relevant to making older projects compatible with the API changes of each new release. * areas relevant to making older projects compatible with the API changes of each new release.
* *
* \section Sec_MigrationXXXXXX Migrating from 090924 to XXXXXX * \section Sec_MigrationXXXXXX Migrating from 090924 to XXXXXX
* <b>No Migration information for this release - all library elements are backwards-compatible with 090924.</b> *
* <b>Host Mode</b>
* - The \ref CALLBACK_HIDParser_FilterHIDReportItem() HID Parser callback now passes a complete HID_ReportItem_t to the
* user application, instead of just its attributes.
*
<b>No Migration information for this release - all library elements are backwards-compatible with 090924.</b>
* *
* \section Sec_Migration090924 Migrating from 090810 to 090924 * \section Sec_Migration090924 Migrating from 090810 to 090924
* *
......
Supports Markdown
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