|
@@ -18,7 +18,36 @@
|
|
|
#include <linux/uuid.h>
|
|
|
#include <linux/visorbus.h>
|
|
|
|
|
|
-#include "ultrainputreport.h"
|
|
|
+/* These defines identify mouse and keyboard activity which is specified by the
|
|
|
+ * firmware to the host using the cmsimpleinput protocol. @ingroup coretypes
|
|
|
+ */
|
|
|
+/* only motion; arg1=x, arg2=y */
|
|
|
+#define INPUTACTION_XY_MOTION 1
|
|
|
+
|
|
|
+/* arg1: 1=left,2=center,3=right */
|
|
|
+#define INPUTACTION_MOUSE_BUTTON_DOWN 2
|
|
|
+#define INPUTACTION_MOUSE_BUTTON_UP 3
|
|
|
+#define INPUTACTION_MOUSE_BUTTON_CLICK 4
|
|
|
+#define INPUTACTION_MOUSE_BUTTON_DCLICK 5
|
|
|
+
|
|
|
+/* arg1: wheel rotation away from/toward user */
|
|
|
+#define INPUTACTION_WHEEL_ROTATE_AWAY 6
|
|
|
+#define INPUTACTION_WHEEL_ROTATE_TOWARD 7
|
|
|
+
|
|
|
+/* arg1: scancode, as follows: If arg1 <= 0xff, it's a 1-byte scancode and arg1
|
|
|
+ * is that scancode. If arg1 > 0xff, it's a 2-byte scanecode, with the 1st
|
|
|
+ * byte in the low 8 bits, and the 2nd byte in the high 8 bits.
|
|
|
+ * E.g., the right ALT key would appear as x'38e0'.
|
|
|
+ */
|
|
|
+#define INPUTACTION_KEY_DOWN 64
|
|
|
+#define INPUTACTION_KEY_UP 65
|
|
|
+#define INPUTACTION_KEY_DOWN_UP 67
|
|
|
+
|
|
|
+/* arg1: scancode (in same format as inputaction_keyDown); MUST refer to one of
|
|
|
+ * the locking keys, like capslock, numlock, or scrolllock.
|
|
|
+ * arg2: 1 iff locking key should be in the LOCKED position (e.g., light is ON)
|
|
|
+ */
|
|
|
+#define INPUTACTION_SET_LOCKING_KEY_STATE 66
|
|
|
|
|
|
/* Keyboard channel {c73416d0-b0b8-44af-b304-9d2ae99f1b3d} */
|
|
|
#define VISOR_KEYBOARD_CHANNEL_GUID \
|
|
@@ -36,6 +65,18 @@
|
|
|
#define PIXELS_DOWN_DEFAULT 768
|
|
|
#define KEYCODE_TABLE_BYTES 256
|
|
|
|
|
|
+struct visor_inputactivity {
|
|
|
+ u16 action;
|
|
|
+ u16 arg1;
|
|
|
+ u16 arg2;
|
|
|
+ u16 arg3;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+struct visor_inputreport {
|
|
|
+ u64 seq_no;
|
|
|
+ struct visor_inputactivity activity;
|
|
|
+} __packed;
|
|
|
+
|
|
|
/* header of keyboard/mouse channels */
|
|
|
struct visor_input_channel_data {
|
|
|
u32 n_input_reports;
|