cosmetic and comments for guacamole integration
[libguac-client-rdp.git] / include / rdp_keymap.h
index b045929..63460e1 100644 (file)
@@ -38,6 +38,8 @@
 #ifndef _GUAC_RDP_RDP_KEYMAP_H
 #define _GUAC_RDP_RDP_KEYMAP_H
 
+#include <freerdp/locale/keyboard.h>
+
 /**
  * Represents a keysym-to-scancode mapping for RDP, with extra information
  * about the state of prerequisite keysyms.
@@ -96,6 +98,13 @@ struct guac_rdp_keymap {
      */
     const guac_rdp_keysym_desc* mapping;
 
+    /**
+     * FreeRDP keyboard layout associated with this
+     * keymap. If this keymap is selected, this layout
+     * will be requested from the server.
+     */
+    const uint32 freerdp_keyboard_layout;
+
 };
 
 /**
@@ -114,6 +123,11 @@ typedef int guac_rdp_keysym_state_map[256][256];
 extern const guac_rdp_keymap guac_rdp_keymap_en_us;
 
 /**
+ * Map of X11 keysyms to RDP scancodes (common non-printable keys).
+ */
+extern const guac_rdp_keymap guac_rdp_keymap_base;
+
+/**
  * Simple macro for referencing the mapped value of an altcode or scancode for a given keysym.
  */
 #define GUAC_RDP_KEYSYM_LOOKUP(keysym_mapping, keysym) ((keysym_mapping)[((keysym) & 0xFF00) >> 8][(keysym) & 0xFF])
@@ -124,11 +138,31 @@ extern const guac_rdp_keymap guac_rdp_keymap_en_us;
 extern const int GUAC_KEYSYMS_SHIFT[];
 
 /**
+ * Keysym string containing both "shift" keys.
+ */
+extern const int GUAC_KEYSYMS_ALL_SHIFT[];
+
+/**
+ * Keysym string containing only the left "ctrl" key.
+ */
+extern const int GUAC_KEYSYMS_CTRL[];
+
+/**
+ * Keysym string containing both "ctrl" keys.
+ */
+extern const int GUAC_KEYSYMS_ALL_CTRL[];
+
+/**
  * Keysym string containing only the left "alt" key.
  */
 extern const int GUAC_KEYSYMS_ALT[];
 
 /**
+ * Keysym string containing both "alt" keys.
+ */
+extern const int GUAC_KEYSYMS_ALL_ALT[];
+
+/**
  * Keysym string containing all modifier keys.
  */
 extern const int GUAC_KEYSYMS_ALL_MODIFIERS[];