1 package com.genymobile.scrcpy; 2 3 /** 4 * Union of all supported event types, identified by their {@code type}. 5 */ 6 public final class ControlMessage { 7 8 public static final int TYPE_INJECT_KEYCODE = 0; 9 public static final int TYPE_INJECT_TEXT = 1; 10 public static final int TYPE_INJECT_MOUSE_EVENT = 2; 11 public static final int TYPE_INJECT_SCROLL_EVENT = 3; 12 public static final int TYPE_BACK_OR_SCREEN_ON = 4; 13 public static final int TYPE_EXPAND_NOTIFICATION_PANEL = 5; 14 public static final int TYPE_COLLAPSE_NOTIFICATION_PANEL = 6; 15 public static final int TYPE_GET_CLIPBOARD = 7; 16 public static final int TYPE_SET_CLIPBOARD = 8; 17 public static final int TYPE_SET_SCREEN_POWER_MODE = 9; 18 19 private int type; 20 private String text; 21 private int metaState; // KeyEvent.META_* 22 private int action; // KeyEvent.ACTION_* or MotionEvent.ACTION_* or POWER_MODE_* 23 private int keycode; // KeyEvent.KEYCODE_* 24 private int buttons; // MotionEvent.BUTTON_* 25 private Position position; 26 private int hScroll; 27 private int vScroll; 28 ControlMessage()29 private ControlMessage() { 30 } 31 createInjectKeycode(int action, int keycode, int metaState)32 public static ControlMessage createInjectKeycode(int action, int keycode, int metaState) { 33 ControlMessage event = new ControlMessage(); 34 event.type = TYPE_INJECT_KEYCODE; 35 event.action = action; 36 event.keycode = keycode; 37 event.metaState = metaState; 38 return event; 39 } 40 createInjectText(String text)41 public static ControlMessage createInjectText(String text) { 42 ControlMessage event = new ControlMessage(); 43 event.type = TYPE_INJECT_TEXT; 44 event.text = text; 45 return event; 46 } 47 createInjectMouseEvent(int action, int buttons, Position position)48 public static ControlMessage createInjectMouseEvent(int action, int buttons, Position position) { 49 ControlMessage event = new ControlMessage(); 50 event.type = TYPE_INJECT_MOUSE_EVENT; 51 event.action = action; 52 event.buttons = buttons; 53 event.position = position; 54 return event; 55 } 56 createInjectScrollEvent(Position position, int hScroll, int vScroll)57 public static ControlMessage createInjectScrollEvent(Position position, int hScroll, int vScroll) { 58 ControlMessage event = new ControlMessage(); 59 event.type = TYPE_INJECT_SCROLL_EVENT; 60 event.position = position; 61 event.hScroll = hScroll; 62 event.vScroll = vScroll; 63 return event; 64 } 65 createSetClipboard(String text)66 public static ControlMessage createSetClipboard(String text) { 67 ControlMessage event = new ControlMessage(); 68 event.type = TYPE_SET_CLIPBOARD; 69 event.text = text; 70 return event; 71 } 72 73 /** 74 * @param mode one of the {@code Device.SCREEN_POWER_MODE_*} constants 75 */ createSetScreenPowerMode(int mode)76 public static ControlMessage createSetScreenPowerMode(int mode) { 77 ControlMessage event = new ControlMessage(); 78 event.type = TYPE_SET_SCREEN_POWER_MODE; 79 event.action = mode; 80 return event; 81 } 82 createEmpty(int type)83 public static ControlMessage createEmpty(int type) { 84 ControlMessage event = new ControlMessage(); 85 event.type = type; 86 return event; 87 } 88 getType()89 public int getType() { 90 return type; 91 } 92 getText()93 public String getText() { 94 return text; 95 } 96 getMetaState()97 public int getMetaState() { 98 return metaState; 99 } 100 getAction()101 public int getAction() { 102 return action; 103 } 104 getKeycode()105 public int getKeycode() { 106 return keycode; 107 } 108 getButtons()109 public int getButtons() { 110 return buttons; 111 } 112 getPosition()113 public Position getPosition() { 114 return position; 115 } 116 getHScroll()117 public int getHScroll() { 118 return hScroll; 119 } 120 getVScroll()121 public int getVScroll() { 122 return vScroll; 123 } 124 } 125