I'm using a SparkFun Pro Micro board (detected as a Leonardo by the IDE) to map some hardware buttons to USB keystrokes, so that an Android device can process these strokes. I chose the a board with the ATMega32U4, because it already has all the USB HID stuff in it. Or so I thought...
It seems that in order to properly use the media keys (volume up / down, mute, play, next, prev, etc) the device needs to describe itself as supporting the "consumer page" part of the HID specification (see here for the specs).
Since I'm using the Pro Micro, I had to add some files to the IDE (as per here). Among these files is the HID.cpp file, which contains the HID Report Descriptor used by the board. It seems I have to add to this descriptor to enable the keys. Somebody has already done something like this, but on a Teensy.
Can anyone shed some light on the things I have to do to make this work? In the Teensy project, the descriptor was expanded and a set_media function was added to enable switching between the different keyboard page. I'm not sure how to approach this on the Arduino codebase. Any ideas?