Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 418971cd authored by Simon Chan's avatar Simon Chan
Browse files

feat(scrcpy): support server version 3.2

parent ab23e4ba
Loading
Loading
Loading
Loading
+50 −0
Original line number Original line Diff line number Diff line
import type { Adb, AdbNoneProtocolSpawner } from "@yume-chan/adb";
import type { ScrcpyDisplay, ScrcpyEncoder } from "@yume-chan/scrcpy";
import { ScrcpyOptions3_2 } from "@yume-chan/scrcpy";

import {
    createConnection,
    getDisplays,
    getEncoders,
} from "./2_1/impl/index.js";
import type { AdbScrcpyClientOptions } from "./client-options.js";
import type { AdbScrcpyConnection } from "./connection.js";
import type { AdbScrcpyOptions, AdbScrcpyOptionsGetEncoders } from "./types.js";

export class AdbScrcpyOptions3_2<TVideo extends boolean>
    extends ScrcpyOptions3_2<TVideo>
    implements
        AdbScrcpyOptions<ScrcpyOptions3_2.Init<TVideo>>,
        AdbScrcpyOptionsGetEncoders
{
    readonly version: string;

    readonly spawner: AdbNoneProtocolSpawner | undefined;

    constructor(
        init: ScrcpyOptions3_2.Init<TVideo>,
        clientOptions?: AdbScrcpyClientOptions,
    ) {
        super(init);

        this.version = clientOptions?.version ?? "3.2";
        this.spawner = clientOptions?.spawner;
    }

    getEncoders(adb: Adb, path: string): Promise<ScrcpyEncoder[]> {
        return getEncoders(adb, path, this);
    }

    getDisplays(adb: Adb, path: string): Promise<ScrcpyDisplay[]> {
        return getDisplays(adb, path, this);
    }

    createConnection(adb: Adb): AdbScrcpyConnection {
        return createConnection(adb, this.value);
    }
}

export namespace AdbScrcpyOptions3_2 {
    export type Init<TVideo extends boolean = boolean> =
        ScrcpyOptions3_2.Init<TVideo>;
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ export * from "./3_0.js";
export * from "./3_0_1.js";
export * from "./3_0_1.js";
export * from "./3_0_2.js";
export * from "./3_0_2.js";
export * from "./3_1.js";
export * from "./3_1.js";
export * from "./3_2.js";
export * from "./client-options.js";
export * from "./client-options.js";
export * from "./client.js";
export * from "./client.js";
export * from "./connection.js";
export * from "./connection.js";
+4 −4
Original line number Original line Diff line number Diff line
import { AdbScrcpyOptions3_1 } from "./3_1.js";
import { AdbScrcpyOptions3_2 } from "./3_2.js";
import type { AdbScrcpyClientOptions } from "./client-options.js";
import type { AdbScrcpyClientOptions } from "./client-options.js";


export class AdbScrcpyOptionsLatest<
export class AdbScrcpyOptionsLatest<
    TVideo extends boolean,
    TVideo extends boolean,
> extends AdbScrcpyOptions3_1<TVideo> {
> extends AdbScrcpyOptions3_2<TVideo> {
    constructor(
    constructor(
        init: AdbScrcpyOptions3_1.Init<TVideo>,
        init: AdbScrcpyOptions3_2.Init<TVideo>,
        clientOptions?: AdbScrcpyClientOptions,
        clientOptions?: AdbScrcpyClientOptions,
    ) {
    ) {
        super(init, clientOptions);
        super(init, clientOptions);
@@ -14,5 +14,5 @@ export class AdbScrcpyOptionsLatest<


export namespace AdbScrcpyOptionsLatest {
export namespace AdbScrcpyOptionsLatest {
    export type Init<TVideo extends boolean = boolean> =
    export type Init<TVideo extends boolean = boolean> =
        AdbScrcpyOptions3_1.Init<TVideo>;
        AdbScrcpyOptions3_2.Init<TVideo>;
}
}
+15 −16
Original line number Original line Diff line number Diff line
import type { Init } from "./init.js";
import type { Init } from "./init.js";
import { VideoOrientation } from "./init.js";
import { VideoOrientation } from "./init.js";


export const Defaults = /* #__PURE__ */ (() =>
export const Defaults = {
    ({
    logLevel: "debug",
    logLevel: "debug",
    maxSize: 0,
    maxSize: 0,
    bitRate: 8_000_000,
    bitRate: 8_000_000,
@@ -16,4 +15,4 @@ export const Defaults = /* #__PURE__ */ (() =>
    showTouches: false,
    showTouches: false,
    stayAwake: false,
    stayAwake: false,
    codecOptions: undefined,
    codecOptions: undefined,
    }) as const satisfies Required<Init>)();
} as const satisfies Required<Init>;
+8 −0
Original line number Original line Diff line number Diff line
import type { Init } from "./init.js";
import { PrevImpl } from "./prev.js";

export const Defaults = /* #__PURE__ */ (() =>
    ({
        ...PrevImpl.Defaults,
        displayImePolicy: undefined,
    }) as const satisfies Required<Init<true>>)();
Loading