Skip to content
This repository was archived by the owner on Oct 5, 2023. It is now read-only.

Commit

Permalink
keycode
Browse files Browse the repository at this point in the history
  • Loading branch information
jiangyitao committed Dec 28, 2020
1 parent 35058e5 commit 7f54df5
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
26 changes: 15 additions & 11 deletions src/main/java/com/daxiang/core/mobile/android/scrcpy/Scrcpy.java
Original file line number Diff line number Diff line change
Expand Up @@ -263,22 +263,26 @@ private void commitTouchEvent(byte actionType, int x, int y, int screenWidth, in

private static final byte KEY_EVENT_ACTION_DOWN = 0;
private static final byte KEY_EVENT_ACTION_UP = 1;
private static final byte TYPE_INJECT_KEYCODE = 0;
private ByteBuffer keycodeBuffer = ByteBuffer.allocate(20);

// Scrcpy.server ControlMessageReader.parseInjectKeycode
public void commitKeycode(int keycode) {
keycodeBuffer.rewind();
public void keyDown(int keycode, int metaState) {
commitKeycode(keycode, metaState, KEY_EVENT_ACTION_DOWN);
}

keycodeBuffer.put(TYPE_INJECT_KEYCODE);
keycodeBuffer.put(KEY_EVENT_ACTION_DOWN); // 按下
keycodeBuffer.putInt(keycode); // keycode
keycodeBuffer.putInt(0); // metaState
public void keyUp(int keycode, int metaState) {
commitKeycode(keycode, metaState, KEY_EVENT_ACTION_UP);
}

private static final byte TYPE_INJECT_KEYCODE = 0;
private ByteBuffer keycodeBuffer = ByteBuffer.allocate(10);

private void commitKeycode(int keycode, int metaState, byte keyDownOrUp) {
keycodeBuffer.rewind();

keycodeBuffer.put(TYPE_INJECT_KEYCODE);
keycodeBuffer.put(KEY_EVENT_ACTION_UP); // 抬起
keycodeBuffer.putInt(keycode); // keycode
keycodeBuffer.putInt(0); // metaState
keycodeBuffer.put(keyDownOrUp);
keycodeBuffer.putInt(keycode);
keycodeBuffer.putInt(metaState);

commit(keycodeBuffer.array());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,16 @@ public void onMessage(String msg) {
scrcpy.touchUp(message.getIntValue("x"), message.getIntValue("y"), message.getIntValue("width"), message.getIntValue("height"));
break;
case "k":
scrcpy.commitKeycode(message.getIntValue("keycode"));
int keycode = message.getIntValue("keycode");
int metaState = message.getIntValue("metaState");
scrcpy.keyDown(keycode, metaState);
scrcpy.keyUp(keycode, metaState);
break;
case "kd":
scrcpy.keyDown(message.getIntValue("keycode"), message.getIntValue("metaState"));
break;
case "ku":
scrcpy.keyUp(message.getIntValue("keycode"), message.getIntValue("metaState"));
break;
}
}
Expand Down

0 comments on commit 7f54df5

Please sign in to comment.