Martino Facchin
2acda414aa
port PluggableUSB to sam core
2015-07-17 12:16:38 +02:00
Martino Facchin
a261e6cf7c
remove HID from core
2015-07-17 12:16:09 +02:00
Martino Facchin
b2381506a2
sam: add HID library
2015-07-17 12:13:21 +02:00
Martino Facchin
bd9d215986
USB libraries: replace non-portable u8 with uint8_t
2015-07-17 12:08:26 +02:00
Martino Facchin
f9b9cd03d4
Keyboard: fix endif disappeard during rebase
2015-07-16 16:20:16 +02:00
Martino Facchin
af290fc5a3
rework HID-based libraries and add Due fallback
2015-07-16 13:13:53 +02:00
Martino Facchin
99814355ec
add includes to USB examples
2015-07-16 13:13:53 +02:00
Martino Facchin
5cc7c1078f
remove CompleteHID library
...
expect way more interesting user-generated libraries
2015-07-16 13:13:53 +02:00
Martino Facchin
8ebc5d0347
remove stub MIDIUSB library
...
revert this commit when it's time to integrate this library
2015-07-16 13:13:53 +02:00
Martino Facchin
efd329bb5e
fix MIDIUSB and adapt CompleteHID to PluggableHID
2015-07-16 13:13:53 +02:00
Martino Facchin
e1a0350062
allow HID submodules to create runtime descriptors
...
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-16 13:13:52 +02:00
Martino Facchin
6a9568d3e1
fix pluggableUSB linked list
2015-07-16 13:13:52 +02:00
Martino Facchin
8a45883230
save RAM content overridden by bootloader magic
...
and restore it in case of aborted reboot
use RAMEND-1 as suggested by @yyyc514 in PR #2474
of course it's not a real solution but we cannot force everyone to update the bootloader using an external programmer
2015-07-16 13:13:52 +02:00
Martino Facchin
5defaeaa97
rework HID class functions scopes
2015-07-16 13:13:52 +02:00
Martino Facchin
97a3771772
rename Setup typedef struct to USBSetup
...
was really too common
2015-07-16 13:13:52 +02:00
Martino Facchin
dee43a19d7
fix HID headers
2015-07-16 13:13:51 +02:00
Martino Facchin
9074b1ed18
fix HID descriptors bigger than 127 bytes
2015-07-16 13:13:51 +02:00
Martino Facchin
a989b72a1b
squash of Overhaul USB HID as a library
...
all code from #1803 included
2015-07-16 13:13:51 +02:00
Martino Facchin
175240a906
Add support for waking up a host via USB HID
...
this is a rework of commit fbcf94801b
2015-07-16 13:13:51 +02:00
Martino Facchin
91a115a353
move HID library to AVR specific location
2015-07-16 13:13:51 +02:00
Martino Facchin
e211f1ea76
remove setupUSB weak hook and replace with global constructors
...
thanks @matthijskooijman
2015-07-16 13:13:49 +02:00
Martino Facchin
071323196d
enforce single use of HID submodule
2015-07-16 13:13:45 +02:00
Martino Facchin
89928b4e15
rework PUSBCallbacks initialization
2015-07-16 13:13:39 +02:00
Martino Facchin
ada0e4c2f3
remove 3 endpoints to match at32u4 limit
2015-07-16 13:12:15 +02:00
Martino Facchin
f37547e8fd
add numInterfaces field to PUSBCallbacks
2015-07-16 13:12:15 +02:00
Martino Facchin
a031921708
add stub MIDIUSB library
...
only a proof of concept for PluggableUSB module
2015-07-16 13:12:15 +02:00
Martino Facchin
8f0a433903
export WEAK macro
2015-07-16 13:12:15 +02:00
Martino Facchin
344896ed70
Fix HID derived libraries and add automatic setupUSB() weak hook
2015-07-16 13:12:15 +02:00
Martino Facchin
feaa14fa56
standalone MouseAndKeyboard library
2015-07-16 13:12:15 +02:00
Martino Facchin
fe825c8f9b
standalone Keyboard library
2015-07-16 13:12:15 +02:00
Martino Facchin
c2a083b57b
standalone Mouse library
2015-07-16 13:12:14 +02:00
Martino Facchin
4a552055bf
remove Mouse and Keyboard from HID module
2015-07-16 13:12:14 +02:00
Martino Facchin
7b5c25f534
implement PUSB modules as linked list
2015-07-16 13:12:14 +02:00
Martino Facchin
f67318a8b1
remove useless variables
2015-07-16 13:12:14 +02:00
Martino Facchin
2aa2332f88
add arduino header to HID library
2015-07-16 13:12:14 +02:00
Martino Facchin
91ccab4f09
make CDC function non removable
2015-07-16 13:12:14 +02:00
Martino Facchin
018fb96a39
move HID to general external library
...
add pluggableUSB hooks and HID singleton
initialize with HID.begin() in setupUSB()
2015-07-16 13:12:14 +02:00
Martino Facchin
b2a6b61a2f
add weak setupUSB() hook
...
override this function to insert additional USB endpoints
2015-07-16 13:12:14 +02:00
Martino Facchin
ec43b6c829
remove useless variable
2015-07-16 13:12:14 +02:00
Martino Facchin
1aec25b855
add PluggableUSB module
2015-07-16 13:12:14 +02:00
Martino Facchin
1f534eac35
move _initEndpoints from PROGMEM to RAM
2015-07-16 13:12:14 +02:00
Martino Facchin
2c5dd20298
Use generic composite device descriptor
2015-07-16 13:12:13 +02:00
Martino Facchin
5ee69a70ee
Move EP defines to header
2015-07-16 13:12:13 +02:00
Martino Facchin
09460dd8c9
Remove HID core library
2015-07-16 13:12:13 +02:00
Matthijs Kooijman
7fd6244621
Enable C11 support
...
This uses the gnu11 standard, which is C11 with GNU extensions.
Previously, gnu89 was being used, which is pretty ancient by now. C99
brings some important improvements, some of which were already available
and used even without this option. C11 is more recent and brings more
minor improvements. Most notable feature is the static_assert statement,
allowing checking invariants at compiletime using the full C
expressions.
2015-07-16 13:06:10 +02:00
Matthijs Kooijman
ebeb7843d2
Check for __cplusplus >= 201103L as well as __GXX_EXPERIMENTAL_CXX0X__
...
Gcc 4.8 defines __cplusplus as 201103L, so we can check for that now. It
still also defines __GXX_EXPERIMENTAL_CXX0X__, but this could help on
other compilers, or if gcc ever decides to stop defining the
experimental macro.
2015-07-16 13:06:10 +02:00
Matthijs Kooijman
ddf4d878fd
Enable C++11 support
...
This uses the gnu++11 standard, which is C++11 with GNU extensions.
C++11 should be full compatible with the previously used C++98
standards, so all pre-existing sketches should continue to work.
2015-07-16 13:06:09 +02:00
Matthijs Kooijman
770a695c85
Explicitely specify C and C++ standards to use
...
This does not change anything, it just makes the defaults explicit.
2015-07-16 13:06:09 +02:00
Cristian Maglie
c28e6b20c4
WiFi lib version bump to 1.2.5
2015-07-14 23:40:40 +02:00
Cristian Maglie
6e9e514a2d
Ethernet lib version bump to 1.1.0
2015-07-14 23:39:03 +02:00