aboutsummaryrefslogtreecommitdiff
path: root/libraries/HID/HID.h
AgeCommit message (Collapse)Author
2015-10-02[PUSB] Fix static initialization order fiascoMartino Facchin
For details see: https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
2015-10-02[HID] removed HIDDescriptor fieldCristian Maglie
The field is now built on-the-fly on the stack and sent over USB. This change increase Flash usage and decrease SRAM usage: before: 6114 / 241 after: 6152 / 216 (removed HIDDescriptor field) delta: +38 / -25 SRAM is a much more scarse resource and this change free up to about 10% of the "base" usage.
2015-10-02[HID] Code cleanup (no semantic changes)Cristian Maglie
2015-10-02[HID] removed unused modules_count fieldCristian Maglie
2015-10-02[PUSB] Fixed checks on return valuesCristian Maglie
2015-10-02[USB] Fixed some compiler warningsCristian Maglie
2015-10-02[PUSB] epType array is now part of HID classCristian Maglie
2015-10-02[HID] Removed static fields in HID classCristian Maglie
There is still the epType[] array to be handled in some way.
2015-10-02[PUSB] callbacks are now pure virtual methodsCristian Maglie
This change allows the compiler to handle callbacks resolution. Callbacks now must be implemented on the class that extends PUSBListNode and this is forced by compiler by means of pure virtual methods. Also the calls to HID.interface() and HID.endpoint() can now be simplified to interface() and endpoint() respectively since the methods are no more static.
2015-10-02[PUSB] Moved static members inside HID_ classCristian Maglie
This commit prepares for the next refactoring
2015-10-02[PUSB] Selected interface and endpoint are now part of PUSBListNodeCristian Maglie
The method int8_t PluggableUSB::addFunction(PUSBListNode *, uint8_t *) has been changed to bool PluggableUSB::plug(PUSBListNode *node) since both EP and Interfaces are now saved directly into node
2015-10-02[HID] Now HID extends directly PluggableUSBListNodeCristian Maglie
This avoid duplicate instatiation of callback and save a considerable amount of flash.
2015-09-28[HID] Changed 'u8' to 'uint8_t' in definitionsCristian Maglie
2015-09-28[HID] added 'const' qualifier in HID initializationCristian Maglie
See https://github.com/arduino/Arduino/pull/3840#discussion_r40438845
2015-09-22HID: merged HID_Descriptor into HIDDescriptorListNodeCristian Maglie
This simplifies the object model and produce a small gain in code size and performance.
2015-09-22HID: Renamed fields in HIDDescriptorListNode and HID_DescriptorCristian Maglie
In particular HIDDescriptorListNode.cb has been renamed to HIDDescriptorListNode.descriptor because it contains decriptor data and not callbacks. Moreover the HID_Descriptor.descriptor field has been renamed to HID_Descriptor.data so the structure has now two fields length and data. typedef struct __attribute__((packed)) { uint16_t length; const void* data; } HID_Descriptor; class HIDDescriptorListNode { public: HIDDescriptorListNode *next = NULL; const HID_Descriptor *descriptor; HIDDescriptorListNode(const HID_Descriptor *d) : descriptor(d) { } }; This imply a change in the use of the node from: node->cb->lenght node->cd->descriptor to node->descriptor->length node->descriptor->data
2015-08-12Fixed HID Reports >255 bytesNicoHood
2015-07-16rework HID-based libraries and add Due fallbackMartino Facchin
2015-07-16allow HID submodules to create runtime descriptorsMartino Facchin
with this PR you can add \#include Keyboard.h \#include Mouse.h \#include HID.h in the top of the sketch and you will expose a Mouse+Keyboard From the library pow, simply add static HID_Descriptor cb = { .length = sizeof(_hidReportDescriptor), .descriptor = _hidReportDescriptor, }; static HIDDescriptorListNode node(&cb); HID.AppendDescriptor(&node); in the class' constructor and you are done!
2015-07-16rework HID class functions scopesMartino Facchin
2015-07-16fix HID headersMartino Facchin
2015-07-16fix HID descriptors bigger than 127 bytesMartino Facchin
2015-07-16move HID library to AVR specific locationMartino Facchin