@yume-chan/scrcpy 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +15 -0
- package/CHANGELOG.md +9 -1
- package/README.md +275 -38
- package/esm/adb/client.d.ts +40 -0
- package/esm/adb/client.d.ts.map +1 -0
- package/esm/adb/client.js +218 -0
- package/esm/adb/client.js.map +1 -0
- package/esm/adb/connection.d.ts +38 -0
- package/esm/adb/connection.d.ts.map +1 -0
- package/esm/{connection.js → adb/connection.js} +20 -24
- package/esm/adb/connection.js.map +1 -0
- package/esm/adb/index.d.ts +4 -0
- package/esm/adb/index.d.ts.map +1 -0
- package/esm/adb/index.js +4 -0
- package/esm/adb/index.js.map +1 -0
- package/esm/adb/options/1_16.d.ts +8 -0
- package/esm/adb/options/1_16.d.ts.map +1 -0
- package/esm/adb/options/1_16.js +20 -0
- package/esm/adb/options/1_16.js.map +1 -0
- package/esm/adb/options/1_22.d.ts +8 -0
- package/esm/adb/options/1_22.d.ts.map +1 -0
- package/esm/adb/options/1_22.js +17 -0
- package/esm/adb/options/1_22.js.map +1 -0
- package/esm/adb/options/index.d.ts +4 -0
- package/esm/adb/options/index.d.ts.map +1 -0
- package/esm/adb/options/index.js +4 -0
- package/esm/adb/options/index.js.map +1 -0
- package/esm/adb/options/types.d.ts +23 -0
- package/esm/adb/options/types.d.ts.map +1 -0
- package/esm/adb/options/types.js +30 -0
- package/esm/adb/options/types.js.map +1 -0
- package/esm/codec.js +2 -2
- package/esm/codec.js.map +1 -1
- package/esm/control/index.d.ts +8 -0
- package/esm/control/index.d.ts.map +1 -0
- package/esm/control/index.js +8 -0
- package/esm/control/index.js.map +1 -0
- package/esm/control/inject-keycode.d.ts +53 -0
- package/esm/control/inject-keycode.d.ts.map +1 -0
- package/esm/control/inject-keycode.js +54 -0
- package/esm/control/inject-keycode.js.map +1 -0
- package/esm/control/inject-text.d.ts +9 -0
- package/esm/control/inject-text.d.ts.map +1 -0
- package/esm/control/inject-text.js +7 -0
- package/esm/control/inject-text.js.map +1 -0
- package/esm/control/inject-touch.d.ts +30 -0
- package/esm/control/inject-touch.d.ts.map +1 -0
- package/esm/control/inject-touch.js +30 -0
- package/esm/control/inject-touch.js.map +1 -0
- package/esm/control/rotate-device.d.ts +7 -0
- package/esm/control/rotate-device.d.ts.map +1 -0
- package/esm/control/rotate-device.js +5 -0
- package/esm/control/rotate-device.js.map +1 -0
- package/esm/control/serializer.d.ts +23 -0
- package/esm/control/serializer.d.ts.map +1 -0
- package/esm/control/serializer.js +73 -0
- package/esm/control/serializer.js.map +1 -0
- package/esm/control/set-screen-power-mode.d.ts +12 -0
- package/esm/control/set-screen-power-mode.d.ts.map +1 -0
- package/esm/control/set-screen-power-mode.js +12 -0
- package/esm/control/set-screen-power-mode.js.map +1 -0
- package/esm/control/type.d.ts +15 -0
- package/esm/control/type.d.ts.map +1 -0
- package/esm/control/type.js +19 -0
- package/esm/control/type.js.map +1 -0
- package/esm/decoder/index.d.ts +27 -3
- package/esm/decoder/index.d.ts.map +1 -1
- package/esm/decoder/index.js +1 -3
- package/esm/decoder/index.js.map +1 -1
- package/esm/decoder/tinyh264/index.d.ts +5 -5
- package/esm/decoder/tinyh264/index.d.ts.map +1 -1
- package/esm/decoder/tinyh264/index.js +4 -4
- package/esm/decoder/tinyh264/index.js.map +1 -1
- package/esm/decoder/tinyh264/worker.js.map +1 -1
- package/esm/decoder/tinyh264/wrapper.d.ts.map +1 -1
- package/esm/decoder/tinyh264/wrapper.js +14 -8
- package/esm/decoder/tinyh264/wrapper.js.map +1 -1
- package/esm/decoder/types.d.ts +1 -27
- package/esm/decoder/types.d.ts.map +1 -1
- package/esm/decoder/web-codecs/index.d.ts +4 -4
- package/esm/decoder/web-codecs/index.d.ts.map +1 -1
- package/esm/decoder/web-codecs/index.js +1 -1
- package/esm/decoder/web-codecs/index.js.map +1 -1
- package/esm/device-message/clipboard.d.ts +10 -0
- package/esm/device-message/clipboard.d.ts.map +1 -0
- package/esm/device-message/clipboard.js +7 -0
- package/esm/device-message/clipboard.js.map +1 -0
- package/esm/device-message/index.d.ts +4 -0
- package/esm/device-message/index.d.ts.map +1 -0
- package/esm/device-message/index.js +4 -0
- package/esm/device-message/index.js.map +1 -0
- package/esm/device-message/stream.d.ts +7 -0
- package/esm/device-message/stream.d.ts.map +1 -0
- package/esm/device-message/stream.js +16 -0
- package/esm/device-message/stream.js.map +1 -0
- package/esm/device-message/type.d.ts +5 -0
- package/esm/device-message/type.d.ts.map +1 -0
- package/esm/device-message/type.js +7 -0
- package/esm/device-message/type.js.map +1 -0
- package/esm/index.d.ts +3 -6
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -6
- package/esm/index.js.map +1 -1
- package/esm/options/1_16/codec-options.d.ts +19 -0
- package/esm/options/1_16/codec-options.d.ts.map +1 -0
- package/esm/options/1_16/codec-options.js +27 -0
- package/esm/options/1_16/codec-options.js.map +1 -0
- package/esm/options/1_16/index.d.ts +3 -110
- package/esm/options/1_16/index.d.ts.map +1 -1
- package/esm/options/1_16/index.js +3 -226
- package/esm/options/1_16/index.js.map +1 -1
- package/esm/options/1_16/options.d.ts +97 -0
- package/esm/options/1_16/options.d.ts.map +1 -0
- package/esm/options/1_16/options.js +188 -0
- package/esm/options/1_16/options.js.map +1 -0
- package/esm/options/1_18.d.ts +8 -8
- package/esm/options/1_18.d.ts.map +1 -1
- package/esm/options/1_18.js +6 -6
- package/esm/options/1_18.js.map +1 -1
- package/esm/options/1_21.d.ts +1 -1
- package/esm/options/1_21.d.ts.map +1 -1
- package/esm/options/1_21.js +1 -1
- package/esm/options/1_21.js.map +1 -1
- package/esm/options/1_22.d.ts +5 -8
- package/esm/options/1_22.d.ts.map +1 -1
- package/esm/options/1_22.js +4 -17
- package/esm/options/1_22.js.map +1 -1
- package/esm/options/1_23.d.ts +4 -4
- package/esm/options/1_23.d.ts.map +1 -1
- package/esm/options/1_23.js +1 -1
- package/esm/options/1_23.js.map +1 -1
- package/esm/options/1_24.d.ts +1 -1
- package/esm/options/1_24.d.ts.map +1 -1
- package/esm/options/1_24.js.map +1 -1
- package/esm/options/index.d.ts +1 -1
- package/esm/options/index.d.ts.map +1 -1
- package/esm/options/index.js +1 -1
- package/esm/options/index.js.map +1 -1
- package/esm/options/types.d.ts +45 -0
- package/esm/options/types.d.ts.map +1 -0
- package/esm/options/{common.js → types.js} +1 -1
- package/esm/options/types.js.map +1 -0
- package/package.json +24 -24
- package/src/adb/client.ts +292 -0
- package/src/{connection.ts → adb/connection.ts} +35 -38
- package/src/adb/index.ts +3 -0
- package/src/adb/options/1_16.ts +23 -0
- package/src/adb/options/1_22.ts +20 -0
- package/src/adb/options/index.ts +3 -0
- package/src/adb/options/types.ts +55 -0
- package/src/control/index.ts +7 -0
- package/src/control/inject-keycode.ts +59 -0
- package/src/control/inject-text.ts +12 -0
- package/src/control/inject-touch.ts +34 -0
- package/src/control/rotate-device.ts +10 -0
- package/src/control/serializer.ts +86 -0
- package/src/control/set-screen-power-mode.ts +17 -0
- package/src/control/type.ts +17 -0
- package/src/device-message/clipboard.ts +11 -0
- package/src/device-message/index.ts +3 -0
- package/src/device-message/stream.ts +19 -0
- package/src/device-message/type.ts +5 -0
- package/src/index.ts +3 -6
- package/src/options/1_16/codec-options.ts +48 -0
- package/src/options/1_16/index.ts +3 -345
- package/src/options/1_16/options.ts +294 -0
- package/src/options/1_18.ts +12 -10
- package/src/options/1_21.ts +16 -6
- package/src/options/1_22.ts +10 -21
- package/src/options/1_23.ts +7 -5
- package/src/options/1_24.ts +3 -2
- package/src/options/index.ts +1 -1
- package/src/options/{common.ts → types.ts} +32 -13
- package/tsconfig.build.json +3 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.test.tsbuildinfo +1 -0
- package/esm/client.d.ts +0 -48
- package/esm/client.d.ts.map +0 -1
- package/esm/client.js +0 -341
- package/esm/client.js.map +0 -1
- package/esm/connection.d.ts +0 -37
- package/esm/connection.d.ts.map +0 -1
- package/esm/connection.js.map +0 -1
- package/esm/message.d.ts +0 -98
- package/esm/message.d.ts.map +0 -1
- package/esm/message.js +0 -98
- package/esm/message.js.map +0 -1
- package/esm/options/common.d.ts +0 -34
- package/esm/options/common.d.ts.map +0 -1
- package/esm/options/common.js.map +0 -1
- package/esm/push-server.d.ts +0 -6
- package/esm/push-server.d.ts.map +0 -1
- package/esm/push-server.js +0 -16
- package/esm/push-server.js.map +0 -1
- package/esm/utils.d.ts +0 -2
- package/esm/utils.d.ts.map +0 -1
- package/esm/utils.js +0 -6
- package/esm/utils.js.map +0 -1
- package/src/client.ts +0 -435
- package/src/decoder/index.ts +0 -3
- package/src/decoder/tinyh264/index.ts +0 -112
- package/src/decoder/tinyh264/types.d.ts +0 -137
- package/src/decoder/tinyh264/worker.ts +0 -2
- package/src/decoder/tinyh264/wrapper.ts +0 -89
- package/src/decoder/types.ts +0 -35
- package/src/decoder/web-codecs/index.ts +0 -99
- package/src/message.ts +0 -113
- package/src/push-server.ts +0 -24
- package/src/utils.ts +0 -5
package/esm/client.js
DELETED
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
import { AbortController, AdbBufferedStream, AdbSubprocessNoneProtocol, DecodeUtf8Stream, InspectStream, ReadableStream, TransformStream, WritableStream } from '@yume-chan/adb';
|
|
2
|
-
import { EventEmitter } from '@yume-chan/event';
|
|
3
|
-
import Struct from '@yume-chan/struct';
|
|
4
|
-
import { AndroidMotionEventAction, ScrcpyControlMessageType, ScrcpyInjectKeyCodeControlMessage, ScrcpyInjectTextControlMessage, ScrcpyInjectTouchControlMessage, ScrcpySimpleControlMessage } from './message.js';
|
|
5
|
-
function* splitLines(text) {
|
|
6
|
-
let start = 0;
|
|
7
|
-
while (true) {
|
|
8
|
-
const index = text.indexOf('\n', start);
|
|
9
|
-
if (index === -1) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const line = text.substring(start, index);
|
|
13
|
-
yield line;
|
|
14
|
-
start = index + 1;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
class SplitLinesStream extends TransformStream {
|
|
18
|
-
constructor() {
|
|
19
|
-
super({
|
|
20
|
-
transform(chunk, controller) {
|
|
21
|
-
for (const line of splitLines(chunk)) {
|
|
22
|
-
if (line === '') {
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
controller.enqueue(line);
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
class ArrayToStream extends ReadableStream {
|
|
32
|
-
array;
|
|
33
|
-
index = 0;
|
|
34
|
-
constructor(array) {
|
|
35
|
-
super({
|
|
36
|
-
start: async () => {
|
|
37
|
-
await Promise.resolve();
|
|
38
|
-
this.array = array;
|
|
39
|
-
},
|
|
40
|
-
pull: (controller) => {
|
|
41
|
-
if (this.index < this.array.length) {
|
|
42
|
-
controller.enqueue(this.array[this.index]);
|
|
43
|
-
this.index += 1;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
controller.close();
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
class ConcatStream extends ReadableStream {
|
|
53
|
-
streams;
|
|
54
|
-
index = 0;
|
|
55
|
-
reader;
|
|
56
|
-
constructor(...streams) {
|
|
57
|
-
super({
|
|
58
|
-
start: async (controller) => {
|
|
59
|
-
await Promise.resolve();
|
|
60
|
-
this.streams = streams;
|
|
61
|
-
this.advance(controller);
|
|
62
|
-
},
|
|
63
|
-
pull: async (controller) => {
|
|
64
|
-
const result = await this.reader.read();
|
|
65
|
-
if (!result.done) {
|
|
66
|
-
controller.enqueue(result.value);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
this.advance(controller);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
advance(controller) {
|
|
74
|
-
if (this.index < this.streams.length) {
|
|
75
|
-
this.reader = this.streams[this.index].getReader();
|
|
76
|
-
this.index += 1;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
controller.close();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
const ClipboardMessage = new Struct()
|
|
84
|
-
.uint32('length')
|
|
85
|
-
.string('content', { lengthField: 'length' });
|
|
86
|
-
export class ScrcpyClient {
|
|
87
|
-
/**
|
|
88
|
-
* This method will modify the given `options`,
|
|
89
|
-
* so don't reuse it elsewhere.
|
|
90
|
-
*/
|
|
91
|
-
static async getEncoders(adb, path, version, options) {
|
|
92
|
-
// Provide an invalid encoder name
|
|
93
|
-
// So the server will return all available encoders
|
|
94
|
-
options.value.encoderName = '_';
|
|
95
|
-
// Disable control for faster connection in 1.22+
|
|
96
|
-
options.value.control = false;
|
|
97
|
-
options.value.sendDeviceMeta = false;
|
|
98
|
-
options.value.sendDummyByte = false;
|
|
99
|
-
// Scrcpy server will open connections, before initializing encoder
|
|
100
|
-
// Thus although an invalid encoder name is given, the start process will success
|
|
101
|
-
const client = await ScrcpyClient.start(adb, path, version, options);
|
|
102
|
-
const encoderNameRegex = options.getOutputEncoderNameRegex();
|
|
103
|
-
const encoders = [];
|
|
104
|
-
await client.stdout.pipeTo(new WritableStream({
|
|
105
|
-
write(line) {
|
|
106
|
-
const match = line.match(encoderNameRegex);
|
|
107
|
-
if (match) {
|
|
108
|
-
encoders.push(match[1]);
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
}));
|
|
112
|
-
return encoders;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* This method will modify the given `options`,
|
|
116
|
-
* so don't reuse it elsewhere.
|
|
117
|
-
*/
|
|
118
|
-
static async getDisplays(adb, path, version, options) {
|
|
119
|
-
// Similar to `getEncoders`, pass an invalid option and parse the output
|
|
120
|
-
options.value.displayId = -1;
|
|
121
|
-
options.value.control = false;
|
|
122
|
-
options.value.sendDeviceMeta = false;
|
|
123
|
-
options.value.sendDummyByte = false;
|
|
124
|
-
try {
|
|
125
|
-
// Server will exit before opening connections when an invalid display id was given.
|
|
126
|
-
await ScrcpyClient.start(adb, path, version, options);
|
|
127
|
-
}
|
|
128
|
-
catch (e) {
|
|
129
|
-
if (e instanceof Error) {
|
|
130
|
-
const output = e.output;
|
|
131
|
-
const displayIdRegex = /\s+scrcpy --display (\d+)/;
|
|
132
|
-
const displays = [];
|
|
133
|
-
for (const line of output) {
|
|
134
|
-
const match = line.match(displayIdRegex);
|
|
135
|
-
if (match) {
|
|
136
|
-
displays.push(Number.parseInt(match[1], 10));
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return displays;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
throw new Error('failed to get displays');
|
|
143
|
-
}
|
|
144
|
-
static async start(adb, path, version, options) {
|
|
145
|
-
const connection = options.createConnection(adb);
|
|
146
|
-
let process;
|
|
147
|
-
try {
|
|
148
|
-
await connection.initialize();
|
|
149
|
-
process = await adb.subprocess.spawn([
|
|
150
|
-
// cspell: disable-next-line
|
|
151
|
-
`CLASSPATH=${path}`,
|
|
152
|
-
'app_process',
|
|
153
|
-
/* unused */ '/',
|
|
154
|
-
'com.genymobile.scrcpy.Server',
|
|
155
|
-
version,
|
|
156
|
-
...options.formatServerArguments(),
|
|
157
|
-
], {
|
|
158
|
-
// Scrcpy server doesn't split stdout and stderr,
|
|
159
|
-
// so disable Shell Protocol to simplify processing
|
|
160
|
-
protocols: [AdbSubprocessNoneProtocol],
|
|
161
|
-
});
|
|
162
|
-
const stdout = process.stdout
|
|
163
|
-
.pipeThrough(new DecodeUtf8Stream())
|
|
164
|
-
.pipeThrough(new SplitLinesStream());
|
|
165
|
-
// Read stdout, otherwise `process.exit` won't resolve.
|
|
166
|
-
const output = [];
|
|
167
|
-
const abortController = new AbortController();
|
|
168
|
-
const pipe = stdout
|
|
169
|
-
.pipeTo(new WritableStream({
|
|
170
|
-
write(chunk) {
|
|
171
|
-
output.push(chunk);
|
|
172
|
-
}
|
|
173
|
-
}), {
|
|
174
|
-
signal: abortController.signal,
|
|
175
|
-
preventCancel: true,
|
|
176
|
-
})
|
|
177
|
-
.catch(() => { });
|
|
178
|
-
const result = await Promise.race([
|
|
179
|
-
process.exit,
|
|
180
|
-
connection.getStreams(),
|
|
181
|
-
]);
|
|
182
|
-
if (typeof result === 'number') {
|
|
183
|
-
const error = new Error('scrcpy server exited prematurely');
|
|
184
|
-
error.output = output;
|
|
185
|
-
throw error;
|
|
186
|
-
}
|
|
187
|
-
abortController.abort();
|
|
188
|
-
await pipe;
|
|
189
|
-
const [videoStream, controlStream] = result;
|
|
190
|
-
return new ScrcpyClient(adb, options, process, new ConcatStream(new ArrayToStream(output), stdout), videoStream, controlStream);
|
|
191
|
-
}
|
|
192
|
-
catch (e) {
|
|
193
|
-
await process?.kill();
|
|
194
|
-
throw e;
|
|
195
|
-
}
|
|
196
|
-
finally {
|
|
197
|
-
connection.dispose();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
_adb;
|
|
201
|
-
get adb() { return this._adb; }
|
|
202
|
-
options;
|
|
203
|
-
process;
|
|
204
|
-
_stdout;
|
|
205
|
-
get stdout() { return this._stdout; }
|
|
206
|
-
get exit() { return this.process.exit; }
|
|
207
|
-
_screenWidth;
|
|
208
|
-
get screenWidth() { return this._screenWidth; }
|
|
209
|
-
_screenHeight;
|
|
210
|
-
get screenHeight() { return this._screenHeight; }
|
|
211
|
-
_videoStream;
|
|
212
|
-
get videoStream() { return this._videoStream; }
|
|
213
|
-
_controlStreamWriter;
|
|
214
|
-
clipboardChangeEvent = new EventEmitter();
|
|
215
|
-
get onClipboardChange() { return this.clipboardChangeEvent.event; }
|
|
216
|
-
lastTouchMessage = 0;
|
|
217
|
-
constructor(adb, options, process, stdout, videoStream, controlStream) {
|
|
218
|
-
this._adb = adb;
|
|
219
|
-
this.options = options;
|
|
220
|
-
this.process = process;
|
|
221
|
-
this._stdout = stdout;
|
|
222
|
-
this._videoStream = videoStream.readable
|
|
223
|
-
.pipeThrough(options.createVideoStreamTransformer())
|
|
224
|
-
.pipeThrough(new InspectStream(packet => {
|
|
225
|
-
if (packet.type === 'configuration') {
|
|
226
|
-
this._screenWidth = packet.data.croppedWidth;
|
|
227
|
-
this._screenHeight = packet.data.croppedHeight;
|
|
228
|
-
}
|
|
229
|
-
}));
|
|
230
|
-
if (controlStream) {
|
|
231
|
-
const buffered = new AdbBufferedStream(controlStream);
|
|
232
|
-
this._controlStreamWriter = controlStream.writable.getWriter();
|
|
233
|
-
(async () => {
|
|
234
|
-
try {
|
|
235
|
-
while (true) {
|
|
236
|
-
const type = await buffered.read(1);
|
|
237
|
-
switch (type[0]) {
|
|
238
|
-
case 0:
|
|
239
|
-
const { content } = await ClipboardMessage.deserialize(buffered);
|
|
240
|
-
this.clipboardChangeEvent.fire(content);
|
|
241
|
-
break;
|
|
242
|
-
default:
|
|
243
|
-
throw new Error('unknown control message type');
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
// TODO: Scrcpy: handle error
|
|
249
|
-
}
|
|
250
|
-
})();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
checkControlStream(caller) {
|
|
254
|
-
if (!this._controlStreamWriter) {
|
|
255
|
-
throw new Error(`${caller} called with control disabled`);
|
|
256
|
-
}
|
|
257
|
-
return this._controlStreamWriter;
|
|
258
|
-
}
|
|
259
|
-
getControlMessageTypeValue(type) {
|
|
260
|
-
const list = this.options.getControlMessageTypes();
|
|
261
|
-
const index = list.indexOf(type);
|
|
262
|
-
if (index === -1) {
|
|
263
|
-
throw new Error('Not supported');
|
|
264
|
-
}
|
|
265
|
-
return index;
|
|
266
|
-
}
|
|
267
|
-
async injectKeyCode(message) {
|
|
268
|
-
const controlStream = this.checkControlStream('injectKeyCode');
|
|
269
|
-
await controlStream.write(ScrcpyInjectKeyCodeControlMessage.serialize({
|
|
270
|
-
...message,
|
|
271
|
-
type: this.getControlMessageTypeValue(ScrcpyControlMessageType.InjectKeycode),
|
|
272
|
-
}));
|
|
273
|
-
}
|
|
274
|
-
async injectText(text) {
|
|
275
|
-
const controlStream = this.checkControlStream('injectText');
|
|
276
|
-
await controlStream.write(ScrcpyInjectTextControlMessage.serialize({
|
|
277
|
-
type: this.getControlMessageTypeValue(ScrcpyControlMessageType.InjectText),
|
|
278
|
-
text,
|
|
279
|
-
}));
|
|
280
|
-
}
|
|
281
|
-
async injectTouch(message) {
|
|
282
|
-
const controlStream = this.checkControlStream('injectTouch');
|
|
283
|
-
if (!this.screenWidth || !this.screenHeight) {
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
// ADB streams are actually pretty low-bandwidth and laggy
|
|
287
|
-
// Re-sample move events to avoid flooding the connection
|
|
288
|
-
// TODO: Scrcpy: investigate how to throttle touch events
|
|
289
|
-
// because 60FPS may still be too high
|
|
290
|
-
const now = Date.now();
|
|
291
|
-
if (now - this.lastTouchMessage < 16 &&
|
|
292
|
-
[AndroidMotionEventAction.Move, AndroidMotionEventAction.HoverMove].includes(message.action)) {
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
|
-
this.lastTouchMessage = now;
|
|
296
|
-
await controlStream.write(ScrcpyInjectTouchControlMessage.serialize({
|
|
297
|
-
...message,
|
|
298
|
-
type: this.getControlMessageTypeValue(ScrcpyControlMessageType.InjectTouch),
|
|
299
|
-
screenWidth: this.screenWidth,
|
|
300
|
-
screenHeight: this.screenHeight,
|
|
301
|
-
}));
|
|
302
|
-
}
|
|
303
|
-
async injectScroll(message) {
|
|
304
|
-
const controlStream = this.checkControlStream('injectScroll');
|
|
305
|
-
if (!this.screenWidth || !this.screenHeight) {
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
const buffer = this.options.serializeInjectScrollControlMessage({
|
|
309
|
-
...message,
|
|
310
|
-
type: this.getControlMessageTypeValue(ScrcpyControlMessageType.InjectScroll),
|
|
311
|
-
screenWidth: this.screenWidth,
|
|
312
|
-
screenHeight: this.screenHeight,
|
|
313
|
-
});
|
|
314
|
-
await controlStream.write(buffer);
|
|
315
|
-
}
|
|
316
|
-
async pressBackOrTurnOnScreen(action) {
|
|
317
|
-
const controlStream = this.checkControlStream('pressBackOrTurnOnScreen');
|
|
318
|
-
const buffer = this.options.serializeBackOrScreenOnControlMessage({
|
|
319
|
-
type: this.getControlMessageTypeValue(ScrcpyControlMessageType.BackOrScreenOn),
|
|
320
|
-
action,
|
|
321
|
-
});
|
|
322
|
-
if (buffer) {
|
|
323
|
-
await controlStream.write(buffer);
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
async sendSimpleControlMessage(type, name) {
|
|
327
|
-
const controlStream = this.checkControlStream(name);
|
|
328
|
-
const buffer = ScrcpySimpleControlMessage.serialize({
|
|
329
|
-
type: this.getControlMessageTypeValue(type),
|
|
330
|
-
});
|
|
331
|
-
await controlStream.write(buffer);
|
|
332
|
-
}
|
|
333
|
-
async rotateDevice() {
|
|
334
|
-
await this.sendSimpleControlMessage(ScrcpyControlMessageType.RotateDevice, 'rotateDevice');
|
|
335
|
-
}
|
|
336
|
-
async close() {
|
|
337
|
-
// No need to close streams. Kill the process will destroy them from the other side.
|
|
338
|
-
await this.process?.kill();
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
//# sourceMappingURL=client.js.map
|
package/esm/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/esm/connection.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Adb, AdbSocket } from "@yume-chan/adb";
|
|
2
|
-
import type { Disposable } from "@yume-chan/event";
|
|
3
|
-
import type { ValueOrPromise } from "@yume-chan/struct";
|
|
4
|
-
export interface ScrcpyClientConnectionOptions {
|
|
5
|
-
control: boolean;
|
|
6
|
-
/**
|
|
7
|
-
* Write a byte on start to detect connection issues
|
|
8
|
-
*/
|
|
9
|
-
sendDummyByte: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Send device name and size
|
|
12
|
-
*/
|
|
13
|
-
sendDeviceMeta: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare abstract class ScrcpyClientConnection implements Disposable {
|
|
16
|
-
protected device: Adb;
|
|
17
|
-
protected options: ScrcpyClientConnectionOptions;
|
|
18
|
-
constructor(device: Adb, options: ScrcpyClientConnectionOptions);
|
|
19
|
-
initialize(): ValueOrPromise<void>;
|
|
20
|
-
abstract getStreams(): ValueOrPromise<[videoSteam: AdbSocket, controlStream: AdbSocket | undefined]>;
|
|
21
|
-
dispose(): void;
|
|
22
|
-
}
|
|
23
|
-
export declare class ScrcpyClientForwardConnection extends ScrcpyClientConnection {
|
|
24
|
-
private connect;
|
|
25
|
-
private connectAndRetry;
|
|
26
|
-
private connectVideoStream;
|
|
27
|
-
getStreams(): Promise<[videoSteam: AdbSocket, controlStream: AdbSocket | undefined]>;
|
|
28
|
-
}
|
|
29
|
-
export declare class ScrcpyClientReverseConnection extends ScrcpyClientConnection {
|
|
30
|
-
private streams;
|
|
31
|
-
private address;
|
|
32
|
-
initialize(): Promise<void>;
|
|
33
|
-
private accept;
|
|
34
|
-
getStreams(): Promise<[videoSteam: AdbSocket, controlStream: AdbSocket | undefined]>;
|
|
35
|
-
dispose(): void;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=connection.d.ts.map
|
package/esm/connection.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,6BAA6B;IAC1C,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,8BAAsB,sBAAuB,YAAW,UAAU;IAC9D,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAEtB,SAAS,CAAC,OAAO,EAAE,6BAA6B,CAAC;gBAE9B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,6BAA6B;IAK/D,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC;aAEzB,UAAU,IAAI,cAAc,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAEpG,OAAO,IAAI,IAAI;CACzB;AAED,qBAAa,6BAA8B,SAAQ,sBAAsB;YACvD,OAAO;YAIP,eAAe;YAWf,kBAAkB;IAcnB,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;CAqBpG;AAED,qBAAa,6BAA8B,SAAQ,sBAAsB;IACrE,OAAO,CAAC,OAAO,CAA0C;IAEzD,OAAO,CAAC,OAAO,CAAU;IAEH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBnC,MAAM;IAIP,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAsBjF,OAAO;CAM1B"}
|
package/esm/connection.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/esm/message.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import Struct from '@yume-chan/struct';
|
|
2
|
-
export declare enum ScrcpyControlMessageType {
|
|
3
|
-
InjectKeycode = 0,
|
|
4
|
-
InjectText = 1,
|
|
5
|
-
InjectTouch = 2,
|
|
6
|
-
InjectScroll = 3,
|
|
7
|
-
BackOrScreenOn = 4,
|
|
8
|
-
ExpandNotificationPanel = 5,
|
|
9
|
-
ExpandSettingPanel = 6,
|
|
10
|
-
CollapseNotificationPanel = 7,
|
|
11
|
-
GetClipboard = 8,
|
|
12
|
-
SetClipboard = 9,
|
|
13
|
-
SetScreenPowerMode = 10,
|
|
14
|
-
RotateDevice = 11
|
|
15
|
-
}
|
|
16
|
-
export declare enum AndroidMotionEventAction {
|
|
17
|
-
Down = 0,
|
|
18
|
-
Up = 1,
|
|
19
|
-
Move = 2,
|
|
20
|
-
Cancel = 3,
|
|
21
|
-
Outside = 4,
|
|
22
|
-
PointerDown = 5,
|
|
23
|
-
PointerUp = 6,
|
|
24
|
-
HoverMove = 7,
|
|
25
|
-
Scroll = 8,
|
|
26
|
-
HoverEnter = 9,
|
|
27
|
-
HoverExit = 10,
|
|
28
|
-
ButtonPress = 11,
|
|
29
|
-
ButtonRelease = 12
|
|
30
|
-
}
|
|
31
|
-
export declare const ScrcpySimpleControlMessage: Struct<{
|
|
32
|
-
type: number;
|
|
33
|
-
}, never, {}, undefined>;
|
|
34
|
-
export declare const ScrcpyInjectTouchControlMessage: Struct<{
|
|
35
|
-
type: number;
|
|
36
|
-
action: AndroidMotionEventAction;
|
|
37
|
-
pointerId: bigint;
|
|
38
|
-
pointerX: number;
|
|
39
|
-
pointerY: number;
|
|
40
|
-
screenWidth: number;
|
|
41
|
-
screenHeight: number;
|
|
42
|
-
pressure: number;
|
|
43
|
-
buttons: number;
|
|
44
|
-
}, never, {}, undefined>;
|
|
45
|
-
export declare type ScrcpyInjectTouchControlMessage = typeof ScrcpyInjectTouchControlMessage['TInit'];
|
|
46
|
-
export declare const ScrcpyInjectTextControlMessage: Struct<{
|
|
47
|
-
type: number;
|
|
48
|
-
length: number;
|
|
49
|
-
text: string;
|
|
50
|
-
}, "length", {}, undefined>;
|
|
51
|
-
export declare type ScrcpyInjectTextControlMessage = typeof ScrcpyInjectTextControlMessage['TInit'];
|
|
52
|
-
export declare enum AndroidKeyEventAction {
|
|
53
|
-
Down = 0,
|
|
54
|
-
Up = 1
|
|
55
|
-
}
|
|
56
|
-
export declare enum AndroidKeyCode {
|
|
57
|
-
Home = 3,
|
|
58
|
-
Back = 4,
|
|
59
|
-
A = 29,
|
|
60
|
-
B = 30,
|
|
61
|
-
C = 31,
|
|
62
|
-
D = 32,
|
|
63
|
-
E = 33,
|
|
64
|
-
F = 34,
|
|
65
|
-
G = 35,
|
|
66
|
-
H = 36,
|
|
67
|
-
I = 37,
|
|
68
|
-
J = 38,
|
|
69
|
-
K = 39,
|
|
70
|
-
L = 40,
|
|
71
|
-
M = 41,
|
|
72
|
-
N = 42,
|
|
73
|
-
O = 43,
|
|
74
|
-
P = 44,
|
|
75
|
-
Q = 45,
|
|
76
|
-
R = 46,
|
|
77
|
-
S = 47,
|
|
78
|
-
T = 48,
|
|
79
|
-
U = 49,
|
|
80
|
-
V = 50,
|
|
81
|
-
W = 51,
|
|
82
|
-
X = 52,
|
|
83
|
-
Y = 53,
|
|
84
|
-
Z = 54,
|
|
85
|
-
Space = 62,
|
|
86
|
-
Enter = 66,
|
|
87
|
-
Delete = 67,
|
|
88
|
-
AppSwitch = 187
|
|
89
|
-
}
|
|
90
|
-
export declare const ScrcpyInjectKeyCodeControlMessage: Struct<{
|
|
91
|
-
type: number;
|
|
92
|
-
action: AndroidKeyEventAction;
|
|
93
|
-
keyCode: number;
|
|
94
|
-
repeat: number;
|
|
95
|
-
metaState: number;
|
|
96
|
-
}, never, {}, undefined>;
|
|
97
|
-
export declare type ScrcpyInjectKeyCodeControlMessage = typeof ScrcpyInjectKeyCodeControlMessage['TInit'];
|
|
98
|
-
//# sourceMappingURL=message.d.ts.map
|
package/esm/message.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,MAAuB,MAAM,mBAAmB,CAAC;AAIxD,oBAAY,wBAAwB;IAChC,aAAa,IAAA;IACb,UAAU,IAAA;IACV,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,cAAc,IAAA;IACd,uBAAuB,IAAA;IACvB,kBAAkB,IAAA;IAClB,yBAAyB,IAAA;IACzB,YAAY,IAAA;IACZ,YAAY,IAAA;IACZ,kBAAkB,KAAA;IAClB,YAAY,KAAA;CACf;AAGD,oBAAY,wBAAwB;IAChC,IAAI,IAAA;IACJ,EAAE,IAAA;IACF,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;IACN,UAAU,IAAA;IACV,SAAS,KAAA;IACT,WAAW,KAAA;IACX,aAAa,KAAA;CAChB;AAED,eAAO,MAAM,0BAA0B;;wBAEjB,CAAC;AAEvB,eAAO,MAAM,+BAA+B;;;;;;;;;;wBAUlB,CAAC;AAE3B,oBAAY,+BAA+B,GAAG,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAE9F,eAAO,MAAM,8BAA8B;;;;2BAIO,CAAC;AAEnD,oBAAY,8BAA8B,GACtC,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC;AAEnD,oBAAY,qBAAqB;IAC7B,IAAI,IAAI;IACR,EAAE,IAAI;CACT;AAED,oBAAY,cAAc;IACtB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,CAAC,KAAK;IACN,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,CAAC,KAAA;IACD,KAAK,KAAK;IACV,KAAK,KAAK;IACV,MAAM,KAAK;IACX,SAAS,MAAM;CAClB;AAED,eAAO,MAAM,iCAAiC;;;;;;wBAMlB,CAAC;AAE7B,oBAAY,iCAAiC,GACzC,OAAO,iCAAiC,CAAC,OAAO,CAAC,CAAC"}
|
package/esm/message.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import Struct, { placeholder } from '@yume-chan/struct';
|
|
2
|
-
// https://github.com/Genymobile/scrcpy/blob/fa5b2a29e983a46b49531def9cf3d80c40c3de37/app/src/control_msg.h#L23
|
|
3
|
-
// For their message bodies, see https://github.com/Genymobile/scrcpy/blob/5c62f3419d252d10cd8c9cbb7c918b358b81f2d0/app/src/control_msg.c#L92
|
|
4
|
-
export var ScrcpyControlMessageType;
|
|
5
|
-
(function (ScrcpyControlMessageType) {
|
|
6
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectKeycode"] = 0] = "InjectKeycode";
|
|
7
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectText"] = 1] = "InjectText";
|
|
8
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectTouch"] = 2] = "InjectTouch";
|
|
9
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["InjectScroll"] = 3] = "InjectScroll";
|
|
10
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["BackOrScreenOn"] = 4] = "BackOrScreenOn";
|
|
11
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["ExpandNotificationPanel"] = 5] = "ExpandNotificationPanel";
|
|
12
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["ExpandSettingPanel"] = 6] = "ExpandSettingPanel";
|
|
13
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["CollapseNotificationPanel"] = 7] = "CollapseNotificationPanel";
|
|
14
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["GetClipboard"] = 8] = "GetClipboard";
|
|
15
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["SetClipboard"] = 9] = "SetClipboard";
|
|
16
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["SetScreenPowerMode"] = 10] = "SetScreenPowerMode";
|
|
17
|
-
ScrcpyControlMessageType[ScrcpyControlMessageType["RotateDevice"] = 11] = "RotateDevice";
|
|
18
|
-
})(ScrcpyControlMessageType || (ScrcpyControlMessageType = {}));
|
|
19
|
-
// https://developer.android.com/reference/android/view/MotionEvent#constants_1
|
|
20
|
-
export var AndroidMotionEventAction;
|
|
21
|
-
(function (AndroidMotionEventAction) {
|
|
22
|
-
AndroidMotionEventAction[AndroidMotionEventAction["Down"] = 0] = "Down";
|
|
23
|
-
AndroidMotionEventAction[AndroidMotionEventAction["Up"] = 1] = "Up";
|
|
24
|
-
AndroidMotionEventAction[AndroidMotionEventAction["Move"] = 2] = "Move";
|
|
25
|
-
AndroidMotionEventAction[AndroidMotionEventAction["Cancel"] = 3] = "Cancel";
|
|
26
|
-
AndroidMotionEventAction[AndroidMotionEventAction["Outside"] = 4] = "Outside";
|
|
27
|
-
AndroidMotionEventAction[AndroidMotionEventAction["PointerDown"] = 5] = "PointerDown";
|
|
28
|
-
AndroidMotionEventAction[AndroidMotionEventAction["PointerUp"] = 6] = "PointerUp";
|
|
29
|
-
AndroidMotionEventAction[AndroidMotionEventAction["HoverMove"] = 7] = "HoverMove";
|
|
30
|
-
AndroidMotionEventAction[AndroidMotionEventAction["Scroll"] = 8] = "Scroll";
|
|
31
|
-
AndroidMotionEventAction[AndroidMotionEventAction["HoverEnter"] = 9] = "HoverEnter";
|
|
32
|
-
AndroidMotionEventAction[AndroidMotionEventAction["HoverExit"] = 10] = "HoverExit";
|
|
33
|
-
AndroidMotionEventAction[AndroidMotionEventAction["ButtonPress"] = 11] = "ButtonPress";
|
|
34
|
-
AndroidMotionEventAction[AndroidMotionEventAction["ButtonRelease"] = 12] = "ButtonRelease";
|
|
35
|
-
})(AndroidMotionEventAction || (AndroidMotionEventAction = {}));
|
|
36
|
-
export const ScrcpySimpleControlMessage = new Struct()
|
|
37
|
-
.uint8('type');
|
|
38
|
-
export const ScrcpyInjectTouchControlMessage = new Struct()
|
|
39
|
-
.fields(ScrcpySimpleControlMessage)
|
|
40
|
-
.uint8('action', placeholder())
|
|
41
|
-
.uint64('pointerId')
|
|
42
|
-
.uint32('pointerX')
|
|
43
|
-
.uint32('pointerY')
|
|
44
|
-
.uint16('screenWidth')
|
|
45
|
-
.uint16('screenHeight')
|
|
46
|
-
.uint16('pressure')
|
|
47
|
-
.uint32('buttons');
|
|
48
|
-
export const ScrcpyInjectTextControlMessage = new Struct()
|
|
49
|
-
.fields(ScrcpySimpleControlMessage)
|
|
50
|
-
.uint32('length')
|
|
51
|
-
.string('text', { lengthField: 'length' });
|
|
52
|
-
export var AndroidKeyEventAction;
|
|
53
|
-
(function (AndroidKeyEventAction) {
|
|
54
|
-
AndroidKeyEventAction[AndroidKeyEventAction["Down"] = 0] = "Down";
|
|
55
|
-
AndroidKeyEventAction[AndroidKeyEventAction["Up"] = 1] = "Up";
|
|
56
|
-
})(AndroidKeyEventAction || (AndroidKeyEventAction = {}));
|
|
57
|
-
export var AndroidKeyCode;
|
|
58
|
-
(function (AndroidKeyCode) {
|
|
59
|
-
AndroidKeyCode[AndroidKeyCode["Home"] = 3] = "Home";
|
|
60
|
-
AndroidKeyCode[AndroidKeyCode["Back"] = 4] = "Back";
|
|
61
|
-
AndroidKeyCode[AndroidKeyCode["A"] = 29] = "A";
|
|
62
|
-
AndroidKeyCode[AndroidKeyCode["B"] = 30] = "B";
|
|
63
|
-
AndroidKeyCode[AndroidKeyCode["C"] = 31] = "C";
|
|
64
|
-
AndroidKeyCode[AndroidKeyCode["D"] = 32] = "D";
|
|
65
|
-
AndroidKeyCode[AndroidKeyCode["E"] = 33] = "E";
|
|
66
|
-
AndroidKeyCode[AndroidKeyCode["F"] = 34] = "F";
|
|
67
|
-
AndroidKeyCode[AndroidKeyCode["G"] = 35] = "G";
|
|
68
|
-
AndroidKeyCode[AndroidKeyCode["H"] = 36] = "H";
|
|
69
|
-
AndroidKeyCode[AndroidKeyCode["I"] = 37] = "I";
|
|
70
|
-
AndroidKeyCode[AndroidKeyCode["J"] = 38] = "J";
|
|
71
|
-
AndroidKeyCode[AndroidKeyCode["K"] = 39] = "K";
|
|
72
|
-
AndroidKeyCode[AndroidKeyCode["L"] = 40] = "L";
|
|
73
|
-
AndroidKeyCode[AndroidKeyCode["M"] = 41] = "M";
|
|
74
|
-
AndroidKeyCode[AndroidKeyCode["N"] = 42] = "N";
|
|
75
|
-
AndroidKeyCode[AndroidKeyCode["O"] = 43] = "O";
|
|
76
|
-
AndroidKeyCode[AndroidKeyCode["P"] = 44] = "P";
|
|
77
|
-
AndroidKeyCode[AndroidKeyCode["Q"] = 45] = "Q";
|
|
78
|
-
AndroidKeyCode[AndroidKeyCode["R"] = 46] = "R";
|
|
79
|
-
AndroidKeyCode[AndroidKeyCode["S"] = 47] = "S";
|
|
80
|
-
AndroidKeyCode[AndroidKeyCode["T"] = 48] = "T";
|
|
81
|
-
AndroidKeyCode[AndroidKeyCode["U"] = 49] = "U";
|
|
82
|
-
AndroidKeyCode[AndroidKeyCode["V"] = 50] = "V";
|
|
83
|
-
AndroidKeyCode[AndroidKeyCode["W"] = 51] = "W";
|
|
84
|
-
AndroidKeyCode[AndroidKeyCode["X"] = 52] = "X";
|
|
85
|
-
AndroidKeyCode[AndroidKeyCode["Y"] = 53] = "Y";
|
|
86
|
-
AndroidKeyCode[AndroidKeyCode["Z"] = 54] = "Z";
|
|
87
|
-
AndroidKeyCode[AndroidKeyCode["Space"] = 62] = "Space";
|
|
88
|
-
AndroidKeyCode[AndroidKeyCode["Enter"] = 66] = "Enter";
|
|
89
|
-
AndroidKeyCode[AndroidKeyCode["Delete"] = 67] = "Delete";
|
|
90
|
-
AndroidKeyCode[AndroidKeyCode["AppSwitch"] = 187] = "AppSwitch";
|
|
91
|
-
})(AndroidKeyCode || (AndroidKeyCode = {}));
|
|
92
|
-
export const ScrcpyInjectKeyCodeControlMessage = new Struct()
|
|
93
|
-
.fields(ScrcpySimpleControlMessage)
|
|
94
|
-
.uint8('action', placeholder())
|
|
95
|
-
.uint32('keyCode')
|
|
96
|
-
.uint32('repeat')
|
|
97
|
-
.uint32('metaState');
|
|
98
|
-
//# sourceMappingURL=message.js.map
|
package/esm/message.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
|
package/esm/options/common.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { Adb, TransformStream } from "@yume-chan/adb";
|
|
2
|
-
import type { ScrcpyClientConnection } from "../connection.js";
|
|
3
|
-
import type { H264Configuration } from "../decoder/index.js";
|
|
4
|
-
import type { ScrcpyControlMessageType } from "../message.js";
|
|
5
|
-
import type { ScrcpyBackOrScreenOnEvent1_18 } from "./1_18.js";
|
|
6
|
-
import type { ScrcpyInjectScrollControlMessage1_22 } from "./1_22.js";
|
|
7
|
-
export declare const DEFAULT_SERVER_PATH = "/data/local/tmp/scrcpy-server.jar";
|
|
8
|
-
export interface ScrcpyOptionValue {
|
|
9
|
-
toOptionValue(): string | undefined;
|
|
10
|
-
}
|
|
11
|
-
export declare function isScrcpyOptionValue(value: any): value is ScrcpyOptionValue;
|
|
12
|
-
export declare function toScrcpyOptionValue<T>(value: any, empty: T): string | T;
|
|
13
|
-
export interface VideoStreamConfigurationPacket {
|
|
14
|
-
type: 'configuration';
|
|
15
|
-
data: H264Configuration;
|
|
16
|
-
}
|
|
17
|
-
export interface VideoStreamFramePacket {
|
|
18
|
-
type: 'frame';
|
|
19
|
-
keyframe?: boolean | undefined;
|
|
20
|
-
pts?: bigint | undefined;
|
|
21
|
-
data: Uint8Array;
|
|
22
|
-
}
|
|
23
|
-
export declare type VideoStreamPacket = VideoStreamConfigurationPacket | VideoStreamFramePacket;
|
|
24
|
-
export interface ScrcpyOptions<T> {
|
|
25
|
-
value: Partial<T>;
|
|
26
|
-
formatServerArguments(): string[];
|
|
27
|
-
getOutputEncoderNameRegex(): RegExp;
|
|
28
|
-
createConnection(adb: Adb): ScrcpyClientConnection;
|
|
29
|
-
createVideoStreamTransformer(): TransformStream<Uint8Array, VideoStreamPacket>;
|
|
30
|
-
getControlMessageTypes(): ScrcpyControlMessageType[];
|
|
31
|
-
serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnEvent1_18): Uint8Array | undefined;
|
|
32
|
-
serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/options/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAC;AAEtE,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAC9B,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAUvE;AAED,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,oBAAY,iBAAiB,GAAG,8BAA8B,GAAG,sBAAsB,CAAC;AAExF,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAElB,qBAAqB,IAAI,MAAM,EAAE,CAAC;IAElC,yBAAyB,IAAI,MAAM,CAAC;IAEpC,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,sBAAsB,CAAC;IAEnD,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE/E,sBAAsB,IAAI,wBAAwB,EAAE,CAAC;IAErD,qCAAqC,CACjC,OAAO,EAAE,6BAA6B,GACvC,UAAU,GAAG,SAAS,CAAC;IAE1B,mCAAmC,CAC/B,OAAO,EAAE,oCAAoC,GAC9C,UAAU,CAAC;CACjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/options/common.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAMvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC5B,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,KAAU,EAAE,KAAQ;IACvD,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC5B,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;KACjC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC"}
|