Recently I've added support for USB composite devices, what allows InputStick to have several USB interfaces at the same time. This is extremely useful in applications like remote control, where we need mouse and keyboard interfaces working at the same time. I will leave implementation details for other post, which will cover recent improvements in InputStick firmware and Android library. Here I want to focus on Remote Control application. First let's take a look at how opetaing system sees such device:
As you can see there are three interfaces: mouse (USB endpoint 1), keyboard (USB endpoint 2) and input device consisting of consumer control device (system volume and playback control) and power control (USB endpoint 3). Each interface has already been covered in my previous posts. Now let's take a look at Remote Control application (which originally was supposed to be Remote Keyboard application):
I should spend some more time working on the layout, but for now its just a proof of concept. Here you can see it in action:
Just like I've mentioned in the video, there is no need to install any additional software on controlled device. As a physical device it will also work with any modern operating system (Windows, Linux, Mac OS, Android etc) and it doesn't require installing additional drivers, since it uses standard USB HID (Human Interface Device) class. So just like in the video, all it takes is to plug InputStick into USB port and run Remote Control application on your smartphone.