Interesting things happen when TinyUSB is used both for host and device.
bool tusb_inited(void)
{
bool ret = false;
ret = ret || tud_inited();
ret = ret || tuh_inited();
return ret;
}
-> This is effectively tud_inited() || tuh_inited(), which is great
but tuh_task() should check tuh_inited() not tusb_inited(). This way,
tusb_inited() returns true when tinyusb device gets inited correctly
and tuh_task gets stuck in an endless loop with watchdog rebooting the
device.
Some of the features implemented in this release are:
- TinyUSB used to handle HOST management as well
- USB hub support (tried an ancient one and it worked)
- Early and buggy support for mouse on the keyboard side
but have no unified usb receivers to test
- Rudimentary HID report descriptor parsing, support for
mice that don't send wheel data unless in report protocol mode
- Implemented queueing for keyboard/mouse messages with
hid report send verification
- Split firmware upgrade shortcut to two
now it's left-shift + F12 + A + right shift to write board A
left-shift + F12 + B + right shift to write board B
- Fixed keyboard stuck in outputing chars if you hold down a key
and change screens while doing it
- Implemented cursor hiding, so the screen we are moving away from
parks cursor at top right corner and it looks more natural and
feels intuitive
- Implemented switch lock, use Ctrl + L to lock and unlock
desktop switching
- Implemented jump threshold, works like barrier opacity - you can
define if mouse immediately jumps over or you need to give it a bit
of a "nudge"