Loading libraries/adb-daemon-webusb/src/device.ts +3 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import { pipeFrom, } from "@yume-chan/stream-extra"; import type { ExactReadable } from "@yume-chan/struct"; import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct"; import { EmptyUint8Array } from "@yume-chan/struct"; import type { UsbInterfaceFilter } from "./utils.js"; import { Loading Loading @@ -185,7 +185,7 @@ export class AdbDaemonWebUsbConnection if (zeroMask && (chunk.length & zeroMask) === 0) { await device.raw.transferOut( outEndpoint.endpointNumber, EMPTY_UINT8_ARRAY, EmptyUint8Array, ); } } catch (e) { Loading Loading @@ -234,7 +234,7 @@ export class AdbDaemonWebUsbConnection ); packet.payload = new Uint8Array(result.data!.buffer); } else { packet.payload = EMPTY_UINT8_ARRAY; packet.payload = EmptyUint8Array; } return packet; Loading libraries/adb-scrcpy/src/connection.ts +3 −3 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ import { BufferedReadableStream, PushReadableStream, } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import type { MaybePromiseLike } from "@yume-chan/struct"; export interface AdbScrcpyConnectionOptions { scid: number; Loading Loading @@ -54,7 +54,7 @@ export abstract class AdbScrcpyConnection implements Disposable { this.socketName = this.getSocketName(); } initialize(): ValueOrPromise<void> { initialize(): MaybePromiseLike<void> { // pure virtual method } Loading @@ -66,7 +66,7 @@ export abstract class AdbScrcpyConnection implements Disposable { return socketName; } abstract getStreams(): ValueOrPromise<AdbScrcpyConnectionStreams>; abstract getStreams(): MaybePromiseLike<AdbScrcpyConnectionStreams>; dispose(): void { // pure virtual method Loading libraries/adb-server-node-tcp/src/index.ts +3 −3 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ import { PushReadableStream, tryClose, } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import type { MaybePromiseLike } from "@yume-chan/struct"; function nodeSocketToConnection( socket: Socket, Loading Loading @@ -138,7 +138,7 @@ export class AdbServerNodeTcpConnector return address; } removeReverseTunnel(address: string): ValueOrPromise<void> { removeReverseTunnel(address: string): MaybePromiseLike<void> { const server = this.#listeners.get(address); if (!server) { return; Loading @@ -147,7 +147,7 @@ export class AdbServerNodeTcpConnector this.#listeners.delete(address); } clearReverseTunnels(): ValueOrPromise<void> { clearReverseTunnels(): MaybePromiseLike<void> { for (const server of this.#listeners.values()) { server.close(); } Loading libraries/adb/src/adb.ts +7 −7 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import type { ReadableWritablePair, } from "@yume-chan/stream-extra"; import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import type { MaybePromiseLike } from "@yume-chan/struct"; import type { AdbBanner } from "./banner.js"; import type { AdbFrameBuffer } from "./commands/index.js"; Loading @@ -19,7 +19,7 @@ import { import type { AdbFeature } from "./features.js"; export interface Closeable { close(): ValueOrPromise<void>; close(): MaybePromiseLike<void>; } /** Loading @@ -37,7 +37,7 @@ export interface AdbSocket export type AdbIncomingSocketHandler = ( socket: AdbSocket, ) => ValueOrPromise<void>; ) => MaybePromiseLike<void>; export interface AdbTransport extends Closeable { readonly serial: string; Loading @@ -50,16 +50,16 @@ export interface AdbTransport extends Closeable { readonly clientFeatures: readonly AdbFeature[]; connect(service: string): ValueOrPromise<AdbSocket>; connect(service: string): MaybePromiseLike<AdbSocket>; addReverseTunnel( handler: AdbIncomingSocketHandler, address?: string, ): ValueOrPromise<string>; ): MaybePromiseLike<string>; removeReverseTunnel(address: string): ValueOrPromise<void>; removeReverseTunnel(address: string): MaybePromiseLike<void>; clearReverseTunnels(): ValueOrPromise<void>; clearReverseTunnels(): MaybePromiseLike<void>; } export class Adb implements Closeable { Loading libraries/adb/src/commands/framebuffer.ts +44 −41 Original line number Diff line number Diff line import { BufferedReadableStream } from "@yume-chan/stream-extra"; import Struct, { StructEmptyError } from "@yume-chan/struct"; import type { StructValue } from "@yume-chan/struct"; import { buffer, Struct, StructEmptyError, u32 } from "@yume-chan/struct"; import type { Adb } from "../adb.js"; const Version = /* #__PURE__ */ new Struct({ littleEndian: true }).uint32("version"); const Version = new Struct({ version: u32 }, { littleEndian: true }); export const AdbFrameBufferV1 = /* #__PURE__ */ new Struct({ littleEndian: true }) .uint32("bpp") .uint32("size") .uint32("width") .uint32("height") .uint32("red_offset") .uint32("red_length") .uint32("blue_offset") .uint32("blue_length") .uint32("green_offset") .uint32("green_length") .uint32("alpha_offset") .uint32("alpha_length") .uint8Array("data", { lengthField: "size" }); export const AdbFrameBufferV1 = new Struct( { bpp: u32, size: u32, width: u32, height: u32, red_offset: u32, red_length: u32, blue_offset: u32, blue_length: u32, green_offset: u32, green_length: u32, alpha_offset: u32, alpha_length: u32, data: buffer("size"), }, { littleEndian: true }, ); export type AdbFrameBufferV1 = (typeof AdbFrameBufferV1)["TDeserializeResult"]; export type AdbFrameBufferV1 = StructValue<typeof AdbFrameBufferV1>; export const AdbFrameBufferV2 = /* #__PURE__ */ new Struct({ littleEndian: true }) .uint32("bpp") .uint32("colorSpace") .uint32("size") .uint32("width") .uint32("height") .uint32("red_offset") .uint32("red_length") .uint32("blue_offset") .uint32("blue_length") .uint32("green_offset") .uint32("green_length") .uint32("alpha_offset") .uint32("alpha_length") .uint8Array("data", { lengthField: "size" }); export const AdbFrameBufferV2 = new Struct( { bpp: u32, colorSpace: u32, size: u32, width: u32, height: u32, red_offset: u32, red_length: u32, blue_offset: u32, blue_length: u32, green_offset: u32, green_length: u32, alpha_offset: u32, alpha_length: u32, data: buffer("size"), }, { littleEndian: true }, ); export type AdbFrameBufferV2 = (typeof AdbFrameBufferV2)["TDeserializeResult"]; export type AdbFrameBufferV2 = StructValue<typeof AdbFrameBufferV2>; /** * ADB uses 8 int32 fields to describe bit depths Loading Loading @@ -99,9 +102,9 @@ export async function framebuffer(adb: Adb): Promise<AdbFrameBuffer> { switch (version) { case 1: // TODO: AdbFrameBuffer: does all v1 responses uses the same color space? Add it so the command returns same format for all versions. return AdbFrameBufferV1.deserialize(stream); return await AdbFrameBufferV1.deserialize(stream); case 2: return AdbFrameBufferV2.deserialize(stream); return await AdbFrameBufferV2.deserialize(stream); default: throw new AdbFrameBufferUnsupportedVersionError(version); } Loading Loading
libraries/adb-daemon-webusb/src/device.ts +3 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import { pipeFrom, } from "@yume-chan/stream-extra"; import type { ExactReadable } from "@yume-chan/struct"; import { EMPTY_UINT8_ARRAY } from "@yume-chan/struct"; import { EmptyUint8Array } from "@yume-chan/struct"; import type { UsbInterfaceFilter } from "./utils.js"; import { Loading Loading @@ -185,7 +185,7 @@ export class AdbDaemonWebUsbConnection if (zeroMask && (chunk.length & zeroMask) === 0) { await device.raw.transferOut( outEndpoint.endpointNumber, EMPTY_UINT8_ARRAY, EmptyUint8Array, ); } } catch (e) { Loading Loading @@ -234,7 +234,7 @@ export class AdbDaemonWebUsbConnection ); packet.payload = new Uint8Array(result.data!.buffer); } else { packet.payload = EMPTY_UINT8_ARRAY; packet.payload = EmptyUint8Array; } return packet; Loading
libraries/adb-scrcpy/src/connection.ts +3 −3 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ import { BufferedReadableStream, PushReadableStream, } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import type { MaybePromiseLike } from "@yume-chan/struct"; export interface AdbScrcpyConnectionOptions { scid: number; Loading Loading @@ -54,7 +54,7 @@ export abstract class AdbScrcpyConnection implements Disposable { this.socketName = this.getSocketName(); } initialize(): ValueOrPromise<void> { initialize(): MaybePromiseLike<void> { // pure virtual method } Loading @@ -66,7 +66,7 @@ export abstract class AdbScrcpyConnection implements Disposable { return socketName; } abstract getStreams(): ValueOrPromise<AdbScrcpyConnectionStreams>; abstract getStreams(): MaybePromiseLike<AdbScrcpyConnectionStreams>; dispose(): void { // pure virtual method Loading
libraries/adb-server-node-tcp/src/index.ts +3 −3 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ import { PushReadableStream, tryClose, } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import type { MaybePromiseLike } from "@yume-chan/struct"; function nodeSocketToConnection( socket: Socket, Loading Loading @@ -138,7 +138,7 @@ export class AdbServerNodeTcpConnector return address; } removeReverseTunnel(address: string): ValueOrPromise<void> { removeReverseTunnel(address: string): MaybePromiseLike<void> { const server = this.#listeners.get(address); if (!server) { return; Loading @@ -147,7 +147,7 @@ export class AdbServerNodeTcpConnector this.#listeners.delete(address); } clearReverseTunnels(): ValueOrPromise<void> { clearReverseTunnels(): MaybePromiseLike<void> { for (const server of this.#listeners.values()) { server.close(); } Loading
libraries/adb/src/adb.ts +7 −7 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import type { ReadableWritablePair, } from "@yume-chan/stream-extra"; import { ConcatStringStream, TextDecoderStream } from "@yume-chan/stream-extra"; import type { ValueOrPromise } from "@yume-chan/struct"; import type { MaybePromiseLike } from "@yume-chan/struct"; import type { AdbBanner } from "./banner.js"; import type { AdbFrameBuffer } from "./commands/index.js"; Loading @@ -19,7 +19,7 @@ import { import type { AdbFeature } from "./features.js"; export interface Closeable { close(): ValueOrPromise<void>; close(): MaybePromiseLike<void>; } /** Loading @@ -37,7 +37,7 @@ export interface AdbSocket export type AdbIncomingSocketHandler = ( socket: AdbSocket, ) => ValueOrPromise<void>; ) => MaybePromiseLike<void>; export interface AdbTransport extends Closeable { readonly serial: string; Loading @@ -50,16 +50,16 @@ export interface AdbTransport extends Closeable { readonly clientFeatures: readonly AdbFeature[]; connect(service: string): ValueOrPromise<AdbSocket>; connect(service: string): MaybePromiseLike<AdbSocket>; addReverseTunnel( handler: AdbIncomingSocketHandler, address?: string, ): ValueOrPromise<string>; ): MaybePromiseLike<string>; removeReverseTunnel(address: string): ValueOrPromise<void>; removeReverseTunnel(address: string): MaybePromiseLike<void>; clearReverseTunnels(): ValueOrPromise<void>; clearReverseTunnels(): MaybePromiseLike<void>; } export class Adb implements Closeable { Loading
libraries/adb/src/commands/framebuffer.ts +44 −41 Original line number Diff line number Diff line import { BufferedReadableStream } from "@yume-chan/stream-extra"; import Struct, { StructEmptyError } from "@yume-chan/struct"; import type { StructValue } from "@yume-chan/struct"; import { buffer, Struct, StructEmptyError, u32 } from "@yume-chan/struct"; import type { Adb } from "../adb.js"; const Version = /* #__PURE__ */ new Struct({ littleEndian: true }).uint32("version"); const Version = new Struct({ version: u32 }, { littleEndian: true }); export const AdbFrameBufferV1 = /* #__PURE__ */ new Struct({ littleEndian: true }) .uint32("bpp") .uint32("size") .uint32("width") .uint32("height") .uint32("red_offset") .uint32("red_length") .uint32("blue_offset") .uint32("blue_length") .uint32("green_offset") .uint32("green_length") .uint32("alpha_offset") .uint32("alpha_length") .uint8Array("data", { lengthField: "size" }); export const AdbFrameBufferV1 = new Struct( { bpp: u32, size: u32, width: u32, height: u32, red_offset: u32, red_length: u32, blue_offset: u32, blue_length: u32, green_offset: u32, green_length: u32, alpha_offset: u32, alpha_length: u32, data: buffer("size"), }, { littleEndian: true }, ); export type AdbFrameBufferV1 = (typeof AdbFrameBufferV1)["TDeserializeResult"]; export type AdbFrameBufferV1 = StructValue<typeof AdbFrameBufferV1>; export const AdbFrameBufferV2 = /* #__PURE__ */ new Struct({ littleEndian: true }) .uint32("bpp") .uint32("colorSpace") .uint32("size") .uint32("width") .uint32("height") .uint32("red_offset") .uint32("red_length") .uint32("blue_offset") .uint32("blue_length") .uint32("green_offset") .uint32("green_length") .uint32("alpha_offset") .uint32("alpha_length") .uint8Array("data", { lengthField: "size" }); export const AdbFrameBufferV2 = new Struct( { bpp: u32, colorSpace: u32, size: u32, width: u32, height: u32, red_offset: u32, red_length: u32, blue_offset: u32, blue_length: u32, green_offset: u32, green_length: u32, alpha_offset: u32, alpha_length: u32, data: buffer("size"), }, { littleEndian: true }, ); export type AdbFrameBufferV2 = (typeof AdbFrameBufferV2)["TDeserializeResult"]; export type AdbFrameBufferV2 = StructValue<typeof AdbFrameBufferV2>; /** * ADB uses 8 int32 fields to describe bit depths Loading Loading @@ -99,9 +102,9 @@ export async function framebuffer(adb: Adb): Promise<AdbFrameBuffer> { switch (version) { case 1: // TODO: AdbFrameBuffer: does all v1 responses uses the same color space? Add it so the command returns same format for all versions. return AdbFrameBufferV1.deserialize(stream); return await AdbFrameBufferV1.deserialize(stream); case 2: return AdbFrameBufferV2.deserialize(stream); return await AdbFrameBufferV2.deserialize(stream); default: throw new AdbFrameBufferUnsupportedVersionError(version); } Loading