PlayerControl should not be aware of the input method (keyboard, mouse drag or joystick). Move all key-related stuff to Input and PlayerControl only take care of Forward/Backward/StrafeLeft/StrafeRight acceleration.
Yes, keypresses should be handled completely in DecoKeyboard and pass only resulting accelerations to the PlayerControl with equal approach in DecoGamepad and (?)DecoInterfacePropulsion.
PlayerControl should not be aware of the input method (keyboard, mouse drag or joystick). Move all key-related stuff to Input and PlayerControl only take care of Forward/Backward/StrafeLeft/StrafeRight acceleration.