package com.limelight.input; import java.awt.event.KeyEvent; import com.limelight.nvstream.NvConnection; import com.limelight.nvstream.input.KeycodeTranslator; /** * Class to translate a java key code into the codes GFE is expecting * @author Diego Waxemberg */ public class KeyboardTranslator extends KeycodeTranslator { /** * GFE's prefix for every key code */ public static final short KEY_PREFIX = (short) 0x80; /** * Constructs a new translator for the specified connection * @param conn the connection to which the translated codes are sent */ public KeyboardTranslator(NvConnection conn) { super(conn); } /** * Translates the given keycode and returns the GFE keycode * @param keycode the code to be translated * @return a GFE keycode for the given keycode */ @Override public short translate(int keycode) { // change newline to carriage return if (keycode == KeyEvent.VK_ENTER) { keycode = 0x0d; } // period maps to delete by default so we remap it if (keycode == KeyEvent.VK_PERIOD) { keycode = 0xbe; } // Nvidia maps period to delete if (keycode == KeyEvent.VK_DELETE) { keycode = KeyEvent.VK_PERIOD; } return (short) ((KEY_PREFIX << 8) | keycode); } }