@yume-chan/scrcpy 3.0.0-beta.0 → 3.0.0-beta.1
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/esm/1_15/impl/codec-options.d.ts +12 -11
- package/esm/1_15/impl/codec-options.d.ts.map +1 -1
- package/esm/1_15/impl/codec-options.js +50 -11
- package/esm/1_15/impl/codec-options.js.map +1 -1
- package/esm/1_15/impl/compute-option-values.d.ts +7 -0
- package/esm/1_15/impl/compute-option-values.d.ts.map +1 -0
- package/esm/1_15/impl/compute-option-values.js +12 -0
- package/esm/1_15/impl/compute-option-values.js.map +1 -0
- package/esm/1_15/impl/index.d.ts +2 -0
- package/esm/1_15/impl/index.d.ts.map +1 -1
- package/esm/1_15/impl/index.js +2 -0
- package/esm/1_15/impl/index.js.map +1 -1
- package/esm/1_15/impl/init.d.ts +11 -11
- package/esm/1_15/impl/init.d.ts.map +1 -1
- package/esm/1_15/impl/media-stream-transformer.d.ts +2 -2
- package/esm/1_15/impl/media-stream-transformer.js +1 -1
- package/esm/1_15/impl/media-stream-transformer.js.map +1 -1
- package/esm/1_15/impl/parse-video-stream-metadata.js +4 -4
- package/esm/1_15/impl/parse-video-stream-metadata.js.map +1 -1
- package/esm/1_15/impl/set-display-power.d.ts +13 -0
- package/esm/1_15/impl/set-display-power.d.ts.map +1 -0
- package/esm/1_15/impl/set-display-power.js +16 -0
- package/esm/1_15/impl/set-display-power.js.map +1 -0
- package/esm/1_15/options.d.ts +12 -9
- package/esm/1_15/options.d.ts.map +1 -1
- package/esm/1_15/options.js +20 -2
- package/esm/1_15/options.js.map +1 -1
- package/esm/1_17/options.d.ts +11 -9
- package/esm/1_17/options.d.ts.map +1 -1
- package/esm/1_17/options.js +20 -2
- package/esm/1_17/options.js.map +1 -1
- package/esm/1_18/impl/init.d.ts +3 -3
- package/esm/1_18/impl/init.d.ts.map +1 -1
- package/esm/1_18/options.d.ts +11 -9
- package/esm/1_18/options.d.ts.map +1 -1
- package/esm/1_18/options.js +20 -2
- package/esm/1_18/options.js.map +1 -1
- package/esm/1_21/impl/compute-option-values.d.ts +23 -0
- package/esm/1_21/impl/compute-option-values.d.ts.map +1 -0
- package/esm/1_21/impl/compute-option-values.js +12 -0
- package/esm/1_21/impl/compute-option-values.js.map +1 -0
- package/esm/1_21/impl/index.d.ts +3 -1
- package/esm/1_21/impl/index.d.ts.map +1 -1
- package/esm/1_21/impl/index.js +2 -1
- package/esm/1_21/impl/index.js.map +1 -1
- package/esm/1_21/impl/init.d.ts +1 -1
- package/esm/1_21/impl/init.d.ts.map +1 -1
- package/esm/1_21/impl/serialize.d.ts +1 -1
- package/esm/1_21/impl/serialize.d.ts.map +1 -1
- package/esm/1_21/impl/serialize.js.map +1 -1
- package/esm/1_21/options.d.ts +11 -9
- package/esm/1_21/options.d.ts.map +1 -1
- package/esm/1_21/options.js +20 -2
- package/esm/1_21/options.js.map +1 -1
- package/esm/1_22/impl/init.d.ts +3 -3
- package/esm/1_22/impl/init.d.ts.map +1 -1
- package/esm/1_22/impl/parse-video-stream-metadata.d.ts +2 -2
- package/esm/1_22/impl/parse-video-stream-metadata.d.ts.map +1 -1
- package/esm/1_22/impl/parse-video-stream-metadata.js +3 -3
- package/esm/1_22/impl/parse-video-stream-metadata.js.map +1 -1
- package/esm/1_22/options.d.ts +11 -9
- package/esm/1_22/options.d.ts.map +1 -1
- package/esm/1_22/options.js +21 -3
- package/esm/1_22/options.js.map +1 -1
- package/esm/1_23/impl/init.d.ts +1 -1
- package/esm/1_23/impl/init.d.ts.map +1 -1
- package/esm/1_23/impl/media-stream-transformer.d.ts +2 -2
- package/esm/1_23/impl/media-stream-transformer.js +1 -1
- package/esm/1_23/impl/media-stream-transformer.js.map +1 -1
- package/esm/1_23/options.d.ts +11 -9
- package/esm/1_23/options.d.ts.map +1 -1
- package/esm/1_23/options.js +21 -3
- package/esm/1_23/options.js.map +1 -1
- package/esm/1_24/impl/init.d.ts +1 -1
- package/esm/1_24/impl/init.d.ts.map +1 -1
- package/esm/1_24/options.d.ts +11 -9
- package/esm/1_24/options.d.ts.map +1 -1
- package/esm/1_24/options.js +21 -3
- package/esm/1_24/options.js.map +1 -1
- package/esm/1_25/options.d.ts +11 -9
- package/esm/1_25/options.d.ts.map +1 -1
- package/esm/1_25/options.js +21 -3
- package/esm/1_25/options.js.map +1 -1
- package/esm/2_0/impl/defaults.d.ts +8 -11
- package/esm/2_0/impl/defaults.d.ts.map +1 -1
- package/esm/2_0/impl/defaults.js +4 -10
- package/esm/2_0/impl/defaults.js.map +1 -1
- package/esm/2_0/impl/index.d.ts +1 -1
- package/esm/2_0/impl/index.d.ts.map +1 -1
- package/esm/2_0/impl/index.js +1 -1
- package/esm/2_0/impl/index.js.map +1 -1
- package/esm/2_0/impl/init.d.ts +8 -8
- package/esm/2_0/impl/init.d.ts.map +1 -1
- package/esm/2_0/impl/parse-audio-stream-metadata.d.ts +4 -1
- package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
- package/esm/2_0/impl/parse-audio-stream-metadata.js +28 -39
- package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
- package/esm/2_0/impl/parse-video-stream-metadata.d.ts +5 -2
- package/esm/2_0/impl/parse-video-stream-metadata.d.ts.map +1 -1
- package/esm/2_0/impl/parse-video-stream-metadata.js +14 -12
- package/esm/2_0/impl/parse-video-stream-metadata.js.map +1 -1
- package/esm/2_0/options.d.ts +19 -20
- package/esm/2_0/options.d.ts.map +1 -1
- package/esm/2_0/options.js +22 -4
- package/esm/2_0/options.js.map +1 -1
- package/esm/2_1/impl/defaults.d.ts +8 -11
- package/esm/2_1/impl/defaults.d.ts.map +1 -1
- package/esm/2_1/impl/defaults.js.map +1 -1
- package/esm/2_1/impl/init.d.ts +3 -3
- package/esm/2_1/impl/init.d.ts.map +1 -1
- package/esm/2_1/options.d.ts +21 -22
- package/esm/2_1/options.d.ts.map +1 -1
- package/esm/2_1/options.js +22 -4
- package/esm/2_1/options.js.map +1 -1
- package/esm/2_2/impl/compute-option-values.d.ts +22 -0
- package/esm/2_2/impl/compute-option-values.d.ts.map +1 -0
- package/esm/2_2/impl/compute-option-values.js +11 -0
- package/esm/2_2/impl/compute-option-values.js.map +1 -0
- package/esm/2_2/impl/defaults.d.ts +8 -11
- package/esm/2_2/impl/defaults.d.ts.map +1 -1
- package/esm/2_2/impl/defaults.js.map +1 -1
- package/esm/2_2/impl/index.d.ts +2 -0
- package/esm/2_2/impl/index.d.ts.map +1 -1
- package/esm/2_2/impl/index.js +1 -0
- package/esm/2_2/impl/index.js.map +1 -1
- package/esm/2_2/impl/init.d.ts +5 -5
- package/esm/2_2/impl/init.d.ts.map +1 -1
- package/esm/2_2/options.d.ts +21 -22
- package/esm/2_2/options.d.ts.map +1 -1
- package/esm/2_2/options.js +22 -7
- package/esm/2_2/options.js.map +1 -1
- package/esm/2_3/impl/index.d.ts +1 -0
- package/esm/2_3/impl/index.d.ts.map +1 -1
- package/esm/2_3/impl/index.js +1 -0
- package/esm/2_3/impl/index.js.map +1 -1
- package/esm/2_3/impl/init.d.ts +2 -2
- package/esm/2_3/impl/init.d.ts.map +1 -1
- package/esm/2_3/impl/parse-audio-stream-metadata.d.ts +5 -0
- package/esm/2_3/impl/parse-audio-stream-metadata.d.ts.map +1 -0
- package/esm/2_3/impl/parse-audio-stream-metadata.js +31 -0
- package/esm/2_3/impl/parse-audio-stream-metadata.js.map +1 -0
- package/esm/2_3/options.d.ts +21 -22
- package/esm/2_3/options.d.ts.map +1 -1
- package/esm/2_3/options.js +22 -7
- package/esm/2_3/options.js.map +1 -1
- package/esm/2_4/options.d.ts +22 -23
- package/esm/2_4/options.d.ts.map +1 -1
- package/esm/2_4/options.js +25 -7
- package/esm/2_4/options.js.map +1 -1
- package/esm/2_6/impl/compute-option-values.d.ts +29 -0
- package/esm/2_6/impl/compute-option-values.d.ts.map +1 -0
- package/esm/2_6/impl/compute-option-values.js +12 -0
- package/esm/2_6/impl/compute-option-values.js.map +1 -0
- package/esm/2_6/impl/defaults.d.ts +8 -11
- package/esm/2_6/impl/defaults.d.ts.map +1 -1
- package/esm/2_6/impl/defaults.js.map +1 -1
- package/esm/2_6/impl/index.d.ts +2 -0
- package/esm/2_6/impl/index.d.ts.map +1 -1
- package/esm/2_6/impl/index.js +1 -0
- package/esm/2_6/impl/index.js.map +1 -1
- package/esm/2_6/impl/init.d.ts +3 -3
- package/esm/2_6/impl/init.d.ts.map +1 -1
- package/esm/2_6/options.d.ts +22 -23
- package/esm/2_6/options.d.ts.map +1 -1
- package/esm/2_6/options.js +25 -10
- package/esm/2_6/options.js.map +1 -1
- package/esm/2_7/impl/index.d.ts.map +1 -1
- package/esm/2_7/impl/index.js.map +1 -1
- package/esm/2_7/options.d.ts +22 -23
- package/esm/2_7/options.d.ts.map +1 -1
- package/esm/2_7/options.js +25 -10
- package/esm/2_7/options.js.map +1 -1
- package/esm/3_0/impl/defaults.d.ts +29 -33
- package/esm/3_0/impl/defaults.d.ts.map +1 -1
- package/esm/3_0/impl/defaults.js +4 -8
- package/esm/3_0/impl/defaults.js.map +1 -1
- package/esm/3_0/impl/index.d.ts +1 -0
- package/esm/3_0/impl/index.d.ts.map +1 -1
- package/esm/3_0/impl/index.js +1 -0
- package/esm/3_0/impl/index.js.map +1 -1
- package/esm/3_0/impl/init.d.ts +4 -4
- package/esm/3_0/impl/init.d.ts.map +1 -1
- package/esm/3_0/impl/set-display-power.d.ts +12 -0
- package/esm/3_0/impl/set-display-power.d.ts.map +1 -0
- package/esm/3_0/impl/set-display-power.js +10 -0
- package/esm/3_0/impl/set-display-power.js.map +1 -0
- package/esm/3_0/options.d.ts +43 -45
- package/esm/3_0/options.d.ts.map +1 -1
- package/esm/3_0/options.js +25 -10
- package/esm/3_0/options.js.map +1 -1
- package/esm/3_1/impl/defaults.d.ts +29 -33
- package/esm/3_1/impl/defaults.d.ts.map +1 -1
- package/esm/3_1/impl/defaults.js.map +1 -1
- package/esm/3_1/impl/index.d.ts.map +1 -1
- package/esm/3_1/impl/index.js.map +1 -1
- package/esm/3_1/impl/init.d.ts +2 -2
- package/esm/3_1/impl/init.d.ts.map +1 -1
- package/esm/3_1/options.d.ts +43 -45
- package/esm/3_1/options.d.ts.map +1 -1
- package/esm/3_1/options.js +25 -10
- package/esm/3_1/options.js.map +1 -1
- package/esm/3_2/impl/defaults.d.ts +29 -33
- package/esm/3_2/impl/defaults.d.ts.map +1 -1
- package/esm/3_2/impl/defaults.js.map +1 -1
- package/esm/3_2/impl/index.d.ts.map +1 -1
- package/esm/3_2/impl/index.js.map +1 -1
- package/esm/3_2/impl/init.d.ts +2 -2
- package/esm/3_2/impl/init.d.ts.map +1 -1
- package/esm/3_2/options.d.ts +43 -45
- package/esm/3_2/options.d.ts.map +1 -1
- package/esm/3_2/options.js +25 -10
- package/esm/3_2/options.js.map +1 -1
- package/esm/3_3_1/options.d.ts +43 -45
- package/esm/3_3_1/options.d.ts.map +1 -1
- package/esm/3_3_1/options.js +25 -10
- package/esm/3_3_1/options.js.map +1 -1
- package/esm/4_0/impl/compute-option-values.d.ts +15 -0
- package/esm/4_0/impl/compute-option-values.d.ts.map +1 -0
- package/esm/4_0/impl/compute-option-values.js +9 -0
- package/esm/4_0/impl/compute-option-values.js.map +1 -0
- package/esm/4_0/impl/control-message-types.d.ts +25 -0
- package/esm/4_0/impl/control-message-types.d.ts.map +1 -0
- package/esm/4_0/impl/control-message-types.js +26 -0
- package/esm/4_0/impl/control-message-types.js.map +1 -0
- package/esm/4_0/impl/defaults.d.ts +58 -0
- package/esm/4_0/impl/defaults.d.ts.map +1 -0
- package/esm/4_0/impl/defaults.js +12 -0
- package/esm/4_0/impl/defaults.js.map +1 -0
- package/esm/4_0/impl/index.d.ts +9 -0
- package/esm/4_0/impl/index.d.ts.map +1 -0
- package/esm/4_0/impl/index.js +7 -0
- package/esm/4_0/impl/index.js.map +1 -0
- package/esm/4_0/impl/init.d.ts +10 -0
- package/esm/4_0/impl/init.d.ts.map +1 -0
- package/esm/4_0/impl/init.js +2 -0
- package/esm/4_0/impl/init.js.map +1 -0
- package/esm/4_0/impl/media-stream-transformer.d.ts +5 -0
- package/esm/4_0/impl/media-stream-transformer.d.ts.map +1 -0
- package/esm/4_0/impl/media-stream-transformer.js +39 -0
- package/esm/4_0/impl/media-stream-transformer.js.map +1 -0
- package/esm/4_0/impl/parse-video-stream-metadata.d.ts +6 -0
- package/esm/4_0/impl/parse-video-stream-metadata.d.ts.map +1 -0
- package/esm/4_0/impl/parse-video-stream-metadata.js +21 -0
- package/esm/4_0/impl/parse-video-stream-metadata.js.map +1 -0
- package/esm/4_0/impl/prev.d.ts +2 -0
- package/esm/4_0/impl/prev.d.ts.map +1 -0
- package/esm/4_0/impl/prev.js +2 -0
- package/esm/4_0/impl/prev.js.map +1 -0
- package/esm/4_0/index.d.ts +100 -0
- package/esm/4_0/index.d.ts.map +1 -0
- package/esm/4_0/index.js +93 -0
- package/esm/4_0/index.js.map +1 -0
- package/esm/4_1/impl/control-message-types.d.ts +26 -0
- package/esm/4_1/impl/control-message-types.d.ts.map +1 -0
- package/esm/4_1/impl/control-message-types.js +27 -0
- package/esm/4_1/impl/control-message-types.js.map +1 -0
- package/esm/4_1/impl/defaults.d.ts +59 -0
- package/esm/4_1/impl/defaults.d.ts.map +1 -0
- package/esm/4_1/impl/defaults.js +6 -0
- package/esm/4_1/impl/defaults.js.map +1 -0
- package/esm/4_1/impl/index.d.ts +6 -0
- package/esm/4_1/impl/index.d.ts.map +1 -0
- package/esm/4_1/impl/index.js +5 -0
- package/esm/4_1/impl/index.js.map +1 -0
- package/esm/4_1/impl/init.d.ts +6 -0
- package/esm/4_1/impl/init.d.ts.map +1 -0
- package/esm/4_1/impl/init.js +2 -0
- package/esm/4_1/impl/init.js.map +1 -0
- package/esm/4_1/impl/parse-video-stream-metadata.d.ts +4 -0
- package/esm/4_1/impl/parse-video-stream-metadata.d.ts.map +1 -0
- package/esm/4_1/impl/parse-video-stream-metadata.js +19 -0
- package/esm/4_1/impl/parse-video-stream-metadata.js.map +1 -0
- package/esm/4_1/impl/prev.d.ts +2 -0
- package/esm/4_1/impl/prev.d.ts.map +1 -0
- package/esm/4_1/impl/prev.js +2 -0
- package/esm/4_1/impl/prev.js.map +1 -0
- package/esm/4_1/index.d.ts +101 -0
- package/esm/4_1/index.d.ts.map +1 -0
- package/esm/4_1/index.js +93 -0
- package/esm/4_1/index.js.map +1 -0
- package/esm/base/control-message-type-value.d.ts +5 -0
- package/esm/base/control-message-type-value.d.ts.map +1 -1
- package/esm/base/control-message-type-value.js +5 -0
- package/esm/base/control-message-type-value.js.map +1 -1
- package/esm/base/media.d.ts +8 -1
- package/esm/base/media.d.ts.map +1 -1
- package/esm/base/options.d.ts +6 -4
- package/esm/base/options.d.ts.map +1 -1
- package/esm/base/video.d.ts +1 -7
- package/esm/base/video.d.ts.map +1 -1
- package/esm/base/video.js +1 -13
- package/esm/base/video.js.map +1 -1
- package/esm/control/boolean.d.ts +10 -0
- package/esm/control/boolean.d.ts.map +1 -0
- package/esm/control/boolean.js +3 -0
- package/esm/control/boolean.js.map +1 -0
- package/esm/control/index.d.ts +2 -1
- package/esm/control/index.d.ts.map +1 -1
- package/esm/control/index.js +2 -1
- package/esm/control/index.js.map +1 -1
- package/esm/control/resize-display.d.ts +12 -0
- package/esm/control/resize-display.d.ts.map +1 -0
- package/esm/control/resize-display.js +8 -0
- package/esm/control/resize-display.js.map +1 -0
- package/esm/control/serializer.d.ts +8 -2
- package/esm/control/serializer.d.ts.map +1 -1
- package/esm/control/serializer.js +30 -4
- package/esm/control/serializer.js.map +1 -1
- package/esm/control/writer.d.ts +8 -2
- package/esm/control/writer.d.ts.map +1 -1
- package/esm/control/writer.js +17 -2
- package/esm/control/writer.js.map +1 -1
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/latest.d.ts +2 -2
- package/esm/latest.d.ts.map +1 -1
- package/esm/latest.js +2 -2
- package/esm/latest.js.map +1 -1
- package/esm/utils/omit.d.ts +1 -1
- package/esm/utils/omit.d.ts.map +1 -1
- package/esm/video/codec-id.d.ts +6 -0
- package/esm/video/codec-id.d.ts.map +1 -0
- package/esm/video/codec-id.js +6 -0
- package/esm/video/codec-id.js.map +1 -0
- package/esm/video/index.d.ts +4 -0
- package/esm/video/index.d.ts.map +1 -1
- package/esm/video/index.js +12 -0
- package/esm/video/index.js.map +1 -1
- package/esm/video/size.d.ts +8 -9
- package/esm/video/size.d.ts.map +1 -1
- package/esm/video/size.js +2 -2
- package/esm/video/size.js.map +1 -1
- package/package.json +7 -7
- package/src/1_15/impl/codec-options.ts +68 -17
- package/src/1_15/impl/compute-option-values.ts +26 -0
- package/src/1_15/impl/index.ts +2 -0
- package/src/1_15/impl/init.ts +11 -11
- package/src/1_15/impl/media-stream-transformer.ts +3 -3
- package/src/1_15/impl/parse-video-stream-metadata.ts +4 -4
- package/src/1_15/impl/set-display-power.ts +29 -0
- package/src/1_15/options.ts +45 -9
- package/src/1_17/options.ts +46 -10
- package/src/1_18/impl/init.ts +3 -3
- package/src/1_18/options.ts +46 -10
- package/src/1_21/impl/compute-option-values.ts +43 -0
- package/src/1_21/impl/index.ts +10 -1
- package/src/1_21/impl/init.ts +1 -1
- package/src/1_21/impl/serialize.ts +3 -3
- package/src/1_21/options.ts +46 -10
- package/src/1_22/impl/init.ts +3 -3
- package/src/1_22/impl/parse-video-stream-metadata.ts +4 -4
- package/src/1_22/options.ts +47 -11
- package/src/1_23/impl/init.ts +1 -1
- package/src/1_23/impl/media-stream-transformer.ts +3 -3
- package/src/1_23/options.ts +47 -11
- package/src/1_24/impl/init.ts +1 -1
- package/src/1_24/options.ts +47 -11
- package/src/1_25/options.ts +47 -11
- package/src/2_0/impl/defaults.ts +19 -23
- package/src/2_0/impl/index.ts +5 -1
- package/src/2_0/impl/init.ts +8 -8
- package/src/2_0/impl/parse-audio-stream-metadata.ts +34 -44
- package/src/2_0/impl/parse-video-stream-metadata.ts +24 -21
- package/src/2_0/options.ts +63 -12
- package/src/2_1/impl/defaults.ts +1 -1
- package/src/2_1/impl/init.ts +3 -3
- package/src/2_1/options.ts +66 -15
- package/src/2_2/generate-type-tests.js +106 -0
- package/src/2_2/impl/compute-option-values.ts +44 -0
- package/src/2_2/impl/defaults.ts +1 -1
- package/src/2_2/impl/index.ts +2 -0
- package/src/2_2/impl/init.ts +5 -5
- package/src/2_2/options.ts +66 -19
- package/src/2_3/impl/index.ts +4 -0
- package/src/2_3/impl/init.ts +2 -5
- package/src/2_3/impl/parse-audio-stream-metadata.ts +36 -0
- package/src/2_3/options.ts +66 -19
- package/src/2_4/options.ts +75 -23
- package/src/2_6/generate-type-tests.js +119 -0
- package/src/2_6/impl/compute-option-values.ts +48 -0
- package/src/2_6/impl/defaults.ts +1 -1
- package/src/2_6/impl/index.ts +9 -0
- package/src/2_6/impl/init.ts +3 -6
- package/src/2_6/options.ts +75 -27
- package/src/2_7/impl/index.ts +1 -0
- package/src/2_7/options.ts +75 -27
- package/src/3_0/impl/defaults.ts +12 -14
- package/src/3_0/impl/index.ts +5 -0
- package/src/3_0/impl/init.ts +4 -7
- package/src/3_0/impl/set-display-power.ts +23 -0
- package/src/3_0/options.ts +75 -27
- package/src/3_1/impl/defaults.ts +1 -1
- package/src/3_1/impl/index.ts +1 -0
- package/src/3_1/impl/init.ts +2 -2
- package/src/3_1/options.ts +75 -27
- package/src/3_2/impl/defaults.ts +1 -1
- package/src/3_2/impl/index.ts +1 -0
- package/src/3_2/impl/init.ts +2 -5
- package/src/3_2/options.ts +75 -27
- package/src/3_3_1/options.ts +75 -27
- package/src/4_0/impl/compute-option-values.ts +31 -0
- package/src/4_0/impl/control-message-types.ts +27 -0
- package/src/4_0/impl/defaults.ts +20 -0
- package/src/4_0/impl/index.ts +9 -0
- package/src/4_0/impl/init.ts +14 -0
- package/src/4_0/impl/media-stream-transformer.ts +58 -0
- package/src/4_0/impl/parse-video-stream-metadata.ts +34 -0
- package/src/4_0/impl/prev.ts +1 -0
- package/src/4_0/index.ts +226 -0
- package/src/4_1/impl/control-message-types.ts +28 -0
- package/src/4_1/impl/defaults.ts +8 -0
- package/src/4_1/impl/index.ts +6 -0
- package/src/4_1/impl/init.ts +7 -0
- package/src/4_1/impl/parse-video-stream-metadata.ts +23 -0
- package/src/4_1/impl/prev.ts +1 -0
- package/src/4_1/index.ts +226 -0
- package/src/base/control-message-type-value.ts +5 -0
- package/src/base/media.ts +12 -3
- package/src/base/options.ts +15 -5
- package/src/base/video.ts +2 -19
- package/src/control/boolean.ts +9 -0
- package/src/control/index.ts +2 -1
- package/src/control/resize-display.ts +16 -0
- package/src/control/serializer.ts +38 -8
- package/src/control/writer.ts +24 -6
- package/src/index.ts +2 -0
- package/src/latest.ts +4 -3
- package/src/utils/omit.ts +1 -1
- package/src/video/codec-id.ts +6 -0
- package/src/video/index.ts +19 -0
- package/src/video/size.ts +10 -4
- package/esm/control/set-screen-power-mode.d.ts +0 -11
- package/esm/control/set-screen-power-mode.d.ts.map +0 -1
- package/esm/control/set-screen-power-mode.js +0 -7
- package/esm/control/set-screen-power-mode.js.map +0 -1
- package/src/control/set-screen-power-mode.ts +0 -17
package/src/2_1/options.ts
CHANGED
|
@@ -2,56 +2,70 @@ import type { MaybePromiseLike } from "@yume-chan/async";
|
|
|
2
2
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
|
+
MapBoolean,
|
|
5
6
|
ScrcpyAudioStreamMetadata,
|
|
6
7
|
ScrcpyDisplay,
|
|
7
8
|
ScrcpyEncoder,
|
|
8
|
-
ScrcpyMediaStreamPacket,
|
|
9
9
|
ScrcpyOptions,
|
|
10
10
|
ScrcpyOptionsListEncoders,
|
|
11
11
|
ScrcpyScrollController,
|
|
12
12
|
ScrcpyVideoStream,
|
|
13
|
+
ScrcpyVideoStreamPacket,
|
|
13
14
|
} from "../base/index.js";
|
|
14
15
|
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
15
16
|
import type {
|
|
16
17
|
ScrcpyBackOrScreenOnControlMessage,
|
|
17
18
|
ScrcpyInjectTouchControlMessage,
|
|
18
19
|
ScrcpySetClipboardControlMessage,
|
|
20
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
19
21
|
} from "../latest.js";
|
|
20
22
|
|
|
21
|
-
import type { Init } from "./impl/index.js";
|
|
23
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
22
24
|
import {
|
|
23
25
|
AckClipboardHandler,
|
|
24
26
|
ClipboardStream,
|
|
27
|
+
computeOptionValues,
|
|
25
28
|
ControlMessageTypes,
|
|
26
29
|
createMediaStreamTransformer,
|
|
27
30
|
createScrollController,
|
|
28
31
|
Defaults,
|
|
32
|
+
parseAudioCodecOption,
|
|
33
|
+
parseAudioMetadataCodec,
|
|
29
34
|
parseAudioStreamMetadata,
|
|
30
35
|
parseDisplay,
|
|
31
36
|
parseEncoder,
|
|
37
|
+
parseVideoCodecOption,
|
|
32
38
|
parseVideoStreamMetadata,
|
|
39
|
+
parseVideoStreamMetadataAsync,
|
|
33
40
|
serialize,
|
|
34
41
|
serializeBackOrScreenOnControlMessage,
|
|
35
42
|
serializeInjectTouchControlMessage,
|
|
36
43
|
serializeSetClipboardControlMessage,
|
|
44
|
+
serializeSetDisplayPowerControlMessage,
|
|
37
45
|
setListDisplays,
|
|
38
46
|
setListEncoders,
|
|
39
47
|
} from "./impl/index.js";
|
|
40
48
|
|
|
41
|
-
export class ScrcpyOptions2_1<
|
|
42
|
-
implements
|
|
49
|
+
export class ScrcpyOptions2_1<TInit extends Init = Init>
|
|
50
|
+
implements
|
|
51
|
+
ScrcpyOptions<ScrcpyOptions2_1.Value<TInit>>,
|
|
52
|
+
ScrcpyOptionsListEncoders
|
|
43
53
|
{
|
|
44
54
|
static readonly Defaults = Defaults;
|
|
45
55
|
|
|
46
|
-
readonly value:
|
|
56
|
+
readonly value: ScrcpyOptions2_1.Value<TInit>;
|
|
47
57
|
|
|
48
58
|
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
49
59
|
return ControlMessageTypes;
|
|
50
60
|
}
|
|
51
61
|
|
|
52
62
|
#clipboard: ClipboardStream | undefined;
|
|
53
|
-
get clipboard():
|
|
54
|
-
|
|
63
|
+
get clipboard(): MapBoolean<
|
|
64
|
+
this["value"]["clipboardAutosync"],
|
|
65
|
+
ReadableStream<string>,
|
|
66
|
+
undefined
|
|
67
|
+
> {
|
|
68
|
+
return this.#clipboard as never;
|
|
55
69
|
}
|
|
56
70
|
|
|
57
71
|
#ackClipboardHandler: AckClipboardHandler | undefined;
|
|
@@ -61,8 +75,8 @@ export class ScrcpyOptions2_1<TVideo extends boolean>
|
|
|
61
75
|
return this.#deviceMessageParsers;
|
|
62
76
|
}
|
|
63
77
|
|
|
64
|
-
constructor(init:
|
|
65
|
-
this.value =
|
|
78
|
+
constructor(init: TInit) {
|
|
79
|
+
this.value = computeOptionValues(init, Defaults);
|
|
66
80
|
|
|
67
81
|
if (this.value.control) {
|
|
68
82
|
if (this.value.clipboardAutosync) {
|
|
@@ -78,7 +92,7 @@ export class ScrcpyOptions2_1<TVideo extends boolean>
|
|
|
78
92
|
}
|
|
79
93
|
|
|
80
94
|
serialize(): string[] {
|
|
81
|
-
return serialize
|
|
95
|
+
return serialize(this.value, Defaults);
|
|
82
96
|
}
|
|
83
97
|
|
|
84
98
|
setListDisplays(): void {
|
|
@@ -100,18 +114,29 @@ export class ScrcpyOptions2_1<TVideo extends boolean>
|
|
|
100
114
|
parseVideoStreamMetadata(
|
|
101
115
|
stream: ReadableStream<Uint8Array>,
|
|
102
116
|
): MaybePromiseLike<ScrcpyVideoStream> {
|
|
103
|
-
return parseVideoStreamMetadata(
|
|
117
|
+
return parseVideoStreamMetadata(
|
|
118
|
+
stream,
|
|
119
|
+
this.value.sendDeviceMeta,
|
|
120
|
+
this.value.sendCodecMeta,
|
|
121
|
+
parseVideoCodecOption(this.value.videoCodec),
|
|
122
|
+
parseVideoStreamMetadataAsync,
|
|
123
|
+
);
|
|
104
124
|
}
|
|
105
125
|
|
|
106
126
|
parseAudioStreamMetadata(
|
|
107
127
|
stream: ReadableStream<Uint8Array>,
|
|
108
128
|
): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
|
|
109
|
-
return parseAudioStreamMetadata(
|
|
129
|
+
return parseAudioStreamMetadata(
|
|
130
|
+
stream,
|
|
131
|
+
this.value.sendCodecMeta,
|
|
132
|
+
parseAudioMetadataCodec,
|
|
133
|
+
parseAudioCodecOption(this.value.audioCodec),
|
|
134
|
+
);
|
|
110
135
|
}
|
|
111
136
|
|
|
112
137
|
createMediaStreamTransformer(): TransformStream<
|
|
113
138
|
Uint8Array,
|
|
114
|
-
|
|
139
|
+
ScrcpyVideoStreamPacket
|
|
115
140
|
> {
|
|
116
141
|
return createMediaStreamTransformer(this.value);
|
|
117
142
|
}
|
|
@@ -119,31 +144,57 @@ export class ScrcpyOptions2_1<TVideo extends boolean>
|
|
|
119
144
|
serializeInjectTouchControlMessage(
|
|
120
145
|
message: ScrcpyInjectTouchControlMessage,
|
|
121
146
|
): Uint8Array {
|
|
147
|
+
if (!this.value.control) {
|
|
148
|
+
throw new Error("control is disabled");
|
|
149
|
+
}
|
|
122
150
|
return serializeInjectTouchControlMessage(message);
|
|
123
151
|
}
|
|
124
152
|
|
|
125
153
|
serializeBackOrScreenOnControlMessage(
|
|
126
154
|
message: ScrcpyBackOrScreenOnControlMessage,
|
|
127
155
|
): Uint8Array | undefined {
|
|
156
|
+
if (!this.value.control) {
|
|
157
|
+
throw new Error("control is disabled");
|
|
158
|
+
}
|
|
128
159
|
return serializeBackOrScreenOnControlMessage(message);
|
|
129
160
|
}
|
|
130
161
|
|
|
131
162
|
serializeSetClipboardControlMessage(
|
|
132
163
|
message: ScrcpySetClipboardControlMessage,
|
|
133
164
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
|
165
|
+
if (!this.value.control) {
|
|
166
|
+
throw new Error("control is disabled");
|
|
167
|
+
}
|
|
134
168
|
return serializeSetClipboardControlMessage(
|
|
135
169
|
message,
|
|
136
170
|
this.#ackClipboardHandler,
|
|
137
171
|
);
|
|
138
172
|
}
|
|
139
173
|
|
|
174
|
+
serializeSetDisplayPowerControlMessage(
|
|
175
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
176
|
+
): Uint8Array {
|
|
177
|
+
if (!this.value.control) {
|
|
178
|
+
throw new Error("control is disabled");
|
|
179
|
+
}
|
|
180
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
181
|
+
}
|
|
182
|
+
|
|
140
183
|
createScrollController(): ScrcpyScrollController {
|
|
184
|
+
if (!this.value.control) {
|
|
185
|
+
throw new Error("control is disabled");
|
|
186
|
+
}
|
|
141
187
|
return createScrollController();
|
|
142
188
|
}
|
|
143
189
|
}
|
|
144
190
|
|
|
145
|
-
type Init_
|
|
191
|
+
type Init_ = Init;
|
|
146
192
|
|
|
147
193
|
export namespace ScrcpyOptions2_1 {
|
|
148
|
-
export type Init
|
|
194
|
+
export type Init = Init_;
|
|
195
|
+
|
|
196
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
197
|
+
TInit,
|
|
198
|
+
typeof Defaults
|
|
199
|
+
>;
|
|
149
200
|
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
|
|
3
|
+
import { writeFileSync } from "node:fs";
|
|
4
|
+
import { format } from "prettier";
|
|
5
|
+
|
|
6
|
+
let content = `
|
|
7
|
+
// Generated by generate-type-tests.js. Do not edit manually.
|
|
8
|
+
|
|
9
|
+
import type {ReadableStream} from "@yume-chan/stream-extra";
|
|
10
|
+
|
|
11
|
+
import type {ScrcpyOptions2_2} from "./options.js";
|
|
12
|
+
|
|
13
|
+
type Equal<X, Y> =
|
|
14
|
+
(<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2
|
|
15
|
+
? true
|
|
16
|
+
: false;
|
|
17
|
+
|
|
18
|
+
function expectTrue<T extends true>(value?: T) { void value; }
|
|
19
|
+
|
|
20
|
+
`;
|
|
21
|
+
|
|
22
|
+
const controlValues = ["true", "false", "undefined"];
|
|
23
|
+
const videoSourceValues = [`"display"`, `"camera"`, "undefined"];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @param {string[]} values
|
|
27
|
+
*/
|
|
28
|
+
function* powerSetExceptEmpty(values) {
|
|
29
|
+
/**
|
|
30
|
+
* @param {number} start
|
|
31
|
+
* @param {string[]} combo
|
|
32
|
+
* @returns {Generator<string[], void, unknown>}
|
|
33
|
+
*/
|
|
34
|
+
function* backtrack(start, combo) {
|
|
35
|
+
if (combo.length > 0) {
|
|
36
|
+
yield [...combo];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
for (let i = start; i < values.length; i++) {
|
|
40
|
+
combo.push(values[i]);
|
|
41
|
+
yield* backtrack(i + 1, combo);
|
|
42
|
+
combo.pop();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
yield* backtrack(0, []);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* @param {string[]} control
|
|
52
|
+
* @param {string[]} videoSource
|
|
53
|
+
* @param {string} expectedType
|
|
54
|
+
* @returns {string}
|
|
55
|
+
*/
|
|
56
|
+
function generateCase(control, videoSource, expectedType) {
|
|
57
|
+
return `
|
|
58
|
+
expectTrue<Equal<ScrcpyOptions2_2<{control:${control.join("|")}, videoSource:${videoSource.join("|")}}>["clipboard"], ${expectedType}>>();
|
|
59
|
+
`.trim();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
for (const control of powerSetExceptEmpty(controlValues)) {
|
|
63
|
+
content += `\n// #region control: ${control.join(" | ")}\n`;
|
|
64
|
+
|
|
65
|
+
for (const videoSource of powerSetExceptEmpty(videoSourceValues)) {
|
|
66
|
+
const willDisableControl =
|
|
67
|
+
videoSource.length === 1 && videoSource[0] === `"camera"`;
|
|
68
|
+
if (willDisableControl) {
|
|
69
|
+
content += generateCase(control, videoSource, "undefined");
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const controlDefinitelyDisabled =
|
|
74
|
+
control.length === 1 && control[0] === "false";
|
|
75
|
+
|
|
76
|
+
const mayDisableControl = videoSource.includes(`"camera"`);
|
|
77
|
+
if (mayDisableControl) {
|
|
78
|
+
content += generateCase(
|
|
79
|
+
control,
|
|
80
|
+
videoSource,
|
|
81
|
+
controlDefinitelyDisabled
|
|
82
|
+
? "undefined"
|
|
83
|
+
: "ReadableStream<string> | undefined",
|
|
84
|
+
);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const controlMaybeDisabled = control.includes("false");
|
|
89
|
+
|
|
90
|
+
content += generateCase(
|
|
91
|
+
control,
|
|
92
|
+
videoSource,
|
|
93
|
+
controlDefinitelyDisabled
|
|
94
|
+
? "undefined"
|
|
95
|
+
: controlMaybeDisabled
|
|
96
|
+
? "ReadableStream<string> | undefined"
|
|
97
|
+
: "ReadableStream<string>",
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
content += `\n// #endregion\n`;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
content = await format(content, { parser: "typescript", tabWidth: 4 });
|
|
105
|
+
|
|
106
|
+
writeFileSync(new URL("./type-tests.spec.ts", import.meta.url), content);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ComputeOptionTypes as ComputeOptionTypes1_15 } from "../../1_15/impl/index.js";
|
|
2
|
+
import { computeOptionValues as computeOptionValues1_15 } from "../../1_15/impl/index.js";
|
|
3
|
+
|
|
4
|
+
import { PrevImpl } from "./prev.js";
|
|
5
|
+
|
|
6
|
+
// Distributive Conditional Types
|
|
7
|
+
// (https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types)
|
|
8
|
+
type ComputeControl<TVideoSource, TControl> = TVideoSource extends "camera"
|
|
9
|
+
? false
|
|
10
|
+
: TControl;
|
|
11
|
+
|
|
12
|
+
type OverrideControl<T> = Omit<T, "control"> & {
|
|
13
|
+
control: ComputeControl<
|
|
14
|
+
T extends { videoSource: infer TVideoSource } ? TVideoSource : never,
|
|
15
|
+
T extends { control: infer TControl } ? TControl : never
|
|
16
|
+
>;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type ComputeOptionTypes<
|
|
20
|
+
T extends object,
|
|
21
|
+
TDefaults extends object,
|
|
22
|
+
> = PrevImpl.OverrideClipboardAutosync<
|
|
23
|
+
OverrideControl<ComputeOptionTypes1_15<T, TDefaults>>
|
|
24
|
+
>;
|
|
25
|
+
|
|
26
|
+
export function computeOptionValues<
|
|
27
|
+
T extends {
|
|
28
|
+
videoSource?: string | undefined;
|
|
29
|
+
control?: boolean | undefined;
|
|
30
|
+
clipboardAutosync?: boolean | undefined;
|
|
31
|
+
},
|
|
32
|
+
TDefaults extends {
|
|
33
|
+
videoSource: string;
|
|
34
|
+
control: boolean;
|
|
35
|
+
clipboardAutosync: boolean;
|
|
36
|
+
},
|
|
37
|
+
>(options: T, defaults: TDefaults): ComputeOptionTypes<T, TDefaults> {
|
|
38
|
+
const value = computeOptionValues1_15(options, defaults);
|
|
39
|
+
if (value.videoSource !== "display") {
|
|
40
|
+
value.control = false as never;
|
|
41
|
+
}
|
|
42
|
+
PrevImpl.overrideClipboardAutosync(value as never);
|
|
43
|
+
return value as never;
|
|
44
|
+
}
|
package/src/2_2/impl/defaults.ts
CHANGED
package/src/2_2/impl/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from "../../2_1/impl/index.js";
|
|
2
|
+
export { computeOptionValues } from "./compute-option-values.js";
|
|
3
|
+
export type { ComputeOptionTypes } from "./compute-option-values.js";
|
|
2
4
|
export { Defaults } from "./defaults.js";
|
|
3
5
|
export type { Init } from "./init.js";
|
|
4
6
|
export { parseDisplay } from "./parse-display.js";
|
package/src/2_2/impl/init.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { PrevImpl } from "./prev.js";
|
|
2
2
|
|
|
3
|
-
export interface Init
|
|
4
|
-
videoSource?: "display" | "camera";
|
|
3
|
+
export interface Init extends PrevImpl.Init {
|
|
4
|
+
videoSource?: "display" | "camera" | undefined;
|
|
5
5
|
cameraId?: string | undefined;
|
|
6
6
|
cameraSize?: string | undefined;
|
|
7
7
|
cameraFacing?: "front" | "back" | "external" | undefined;
|
|
8
8
|
cameraAr?: string | undefined;
|
|
9
9
|
cameraFps?: number | undefined;
|
|
10
|
-
cameraHighSpeed?: boolean;
|
|
10
|
+
cameraHighSpeed?: boolean | undefined;
|
|
11
11
|
|
|
12
|
-
listCameras?: boolean;
|
|
13
|
-
listCameraSizes?: boolean;
|
|
12
|
+
listCameras?: boolean | undefined;
|
|
13
|
+
listCameraSizes?: boolean | undefined;
|
|
14
14
|
}
|
package/src/2_2/options.ts
CHANGED
|
@@ -2,56 +2,70 @@ import type { MaybePromiseLike } from "@yume-chan/async";
|
|
|
2
2
|
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
|
+
MapBoolean,
|
|
5
6
|
ScrcpyAudioStreamMetadata,
|
|
6
7
|
ScrcpyDisplay,
|
|
7
8
|
ScrcpyEncoder,
|
|
8
|
-
ScrcpyMediaStreamPacket,
|
|
9
9
|
ScrcpyOptions,
|
|
10
10
|
ScrcpyOptionsListEncoders,
|
|
11
11
|
ScrcpyScrollController,
|
|
12
12
|
ScrcpyVideoStream,
|
|
13
|
+
ScrcpyVideoStreamPacket,
|
|
13
14
|
} from "../base/index.js";
|
|
14
15
|
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
15
16
|
import type {
|
|
16
17
|
ScrcpyBackOrScreenOnControlMessage,
|
|
17
18
|
ScrcpyInjectTouchControlMessage,
|
|
18
19
|
ScrcpySetClipboardControlMessage,
|
|
20
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
19
21
|
} from "../latest.js";
|
|
20
22
|
|
|
21
|
-
import type { Init } from "./impl/index.js";
|
|
23
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
22
24
|
import {
|
|
23
25
|
AckClipboardHandler,
|
|
24
26
|
ClipboardStream,
|
|
27
|
+
computeOptionValues,
|
|
25
28
|
ControlMessageTypes,
|
|
26
29
|
createMediaStreamTransformer,
|
|
27
30
|
createScrollController,
|
|
28
31
|
Defaults,
|
|
32
|
+
parseAudioCodecOption,
|
|
33
|
+
parseAudioMetadataCodec,
|
|
29
34
|
parseAudioStreamMetadata,
|
|
30
35
|
parseDisplay,
|
|
31
36
|
parseEncoder,
|
|
37
|
+
parseVideoCodecOption,
|
|
32
38
|
parseVideoStreamMetadata,
|
|
39
|
+
parseVideoStreamMetadataAsync,
|
|
33
40
|
serialize,
|
|
34
41
|
serializeBackOrScreenOnControlMessage,
|
|
35
42
|
serializeInjectTouchControlMessage,
|
|
36
43
|
serializeSetClipboardControlMessage,
|
|
44
|
+
serializeSetDisplayPowerControlMessage,
|
|
37
45
|
setListDisplays,
|
|
38
46
|
setListEncoders,
|
|
39
47
|
} from "./impl/index.js";
|
|
40
48
|
|
|
41
|
-
export class ScrcpyOptions2_2<
|
|
42
|
-
implements
|
|
49
|
+
export class ScrcpyOptions2_2<TInit extends Init = Init>
|
|
50
|
+
implements
|
|
51
|
+
ScrcpyOptions<ScrcpyOptions2_2.Value<TInit>>,
|
|
52
|
+
ScrcpyOptionsListEncoders
|
|
43
53
|
{
|
|
44
54
|
static readonly Defaults = Defaults;
|
|
45
55
|
|
|
46
|
-
readonly value:
|
|
56
|
+
readonly value: ScrcpyOptions2_2.Value<TInit>;
|
|
47
57
|
|
|
48
58
|
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
49
59
|
return ControlMessageTypes;
|
|
50
60
|
}
|
|
51
61
|
|
|
52
62
|
#clipboard: ClipboardStream | undefined;
|
|
53
|
-
get clipboard():
|
|
54
|
-
|
|
63
|
+
get clipboard(): MapBoolean<
|
|
64
|
+
this["value"]["clipboardAutosync"],
|
|
65
|
+
ReadableStream<string>,
|
|
66
|
+
undefined
|
|
67
|
+
> {
|
|
68
|
+
return this.#clipboard as never;
|
|
55
69
|
}
|
|
56
70
|
|
|
57
71
|
#ackClipboardHandler: AckClipboardHandler | undefined;
|
|
@@ -61,12 +75,8 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
|
|
|
61
75
|
return this.#deviceMessageParsers;
|
|
62
76
|
}
|
|
63
77
|
|
|
64
|
-
constructor(init:
|
|
65
|
-
this.value =
|
|
66
|
-
|
|
67
|
-
if (this.value.videoSource === "camera") {
|
|
68
|
-
this.value.control = false;
|
|
69
|
-
}
|
|
78
|
+
constructor(init: TInit) {
|
|
79
|
+
this.value = computeOptionValues(init, Defaults);
|
|
70
80
|
|
|
71
81
|
if (this.value.control) {
|
|
72
82
|
if (this.value.clipboardAutosync) {
|
|
@@ -82,7 +92,7 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
|
|
|
82
92
|
}
|
|
83
93
|
|
|
84
94
|
serialize(): string[] {
|
|
85
|
-
return serialize
|
|
95
|
+
return serialize(this.value, Defaults);
|
|
86
96
|
}
|
|
87
97
|
|
|
88
98
|
setListDisplays(): void {
|
|
@@ -104,18 +114,29 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
|
|
|
104
114
|
parseVideoStreamMetadata(
|
|
105
115
|
stream: ReadableStream<Uint8Array>,
|
|
106
116
|
): MaybePromiseLike<ScrcpyVideoStream> {
|
|
107
|
-
return parseVideoStreamMetadata(
|
|
117
|
+
return parseVideoStreamMetadata(
|
|
118
|
+
stream,
|
|
119
|
+
this.value.sendDeviceMeta,
|
|
120
|
+
this.value.sendCodecMeta,
|
|
121
|
+
parseVideoCodecOption(this.value.videoCodec),
|
|
122
|
+
parseVideoStreamMetadataAsync,
|
|
123
|
+
);
|
|
108
124
|
}
|
|
109
125
|
|
|
110
126
|
parseAudioStreamMetadata(
|
|
111
127
|
stream: ReadableStream<Uint8Array>,
|
|
112
128
|
): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
|
|
113
|
-
return parseAudioStreamMetadata(
|
|
129
|
+
return parseAudioStreamMetadata(
|
|
130
|
+
stream,
|
|
131
|
+
this.value.sendCodecMeta,
|
|
132
|
+
parseAudioMetadataCodec,
|
|
133
|
+
parseAudioCodecOption(this.value.audioCodec),
|
|
134
|
+
);
|
|
114
135
|
}
|
|
115
136
|
|
|
116
137
|
createMediaStreamTransformer(): TransformStream<
|
|
117
138
|
Uint8Array,
|
|
118
|
-
|
|
139
|
+
ScrcpyVideoStreamPacket
|
|
119
140
|
> {
|
|
120
141
|
return createMediaStreamTransformer(this.value);
|
|
121
142
|
}
|
|
@@ -123,31 +144,57 @@ export class ScrcpyOptions2_2<TVideo extends boolean>
|
|
|
123
144
|
serializeInjectTouchControlMessage(
|
|
124
145
|
message: ScrcpyInjectTouchControlMessage,
|
|
125
146
|
): Uint8Array {
|
|
147
|
+
if (!this.value.control) {
|
|
148
|
+
throw new Error("control is disabled");
|
|
149
|
+
}
|
|
126
150
|
return serializeInjectTouchControlMessage(message);
|
|
127
151
|
}
|
|
128
152
|
|
|
129
153
|
serializeBackOrScreenOnControlMessage(
|
|
130
154
|
message: ScrcpyBackOrScreenOnControlMessage,
|
|
131
155
|
): Uint8Array | undefined {
|
|
156
|
+
if (!this.value.control) {
|
|
157
|
+
throw new Error("control is disabled");
|
|
158
|
+
}
|
|
132
159
|
return serializeBackOrScreenOnControlMessage(message);
|
|
133
160
|
}
|
|
134
161
|
|
|
135
162
|
serializeSetClipboardControlMessage(
|
|
136
163
|
message: ScrcpySetClipboardControlMessage,
|
|
137
164
|
): Uint8Array | [Uint8Array, Promise<void>] {
|
|
165
|
+
if (!this.value.control) {
|
|
166
|
+
throw new Error("control is disabled");
|
|
167
|
+
}
|
|
138
168
|
return serializeSetClipboardControlMessage(
|
|
139
169
|
message,
|
|
140
170
|
this.#ackClipboardHandler,
|
|
141
171
|
);
|
|
142
172
|
}
|
|
143
173
|
|
|
174
|
+
serializeSetDisplayPowerControlMessage(
|
|
175
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
176
|
+
): Uint8Array {
|
|
177
|
+
if (!this.value.control) {
|
|
178
|
+
throw new Error("control is disabled");
|
|
179
|
+
}
|
|
180
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
181
|
+
}
|
|
182
|
+
|
|
144
183
|
createScrollController(): ScrcpyScrollController {
|
|
184
|
+
if (!this.value.control) {
|
|
185
|
+
throw new Error("control is disabled");
|
|
186
|
+
}
|
|
145
187
|
return createScrollController();
|
|
146
188
|
}
|
|
147
189
|
}
|
|
148
190
|
|
|
149
|
-
type Init_
|
|
191
|
+
type Init_ = Init;
|
|
150
192
|
|
|
151
193
|
export namespace ScrcpyOptions2_2 {
|
|
152
|
-
export type Init
|
|
194
|
+
export type Init = Init_;
|
|
195
|
+
|
|
196
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
197
|
+
TInit,
|
|
198
|
+
typeof Defaults
|
|
199
|
+
>;
|
|
153
200
|
}
|
package/src/2_3/impl/index.ts
CHANGED
package/src/2_3/impl/init.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { PrevImpl } from "./prev.js";
|
|
2
2
|
|
|
3
|
-
export interface Init
|
|
4
|
-
PrevImpl.Init
|
|
5
|
-
"audioCodec"
|
|
6
|
-
> {
|
|
7
|
-
audioCodec?: PrevImpl.Init<TVideo>["audioCodec"] | "flac";
|
|
3
|
+
export interface Init extends Omit<PrevImpl.Init, "audioCodec"> {
|
|
4
|
+
audioCodec?: PrevImpl.Init["audioCodec"] | "flac";
|
|
8
5
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ScrcpyAudioCodec } from "../../base/index.js";
|
|
2
|
+
|
|
3
|
+
import type { Init } from "./init.js";
|
|
4
|
+
|
|
5
|
+
export function parseAudioMetadataCodec(codec: number): ScrcpyAudioCodec {
|
|
6
|
+
switch (codec) {
|
|
7
|
+
case ScrcpyAudioCodec.Raw.metadataValue:
|
|
8
|
+
return ScrcpyAudioCodec.Raw;
|
|
9
|
+
case ScrcpyAudioCodec.Opus.metadataValue:
|
|
10
|
+
return ScrcpyAudioCodec.Opus;
|
|
11
|
+
case ScrcpyAudioCodec.Aac.metadataValue:
|
|
12
|
+
return ScrcpyAudioCodec.Aac;
|
|
13
|
+
case ScrcpyAudioCodec.Flac.metadataValue:
|
|
14
|
+
return ScrcpyAudioCodec.Flac;
|
|
15
|
+
default:
|
|
16
|
+
throw new Error(`Unknown audio codec metadata value: ${codec}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function parseAudioCodecOption(
|
|
21
|
+
audioCodec: Exclude<Init["audioCodec"], undefined>,
|
|
22
|
+
): ScrcpyAudioCodec {
|
|
23
|
+
switch (audioCodec) {
|
|
24
|
+
case "raw":
|
|
25
|
+
return ScrcpyAudioCodec.Raw;
|
|
26
|
+
case "opus":
|
|
27
|
+
return ScrcpyAudioCodec.Opus;
|
|
28
|
+
case "aac":
|
|
29
|
+
return ScrcpyAudioCodec.Aac;
|
|
30
|
+
case "flac":
|
|
31
|
+
return ScrcpyAudioCodec.Flac;
|
|
32
|
+
default:
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
34
|
+
throw new Error(`Unknown audio codec: ${audioCodec}`);
|
|
35
|
+
}
|
|
36
|
+
}
|