Hi Neil
HID mouse uses an IN endpoint and the PC host polls it to receive movement and key press information (8 bytes).
The PC host can send a class command to control a few outputs on the mouse.
Therefore I don't know whether HID mouse is suitable generally.
HID keyboard is very similar in that the the PC host also polls for key strokes and can control some outputs (like CAPS lock LED). Again I don't know whether this is generally suitable.
More general and flexible if possibly
USE_USB_HID_RAW which allows 64 byte blocks of data to be transferred in both directions.
I have implemented this so that it can be tested with the Teensy example application explained/found here:
https://www.pjrc.com/teensy/rawhid.htmlI also found a video of it at
https://www.youtube.com/watch?v=iMuNbAv61OA (although 95% is how to get it working on Linix - right at the end it shows it operating).
It alows 64 byte blocks in both directions so can handle 64kBye/s to the PC host and higher from the PC host.
The implementation just echoes the data that the PC host sends back to it but this can easily be used as basis for communication between PC and application once commands are defined and handled. Since HID RAW doesn't need any driver it is also practical as base for PC applications.
Regards
Mark