I just got a jukebox shell and I'm going to convert it to DOSCab. I was originally going to be using a touchscreen but this has a piece of glass over the entire front so that's out.
It does have buttons 0-9, Select, Clear, and Hit. I think I can add 2-3 buttons in one small area, but that's it. I'm going to be using a CD based skin. The two additional buttons will be used for scrolling left / right through CDs.
Ideally I need at least 5-6 more buttons but I can't really add them without ruining somethings. Then I could have vol+-/mute/scroll by letter/clear song, credits, radio, exit, etc.
Here's my thought. I'd wire the Hit button up as L-Shift on the keyboard controller. Then for instance button 0, I'd wire to the semicolon. Then in controls.ini I'd map
KEY_LSHIFT = BTN_POPULAR
KEY_SEMICOLON= BTN_0
Could KEY_COLON be added for ":" ?
KEY_COLON = BTN_VOL_MUTE ?
Then if the HIT key is pressed it should flip the screen to the hits (popular). If that button is held down, the keyboard controller should see it as a shift and then would allow me to have shifted ";" or ":" and instead it would mute the volume?
Ideally I'd need "<", ">", "?", ":", "@", "#", "$", etc to have enough additional functions for the shifted keys.
Would this work? Or does DOSCab just see the key that is pressed, and not the actually character that is passed to the PC? For instance "~" is already mapped to BTN_VOL_MUTE, but is it just the ~ or also the backquote?
If I could add a "shift" key, then I'd end up with the original (13 + 2 new ) * 2 = 30 buttons. This way the controls can be as simple as they are, but I'd have additional functions available.