diff options
Diffstat (limited to 'lib/lufa/Demos/Host/LowLevel/GenericHIDHost')
9 files changed, 0 insertions, 3259 deletions
diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/Config/LUFAConfig.h b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/Config/LUFAConfig.h deleted file mode 100644 index 197122fce1..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/Config/LUFAConfig.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * \brief LUFA Library Configuration Header File - * - * This header file is used to configure LUFA's compile time options, - * as an alternative to the compile time constants supplied through - * a makefile. - * - * For information on what each token does, refer to the LUFA - * manual section "Summary of Compile Tokens". - */ - -#ifndef _LUFA_CONFIG_H_ -#define _LUFA_CONFIG_H_ - - #if (ARCH == ARCH_AVR8) - - /* Non-USB Related Configuration Tokens: */ -// #define DISABLE_TERMINAL_CODES - - /* USB Class Driver Related Tokens: */ -// #define HID_HOST_BOOT_PROTOCOL_ONLY -// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} -// #define HID_USAGE_STACK_DEPTH {Insert Value Here} -// #define HID_MAX_COLLECTIONS {Insert Value Here} -// #define HID_MAX_REPORTITEMS {Insert Value Here} -// #define HID_MAX_REPORT_IDS {Insert Value Here} -// #define NO_CLASS_DRIVER_AUTOFLUSH - - /* General USB Driver Related Tokens: */ -// #define ORDERED_EP_CONFIG - #define USE_STATIC_OPTIONS (USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL) -// #define USB_DEVICE_ONLY - #define USB_HOST_ONLY -// #define USB_STREAM_TIMEOUT_MS {Insert Value Here} -// #define NO_LIMITED_CONTROLLER_CONNECT -// #define NO_SOF_EVENTS - - /* USB Device Mode Driver Related Tokens: */ -// #define USE_RAM_DESCRIPTORS -// #define USE_FLASH_DESCRIPTORS -// #define USE_EEPROM_DESCRIPTORS -// #define NO_INTERNAL_SERIAL -// #define FIXED_CONTROL_ENDPOINT_SIZE {Insert Value Here} -// #define DEVICE_STATE_AS_GPIOR {Insert Value Here} -// #define FIXED_NUM_CONFIGURATIONS {Insert Value Here} -// #define CONTROL_ONLY_DEVICE -// #define INTERRUPT_CONTROL_ENDPOINT -// #define NO_DEVICE_REMOTE_WAKEUP -// #define NO_DEVICE_SELF_POWER - - /* USB Host Mode Driver Related Tokens: */ -// #define HOST_STATE_AS_GPIOR {Insert Value Here} -// #define USB_HOST_TIMEOUT_MS {Insert Value Here} -// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here} -// #define NO_AUTO_VBUS_MANAGEMENT -// #define INVERTED_VBUS_ENABLE_LINE - - #else - - #error Unsupported architecture for this LUFA configuration file. - - #endif -#endif diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/ConfigDescriptor.c b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/ConfigDescriptor.c deleted file mode 100644 index c98f0fbcec..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/ConfigDescriptor.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * USB Device Configuration Descriptor processing routines, to determine the correct pipe configurations - * needed to communication with an attached USB device. Descriptors are special computer-readable structures - * which the host requests upon device enumeration, to determine the device's capabilities and functions. - */ - -#include "ConfigDescriptor.h" - -/** Reads and processes an attached device's descriptors, to determine compatibility and pipe configurations. This - * routine will read in the entire configuration descriptor, and configure the hosts pipes to correctly communicate - * with compatible devices. - * - * This routine searches for a HID interface descriptor containing at least one Interrupt type IN endpoint. - * - * \return An error code from the \ref GenericHIDHost_GetConfigDescriptorDataCodes_t enum. - */ -uint8_t ProcessConfigurationDescriptor(void) -{ - uint8_t ConfigDescriptorData[512]; - void* CurrConfigLocation = ConfigDescriptorData; - uint16_t CurrConfigBytesRem; - - USB_Descriptor_Interface_t* HIDInterface = NULL; - USB_Descriptor_Endpoint_t* DataINEndpoint = NULL; - USB_Descriptor_Endpoint_t* DataOUTEndpoint = NULL; - - /* Retrieve the entire configuration descriptor into the allocated buffer */ - switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData))) - { - case HOST_GETCONFIG_Successful: - break; - case HOST_GETCONFIG_InvalidData: - return InvalidConfigDataReturned; - case HOST_GETCONFIG_BuffOverflow: - return DescriptorTooLarge; - default: - return ControlError; - } - - while (!(DataINEndpoint) || !(DataOUTEndpoint)) - { - /* See if we've found a likely compatible interface, and if there is an endpoint within that interface */ - if (!(HIDInterface) || - USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation, - DComp_NextHIDInterfaceDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found) - { - /* Not all HID devices have an OUT endpoint - if we've reached the end of the HID descriptor - * but only found the mandatory IN endpoint, it's safe to continue with the device enumeration */ - if (DataINEndpoint) - break; - - /* Get the next HID interface from the configuration descriptor */ - if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation, - DComp_NextHIDInterface) != DESCRIPTOR_SEARCH_COMP_Found) - { - /* Descriptor not found, error out */ - return NoCompatibleInterfaceFound; - } - - /* Save the interface in case we need to refer back to it later */ - HIDInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t); - - /* Clear any found endpoints */ - DataOUTEndpoint = NULL; - - /* Skip the remainder of the loop as we have not found an endpoint yet */ - continue; - } - - /* Retrieve the endpoint address from the endpoint descriptor */ - USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t); - - /* If the endpoint is a IN type endpoint */ - if ((EndpointData->EndpointAddress & ENDPOINT_DIR_MASK) == ENDPOINT_DIR_IN) - DataINEndpoint = EndpointData; - else - DataOUTEndpoint = EndpointData; - } - - /* Configure the HID data IN pipe */ - Pipe_ConfigurePipe(HID_DATA_IN_PIPE, EP_TYPE_INTERRUPT, DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, 1); - Pipe_SetInterruptPeriod(DataINEndpoint->PollingIntervalMS); - - /* Check if the HID interface contained an optional OUT data endpoint */ - if (DataOUTEndpoint) - { - /* Configure the HID data OUT pipe */ - Pipe_ConfigurePipe(HID_DATA_OUT_PIPE, EP_TYPE_INTERRUPT, DataOUTEndpoint->EndpointAddress, DataOUTEndpoint->EndpointSize, 1); - } - - /* Valid data found, return success */ - return SuccessfulConfigRead; -} - -/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's - * configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration - * descriptor processing if an incompatible descriptor configuration is found. - * - * This comparator searches for the next Interface descriptor of the correct HID Class value. - * - * \return A value from the DSEARCH_Return_ErrorCodes_t enum - */ -uint8_t DComp_NextHIDInterface(void* CurrentDescriptor) -{ - USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t); - - /* Determine if the current descriptor is an interface descriptor */ - if (Header->Type == DTYPE_Interface) - { - USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t); - - /* Check the HID descriptor class, break out if correct class/protocol interface found */ - if (Interface->Class == HID_CSCP_HIDClass) - { - /* Indicate that the descriptor being searched for has been found */ - return DESCRIPTOR_SEARCH_Found; - } - } - - /* Current descriptor does not match what this comparator is looking for */ - return DESCRIPTOR_SEARCH_NotFound; -} - -/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's - * configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration - * descriptor processing if an incompatible descriptor configuration is found. - * - * This comparator searches for the next Endpoint descriptor inside the current interface descriptor, - * aborting the search if another interface descriptor is found before the required endpoint. - * - * \return A value from the DSEARCH_Return_ErrorCodes_t enum - */ -uint8_t DComp_NextHIDInterfaceDataEndpoint(void* CurrentDescriptor) -{ - USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t); - - /* Determine the type of the current descriptor */ - if (Header->Type == DTYPE_Endpoint) - { - /* Indicate that the descriptor being searched for has been found */ - return DESCRIPTOR_SEARCH_Found; - } - else if (Header->Type == DTYPE_Interface) - { - /* Indicate that the search has failed prematurely and should be aborted */ - return DESCRIPTOR_SEARCH_Fail; - } - - /* Current descriptor does not match what this comparator is looking for */ - return DESCRIPTOR_SEARCH_NotFound; -} - diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/ConfigDescriptor.h b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/ConfigDescriptor.h deleted file mode 100644 index 8e7289124b..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/ConfigDescriptor.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * Header file for ConfigDescriptor.c. - */ - -#ifndef _CONFIGDESCRIPTOR_H_ -#define _CONFIGDESCRIPTOR_H_ - - /* Includes: */ - #include <LUFA/Drivers/USB/USB.h> - - #include "GenericHIDHost.h" - - /* Macros: */ - /** Pipe address for the HID data IN pipe. */ - #define HID_DATA_IN_PIPE (PIPE_DIR_IN | 1) - - /** Pipe address for the HID data OUT pipe. */ - #define HID_DATA_OUT_PIPE (PIPE_DIR_OUT | 2) - - /* Enums: */ - /** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */ - enum GenericHIDHost_GetConfigDescriptorDataCodes_t - { - SuccessfulConfigRead = 0, /**< Configuration Descriptor was processed successfully */ - ControlError = 1, /**< A control request to the device failed to complete successfully */ - DescriptorTooLarge = 2, /**< The device's Configuration Descriptor is too large to process */ - InvalidConfigDataReturned = 3, /**< The device returned an invalid Configuration Descriptor */ - NoCompatibleInterfaceFound = 4, /**< A compatible interface with the required endpoints was not found */ - }; - - /* Function Prototypes: */ - uint8_t ProcessConfigurationDescriptor(void); - - uint8_t DComp_NextHIDInterface(void* CurrentDescriptor); - uint8_t DComp_NextHIDInterfaceDataEndpoint(void* CurrentDescriptor); - -#endif - diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c deleted file mode 100644 index 413ce375b7..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * Main source file for the GenericHIDHost demo. This file contains the main tasks of - * the demo and is responsible for the initial application hardware configuration. - */ - -#include "GenericHIDHost.h" - -/** Main program entry point. This routine configures the hardware required by the application, then - * enters a loop to run the application tasks in sequence. - */ -int main(void) -{ - SetupHardware(); - - puts_P(PSTR(ESC_FG_CYAN "Generic HID Host Demo running.\r\n" ESC_FG_WHITE)); - - LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); - GlobalInterruptEnable(); - - for (;;) - { - ReadNextReport(); - - USB_USBTask(); - } -} - -/** Configures the board hardware and chip peripherals for the demo's functionality. */ -void SetupHardware(void) -{ -#if (ARCH == ARCH_AVR8) - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Disable clock division */ - clock_prescale_set(clock_div_1); -#endif - - /* Hardware Initialization */ - Serial_Init(9600, false); - LEDs_Init(); - USB_Init(); - - /* Create a stdio stream for the serial port for stdin and stdout */ - Serial_CreateStream(NULL); -} - -/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and - * starts the library USB task to begin the enumeration and USB management process. - */ -void EVENT_USB_Host_DeviceAttached(void) -{ - puts_P(PSTR(ESC_FG_GREEN "Device Attached.\r\n" ESC_FG_WHITE)); - LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); -} - -/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and - * stops the library USB task management process. - */ -void EVENT_USB_Host_DeviceUnattached(void) -{ - puts_P(PSTR(ESC_FG_GREEN "Device Unattached.\r\n" ESC_FG_WHITE)); - LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); -} - -/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully - * enumerated by the host and is now ready to be used by the application. - */ -void EVENT_USB_Host_DeviceEnumerationComplete(void) -{ - puts_P(PSTR("Getting Config Data.\r\n")); - - uint8_t ErrorCode; - - /* Get and process the configuration descriptor data */ - if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead) - { - if (ErrorCode == ControlError) - puts_P(PSTR(ESC_FG_RED "Control Error (Get Configuration).\r\n")); - else - puts_P(PSTR(ESC_FG_RED "Invalid Device.\r\n")); - - printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode); - - LEDs_SetAllLEDs(LEDMASK_USB_ERROR); - return; - } - - /* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */ - if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful) - { - printf_P(PSTR(ESC_FG_RED "Control Error (Set Configuration).\r\n" - " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode); - - LEDs_SetAllLEDs(LEDMASK_USB_ERROR); - return; - } - - puts_P(PSTR("HID Device Enumerated.\r\n")); - LEDs_SetAllLEDs(LEDMASK_USB_READY); -} - -/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */ -void EVENT_USB_Host_HostError(const uint8_t ErrorCode) -{ - USB_Disable(); - - printf_P(PSTR(ESC_FG_RED "Host Mode Error\r\n" - " -- Error Code %d\r\n" ESC_FG_WHITE), ErrorCode); - - LEDs_SetAllLEDs(LEDMASK_USB_ERROR); - for(;;); -} - -/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while - * enumerating an attached USB device. - */ -void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, - const uint8_t SubErrorCode) -{ - printf_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n" - " -- Error Code %d\r\n" - " -- Sub Error Code %d\r\n" - " -- In State %d\r\n" ESC_FG_WHITE), ErrorCode, SubErrorCode, USB_HostState); - - LEDs_SetAllLEDs(LEDMASK_USB_ERROR); -} - -/** Reads in and processes the next report from the attached device, displaying the report - * contents on the board LEDs and via the serial port. - */ -void ReadNextReport(void) -{ - if (USB_HostState != HOST_STATE_Configured) - return; - - /* Select and unfreeze HID data IN pipe */ - Pipe_SelectPipe(HID_DATA_IN_PIPE); - Pipe_Unfreeze(); - - /* Check to see if a packet has been received */ - if (!(Pipe_IsINReceived())) - { - /* Refreeze HID data IN pipe */ - Pipe_Freeze(); - - return; - } - - /* Ensure pipe contains data before trying to read from it */ - if (Pipe_IsReadWriteAllowed()) - { - uint8_t ReportINData[Pipe_BytesInPipe()]; - - /* Read in HID report data */ - Pipe_Read_Stream_LE(&ReportINData, sizeof(ReportINData), NULL); - - /* Print report data through the serial port */ - for (uint16_t CurrByte = 0; CurrByte < sizeof(ReportINData); CurrByte++) - printf_P(PSTR("0x%02X "), ReportINData[CurrByte]); - - puts_P(PSTR("\r\n")); - } - - /* Clear the IN endpoint, ready for next data packet */ - Pipe_ClearIN(); - - /* Refreeze HID data IN pipe */ - Pipe_Freeze(); -} - -/** Writes a report to the attached device. - * - * \param[in] ReportOUTData Buffer containing the report to send to the device - * \param[in] ReportIndex Index of the report in the device (zero if the device does not use multiple reports) - * \param[in] ReportType Type of report to send, either REPORT_TYPE_OUT or REPORT_TYPE_FEATURE - * \param[in] ReportLength Length of the report to send - */ -void WriteNextReport(uint8_t* ReportOUTData, - const uint8_t ReportIndex, - const uint8_t ReportType, - uint16_t ReportLength) -{ - if (USB_HostState != HOST_STATE_Configured) - return; - - /* Select the HID data OUT pipe */ - Pipe_SelectPipe(HID_DATA_OUT_PIPE); - - /* Not all HID devices have an OUT endpoint (some require OUT reports to be sent over the - * control endpoint instead) - check to see if the OUT endpoint has been initialized */ - if (Pipe_IsConfigured() && (ReportType == REPORT_TYPE_OUT)) - { - Pipe_Unfreeze(); - - /* Ensure pipe is ready to be written to before continuing */ - if (!(Pipe_IsOUTReady())) - { - /* Refreeze the data OUT pipe */ - Pipe_Freeze(); - - return; - } - - /* If the report index is used, send it before the report data */ - if (ReportIndex) - Pipe_Write_8(ReportIndex); - - /* Write out HID report data */ - Pipe_Write_Stream_LE(ReportOUTData, ReportLength, NULL); - - /* Clear the OUT endpoint, send last data packet */ - Pipe_ClearOUT(); - - /* Refreeze the data OUT pipe */ - Pipe_Freeze(); - } - else - { - /* Class specific request to send a HID report to the device */ - USB_ControlRequest = (USB_Request_Header_t) - { - .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE), - .bRequest = HID_REQ_SetReport, - .wValue = ((ReportType << 8) | ReportIndex), - .wIndex = 0, - .wLength = ReportLength, - }; - - /* Select the control pipe for the request transfer */ - Pipe_SelectPipe(PIPE_CONTROLPIPE); - - /* Send the request to the device */ - USB_Host_SendControlRequest(ReportOUTData); - } -} - diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h deleted file mode 100644 index 39ee9ed1c9..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, 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 disclaims 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. -*/ - -/** \file - * - * Header file for GenericHIDHost.c. - */ - -#ifndef _GENERICHID_HOST_H_ -#define _GENERICHID_HOST_H_ - - /* Includes: */ - #include <avr/io.h> - #include <avr/wdt.h> - #include <avr/pgmspace.h> - #include <avr/interrupt.h> - #include <avr/power.h> - #include <stdio.h> - - #include <LUFA/Drivers/Misc/TerminalCodes.h> - #include <LUFA/Drivers/USB/USB.h> - #include <LUFA/Drivers/Peripheral/Serial.h> - #include <LUFA/Drivers/Board/LEDs.h> - #include <LUFA/Platform/Platform.h> - - #include "ConfigDescriptor.h" - - /* Macros: */ - /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */ - #define LEDMASK_USB_NOTREADY LEDS_LED1 - - /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */ - #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3) - - /** LED mask for the library LED driver, to indicate that the USB interface is ready. */ - #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4) - - /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ - #define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3) - - /** HID Report Type to indicate an IN report. */ - #define REPORT_TYPE_IN 1 - - /** HID Report Type to indicate an OUT report. */ - #define REPORT_TYPE_OUT 2 - - /** HID Report Type to indicate a FEATURE report. */ - #define REPORT_TYPE_FEATURE 3 - - /* Function Prototypes: */ - void SetupHardware(void); - void ReadNextReport(void); - void WriteNextReport(uint8_t* ReportOUTData, - const uint8_t ReportIndex, - const uint8_t ReportType, - uint16_t ReportLength); - - void EVENT_USB_Host_HostError(const uint8_t ErrorCode); - void EVENT_USB_Host_DeviceAttached(void); - void EVENT_USB_Host_DeviceUnattached(void); - void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, - const uint8_t SubErrorCode); - void EVENT_USB_Host_DeviceEnumerationComplete(void); - -#endif - diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.txt b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.txt deleted file mode 100644 index 1c9b1875a9..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.txt +++ /dev/null @@ -1,64 +0,0 @@ -/** \file - * - * This file contains special DoxyGen information for the generation of the main page and other special - * documentation pages. It is not a project source file. - */ - -/** \mainpage Generic HID Host Demo - * - * \section Sec_Compat Demo Compatibility: - * - * The following list indicates what microcontrollers are compatible with this demo. - * - * \li Series 7 USB AVRs (AT90USBxxx7) - * - * \section Sec_Info USB Information: - * - * The following table gives a rundown of the USB utilization of this demo. - * - * <table> - * <tr> - * <td><b>USB Mode:</b></td> - * <td>Host</td> - * </tr> - * <tr> - * <td><b>USB Class:</b></td> - * <td>Human Interface Device (HID)</td> - * </tr> - * <tr> - * <td><b>USB Subclass:</b></td> - * <td>N/A</td> - * </tr> - * <tr> - * <td><b>Relevant Standards:</b></td> - * <td>USBIF HID Specification \n - * USBIF HID Usage Tables</td> - * </tr> - * <tr> - * <td><b>Supported USB Speeds:</b></td> - * <td>Low Speed Mode \n - * Full Speed Mode</td> - * </tr> - * </table> - * - * \section Sec_Description Project Description: - * - * Generic HID host demonstration application. This gives a simple reference - * application for implementing a Generic HID USB host, for any device implementing - * the HID profile. - * - * Received reports from the attached device are printed to the serial port. - * - * \section Sec_Options Project Options - * - * The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value. - * - * <table> - * <tr> - * <td> - * None - * </td> - * </tr> - * </table> - */ - diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/asf.xml b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/asf.xml deleted file mode 100644 index e0890865d5..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/asf.xml +++ /dev/null @@ -1,50 +0,0 @@ -<asf xmlversion="1.0"> - <project caption="Generic HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.generic_hid.example.avr8"> - <require idref="lufa.demos.host.lowlevel.generic_hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.generic_hid" caption="Generic HID Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Generic HID Host demo, implementing a basic USB HID device that can send and receive data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="GenericHIDHost.txt"/> - - <build type="c-source" value="GenericHIDHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="GenericHIDHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> diff --git a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/doxyfile b/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/doxyfile deleted file mode 100644 index 1a87042649..0000000000 --- a/lib/lufa/Demos/Host/LowLevel/GenericHIDHost/doxyfile +++ /dev/null @@ -1,2395 +0,0 @@ -# Doxyfile 1.8.9 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "LUFA Library - Generic HID Host Demo" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = ./Documentation/ - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 su |