aboutsummaryrefslogtreecommitdiff
path: root/libraries/HID/HID.cpp
AgeCommit message (Collapse)Author
2015-10-21Merge remote-tracking branch 'arduino/master' into HEADCristian Maglie
2015-10-21[USB] use plugged modules name to create iSerial fieldMartino Facchin
2015-10-12[PHID] Fixes protocol on reenumerationNicoHood
2015-10-12[HID] renamed HIDDescriptorListNode to HIDSubDescriptorCristian Maglie
2015-10-12[PUSB] Renamed PUSBListNode to PluggableUSBModuleCristian Maglie
2015-10-11[PHID] Added missing GET_IDLE RequestNicoHood
2015-10-10[PHID] Added some hints for further optional implementationsNicoHood
2015-10-10Added official HID definitionsNicoHood
Since the HID library adds some general HID definitions and structs, it is very useful to also include this in a custom library. If you dupe the information you have problems of redeclaration. Having those defintions inside the official HID library is essential for a good working additional HID API.
2015-10-08Remove unnecessary includeNico
Its included by HID.h anyways.
2015-10-08[HID] Improved checks in getDescriptor() methodCristian Maglie
2015-10-07[PUSB] Removed unnecessary endpoint and interface functionNicoHood
2015-10-07[PHID] Added SetReport functionNicoHood
This commit just shows other that this option is available and not implemented. You may use this to determine the Led Lights state of a keyboard or transmit data via RAWHID from the PC. Quick usage guide: int length = ((setup.wValueH << 8) | setup.wLength); USB_RecvControl((uint8_t* data, USB_EP_SIZE); // Needs to be splitted into USB_EP_SIZE packets, not shown here. See HID Project.
2015-10-07[PUSB] Made getDescriptor() and setup() more flexibleNicoHood
Alternatively we can only pass the wIndex to getDescriptor but I suggest to just pass the pointer aka reference of the whole setup. In guess (havent tested this) that this results in more or less the code size but its a) idential with the other functions and b) we late have more flexibility here. The Code got a quick SerialKeyboard.ino test
2015-10-07[PUSB] renamed some parametersCristian Maglie
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[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] The latest fields are now set via constructorCristian Maglie
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] replaced u8 with uint8_tCristian Maglie
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-10-02[PUSB] Global functions PUSB_* are now methods of PluggableUSB classCristian Maglie
2015-10-02[PUSB] PUSBCallback struct has been merged into PUSBListNodeCristian Maglie
This slightly simplifies PluggableUSB API.
2015-09-28[HID] Added missing return in HID.begin()Cristian Maglie
2015-09-28[HID] Changed 'u8' to 'uint8_t' in definitionsCristian Maglie
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-09-20Remove Raw HID definitions at wrong placeNico
2015-08-12Added 16 byte endpoint supportNicoHood
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-16rename Setup typedef struct to USBSetupMartino Facchin
was really too common
2015-07-16fix HID descriptors bigger than 127 bytesMartino Facchin
2015-07-16move HID library to AVR specific locationMartino Facchin