As long as you don't need to handle multiple keys being depressed simultaneously, I don't see why you can't just define a const for the return value corresponding to each key pressed in isolation and put those in a switch statement, pretty much as you were doing.
If you want to handle multiple keys then I would use a loop, bitshift and bitmask to test whether each bit was set and call a function to handle that keypress; in that function you could use a switch (key number) to determine which of the buttons was being dealt with.