This allows me to easily support new keyboard layouts, even without knowing anything about given layout or language. So far I have implemented support for following layouts:
- English (en-US),
- Polish (pl-PL),
- German (de-DE),
- Russian (ru-RU).
Each KeyboardLayout subclass allows to:
- type text using given layout: void type(String text);
- get character associated with given key, based on current state of Caps Lock, Shift and right Alt keys: char getChar(int scanCode, boolean capsLock, boolean shift, boolean altGr);
It is important to remember about following limitations:
- user make sure that USB host uses the same layout as the application. Application has no way of knowing what layout is currently used by USB host.
- obviously, once you use a given layout, only characters defined for the layout are available, other characters will be ignored.
USB Remote already supports previously mentioned layouts. In case of some layouts it may be a good idea to change default placement of some of keys, but that would require a bit of experience with given layout.
I'll release this version soon, along with some other minor fixes and improvements. Also, please let me know if you would like me to add other layouts.