Commit Graph

26 Commits

Author SHA1 Message Date
Dean Camera e071f3897a Added new USB_DeviceState variable to keep track of the current Device mode USB state.
Added new Endpoint_ClearStatusStage() convenience function to assist with the status stages of control transfers.

Removed vague USB_IsConnected global - test USB_DeviceState or USB_HostState explicitly to gain previous functionality.

Removed USB_IsSuspended global - test USB_DeviceState against DEVICE_STATE_Suspended instead.

Fixed possible enumeration errors from spinloops which may fail to exit if the USB connection is severed before the exit condition becomes true.
2009-07-21 13:31:21 +00:00
Dean Camera 73d9fafc0f Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions. Changed Endpoint.c and Pipe.c to use a templated system to build the seperate functions, rather than duplicating each function's code many times. 2009-07-13 12:38:30 +00:00
Dean Camera f1076ac4d6 Added const modifiers to device mode class drivers.
Added parameter directions to function parameter documentation.

Added new experimental FAST_STREAM_FUNCTIONS compile time option to speed up stream transfers at the expense of a higher FLASH consumption (needs testing to verify improved throughput).
2009-06-28 13:39:08 +00:00
Dean Camera 4d3a594f3e Changed per-device controller preprocessor checks over to per-device series for better device control.
Fixed error in Endpoint.c using HSOFI rather than SOFI for counting elapsed milliseconds.
2009-06-14 07:44:02 +00:00
Dean Camera 4a8ac5e474 USB_IsConnected is now cleared before the USB_Disconnect() event is fired in response to VBUS being removed.
Minor documentation improvements.
2009-05-19 10:33:29 +00:00
Dean Camera 2ee9fc7077 Rewritten event system to remove all macros, to make user code clearer.
Fixed incorrect ENDPOINT_EPNUM_MASK mask preventing endpoints above EP3 from being selected (thanks to Jonathan Oakley).

Removed STREAM_CALLBACK() macro - callbacks now use regular function definitions to clarify user code.

Removed DESCRIPTOR_COMPARATOR() macro - comparators should now use regular function definitions to clarify user code.
2009-05-18 10:05:21 +00:00
Dean Camera eeba38e343 Create a new function pointer type in StreamCallbacks.h for endpoint/pipe stream callbacks, to make stream function prototypes clearer. 2009-05-15 12:27:32 +00:00
Dean Camera 32f0f605ef Removed all user pipe/endpoint interrupt APIs, added internal library support for interrupt driven control endpoints when in device mode by defining INTERRUPT_CONTROL_ENDPOINT token and passing it to the compiler via the -D switch. 2009-05-14 10:07:08 +00:00
Dean Camera 958a1b4e2b Fixed Mouse and Keyboard device demos not acting in accordance with the HID specification for idle periods (thanks to Brian Dickman).
Removed support for endpoint/pipe non-control interrupts; these did not act in the way users expected, and had many subtle issues.
2009-05-12 08:28:02 +00:00
Dean Camera 01c4bef107 More minor renaming of library enums and events to try to create a consistent API. 2009-05-03 14:17:24 +00:00
Dean Camera a504a3a010 Endpoint configuration is now refined to give better output when all configurations have static inputs - removed the now useless STATIC_ENDPOINT_CONFIGURATION compile time token. 2009-04-24 07:28:51 +00:00
Dean Camera c20a94a4e8 Fixed USB_RemoteWakeupEnabled flag never being set (the REMOTE WAKEUP Set Feature request was not being handled).
Renamed the FEATURELESS_CONTROL_ONLY_DEVICE compile-time token to CONTROL_ONLY_DEVICE.
2009-04-23 13:28:12 +00:00
Dean Camera 9cec85bfd9 Documentation enhancements to improve documentation cross-references. 2009-04-22 14:28:55 +00:00
Dean Camera e5e7eaee7a Removed specialized Endpoint_ClearControl* and Pipe_ClearControl* macros in favour of the standard Endpoint_Clear* and Pipe_Clear* macros (Atmel have confirmed no effect from setting FIFOCON on control endpoints). 2009-04-21 06:05:50 +00:00
Dean Camera 663f449c10 Fixed incorrect HID interface class and subclass values in the Mouse and KeyboardMouse demos (thanks to Brian Dickman).
Capitolised the "Descriptor_Search" and "Descriptor_Search_Comp" prefixes of the values in the DSearch_Return_ErrorCodes_t and DSearch_Comp_Return_ErrorCodes_t enums.

Minor documentation improvements.
2009-04-19 11:43:21 +00:00
Dean Camera d38fa49cb6 More documentation changes for better module-level documentation rather than file-level documentation. 2009-04-17 05:04:21 +00:00
Dean Camera 1c16ae399a Partial commit: change references to Drivers/AT90USBXXX to Drivers/Peripheral. 2009-04-16 23:59:14 +00:00
Dean Camera 8f6b4ddf76 Fixed GenericHIDHost demo report write routine incorrect for control type requests (thanks to Andrei Krainev).
Removed Endpoint_ClearCurrentBank() and Pipe_ClearCurrentBank() in favour of new Endpoint_ClearIN(), Endpoint_ClearOUT(), Endpoint_ClearControlIN(), Endpoint_ClearControlOUT(), Pipe_ClearIN(), Pipe_ClearOUT(), Pipe_ClearControlIN() and Pipe_ClearControlOUT() macros (done to allow for the detection of packets of zero length).

Renamed *_ReadWriteAllowed() macros to *_IsReadWriteAllowed() to remain consistent with the rest of the LUFA API.

Endpoint_IsSetupReceived() macro has been renamed to Endpoint_IsSETUPReceived(), Endpoint_ClearSetupReceived() macro has been renamed to Endpoint_ClearControlSETUP(), the Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent() and the Pipe_ClearSetupSent() macro is no longer applicable and should be removed - changes made to compliment the new endpoint and pipe bank management API.

Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel).

Updated library doxygen documentation, added groups, changed documentation macro functions to real functions for clarity.

Removed old endpoint and pipe aliased read/write/discard routines which did not have an explicit endian specifier for clarity.

Removed the ButtLoadTag.h header file, as no one used for its intended purpose anyway.
2009-04-16 08:50:34 +00:00
Dean Camera 557a945ba1 Removed all binary constants and replaced with decimal or hexadecimal constants so that unpatched GCC compilers can still build the code without having to be itself patched and recompiled first. 2009-04-05 07:00:11 +00:00
Dean Camera 7d4cccc22d Move StdRequestType.h, StreamCallbacks.h, USBMode.h from the LowLevel USB driver directory to the HighLevel USB driver directory, where they are more suited. 2009-04-05 06:27:49 +00:00
Dean Camera 6933f2e1a5 All comments in the library, bootloaders, demos and projects have now been spell-checked and spelling mistakes/typos corrected. 2009-04-01 13:53:58 +00:00
Dean Camera 1c9092a8a6 Fixed USBTask.h not conditionally including HostChapter9.h only when CAN_BE_DEVICE is defined (thanks to Ian Gregg). 2009-03-26 00:20:28 +00:00
Dean Camera e611b250c1 Added extra output to makefiles to indicate the currently selected BOARD parameter. 2009-03-16 11:29:00 +00:00
Dean Camera 3803976534 Fixed incorrect/missing control status stage transfers on demos, bootloaders and applications (thanks to Nate Lawson). 2009-03-10 05:56:17 +00:00
Dean Camera 7e7124e40b Updated makefiles to reflect new dfu-ee programming target invocations (supplied by Opendous, Inc.).
Renamed the ATTR_ALWAYSINLINE function attribute macro to ATTR_ALWAYS_INLINE to match the style of the other function attribute macro names.

Added ATTR_ALWAYS_INLINE attribute to several inlined library functions, to ensure they are inlined in all circumstances.

Cleanups to Endpoint.h and Pipe.h. Added better documentation for the endpoint and pipe interrupts.
2009-03-04 08:03:13 +00:00
Dean Camera 6a10d6b465 Moved all source to the trunk directory. 2009-02-23 07:08:22 +00:00