update:
just yesterday, I added support for using a linear single-gang analog pot as an input device, for controlling the volume. it has the advantage of being cheap, easy to find, takes up little space, has good feel and it points to absolute values (when you turn the knob to 12 oclock, you get the volume as halfway, etc).
I 'burned' one analog-in pin for this but I think its worth it

and it works well with the IR arrow-key style input, too. you can use both, and alternate between them if you want. if you turn the pot to some level, the volume goes to that level; then if you bump it up/down with the IR remote, it uses the last value 'seen' and operates on that. and again, the user is free to 'touch up' the knob at any point and it will take priority over the arrow keys.
the 'knob' also takes note of the min volume level and max volume level, as set by the user in the GUI. so even if you grab the vol knob and crank it to max, the system won't blast you out of your room, it will honor the user's max-vol level and never go outside the min/max range.
we're closing in on getting the beta code ready to ship and admittedly this was a last minute addition but I have to admit I like this feature quite a lot, so its going into the beta-test code base.
there is also provision for separate control of input selectors AND output selectors. if you choose name lengths of 8 chars or less, you can show the input selector device name on the top left of the display and output sel name on the top right of the display. IR buttons are assigned for direct access to the inputs and outputs.
(note, we're almost at the 6000 lines of C code-point. this stuff really adds up but there's a lot of functionality in this system)
