diff --git a/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-32.json b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-32.json index aacf176e..64878237 100644 --- a/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-32.json +++ b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-32.json @@ -2,7 +2,7 @@ "changes": [ { "packageName": "@yume-chan/adb-scrcpy", - "comment": "Removed `AdbScrcpyClient#deviceMessageStream`. Use `ScrcpyOptions#clipboard` to watch clipboard changes.", + "comment": "Remove `AdbScrcpyClient#deviceMessageStream`. Use `ScrcpyOptions#clipboard` to watch clipboard changes.", "type": "none" } ], diff --git a/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-33.json b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-33.json new file mode 100644 index 00000000..410a519b --- /dev/null +++ b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-33.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb-scrcpy", + "comment": "Allow `AdbScrcpyClient#pushServer` to accept `ReadableStream` as input", + "type": "none" + } + ], + "packageName": "@yume-chan/adb-scrcpy" +} diff --git a/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-34.json b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-34.json new file mode 100644 index 00000000..ed1a7023 --- /dev/null +++ b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-34.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb-scrcpy", + "comment": "Add AV1 video size parsing support", + "type": "none" + } + ], + "packageName": "@yume-chan/adb-scrcpy" +} diff --git a/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-35.json b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-35.json new file mode 100644 index 00000000..f857ed22 --- /dev/null +++ b/common/changes/@yume-chan/adb-scrcpy/main_2024-05-10-00-35.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb-scrcpy", + "comment": "Loosen type parameter constraints on `AdbScrcpyOptionsX_XX` classes, allow them to accept more option types", + "type": "none" + } + ], + "packageName": "@yume-chan/adb-scrcpy" +} diff --git a/common/changes/@yume-chan/adb/main_2024-05-10-00-32.json b/common/changes/@yume-chan/adb/main_2024-05-10-00-32.json index dca98b74..75627250 100644 --- a/common/changes/@yume-chan/adb/main_2024-05-10-00-32.json +++ b/common/changes/@yume-chan/adb/main_2024-05-10-00-32.json @@ -2,7 +2,7 @@ "changes": [ { "packageName": "@yume-chan/adb", - "comment": "Rename `debugSlowRead` option to `readTimeLimit`. Allow users to specify a timeout for read operations. The default value is still infinity.", + "comment": "Rename `AdbDaemonTransport`'s `debugSlowRead` option to `readTimeLimit`. Allow users to specify a custom timeout for read operations. It's still disabled by default.", "type": "none" } ], diff --git a/common/changes/@yume-chan/adb/main_2024-05-10-00-35.json b/common/changes/@yume-chan/adb/main_2024-05-10-00-35.json index 66d28d74..21fd4357 100644 --- a/common/changes/@yume-chan/adb/main_2024-05-10-00-35.json +++ b/common/changes/@yume-chan/adb/main_2024-05-10-00-35.json @@ -2,7 +2,7 @@ "changes": [ { "packageName": "@yume-chan/adb", - "comment": "Group `AdbServerClient` related types into the `AdbServerClient` namespace. In future, more types will be moved to namespaces.", + "comment": "Group `AdbServerClient`-relating types into `AdbServerClient` namespace. In future, more types will be moved to namespaces.", "type": "none" } ], diff --git a/common/changes/@yume-chan/adb/main_2024-05-10-00-36.json b/common/changes/@yume-chan/adb/main_2024-05-10-00-36.json new file mode 100644 index 00000000..abb5e22a --- /dev/null +++ b/common/changes/@yume-chan/adb/main_2024-05-10-00-36.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb", + "comment": "Fix `Adb#reverse#list()` returning an extra empty object.", + "type": "none" + } + ], + "packageName": "@yume-chan/adb" +} diff --git a/common/changes/@yume-chan/adb/main_2024-05-10-00-37.json b/common/changes/@yume-chan/adb/main_2024-05-10-00-37.json new file mode 100644 index 00000000..568f17fe --- /dev/null +++ b/common/changes/@yume-chan/adb/main_2024-05-10-00-37.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb", + "comment": "Fix reverse tunnel handler not invoked.", + "type": "none" + } + ], + "packageName": "@yume-chan/adb" +} diff --git a/common/changes/@yume-chan/scrcpy-decoder-tinyh264/main_2024-05-10-00-32.json b/common/changes/@yume-chan/scrcpy-decoder-tinyh264/main_2024-05-10-00-32.json new file mode 100644 index 00000000..681dba21 --- /dev/null +++ b/common/changes/@yume-chan/scrcpy-decoder-tinyh264/main_2024-05-10-00-32.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/scrcpy-decoder-tinyh264", + "comment": "Rename `frameRendered` and `frameSkipped` to `framesRendered` and `framesSkipped`", + "type": "none" + } + ], + "packageName": "@yume-chan/scrcpy-decoder-tinyh264" +} diff --git a/common/changes/@yume-chan/scrcpy/main_2024-05-10-00-33.json b/common/changes/@yume-chan/scrcpy/main_2024-05-10-00-33.json index a9ec2bc2..5082e56e 100644 --- a/common/changes/@yume-chan/scrcpy/main_2024-05-10-00-33.json +++ b/common/changes/@yume-chan/scrcpy/main_2024-05-10-00-33.json @@ -2,7 +2,7 @@ "changes": [ { "packageName": "@yume-chan/scrcpy", - "comment": "Add support for `setClipboard` to wait for the clipboard to be updated (when `sequence` is not 0)", + "comment": "Make `ScrcpyControlMessageWriter#setClipboard` wait for the clipboard to be updated on device (when `sequence` is not 0)", "type": "none" } ], diff --git a/libraries/adb/src/commands/reverse.ts b/libraries/adb/src/commands/reverse.ts index 487717ea..1f7619fa 100644 --- a/libraries/adb/src/commands/reverse.ts +++ b/libraries/adb/src/commands/reverse.ts @@ -93,14 +93,15 @@ export class AdbReverseCommand extends AutoDisposable { const stream = await this.createBufferedStream("reverse:list-forward"); const response = await AdbReverseStringResponse.deserialize(stream); - return response.content.split("\n").map((line) => { - const [deviceSerial, localName, remoteName] = line.split(" ") as [ - string, - string, - string, - ]; - return { deviceSerial, localName, remoteName }; - }); + return response.content + .split("\n") + .filter((line) => !!line) + .map((line) => { + const [deviceSerial, localName, remoteName] = line.split( + " ", + ) as [string, string, string]; + return { deviceSerial, localName, remoteName }; + }); // No need to close the stream, device will close it }