@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/1_15/impl/init.ts
CHANGED
|
@@ -34,21 +34,21 @@ export class Crop implements ScrcpyOptionValue {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export interface Init {
|
|
37
|
-
logLevel?: LogLevel;
|
|
37
|
+
logLevel?: LogLevel | undefined;
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* The maximum value of both width and height.
|
|
41
41
|
*/
|
|
42
|
-
maxSize?: number;
|
|
42
|
+
maxSize?: number | undefined;
|
|
43
43
|
|
|
44
|
-
bitRate?: number;
|
|
44
|
+
bitRate?: number | undefined;
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* 0 for unlimited.
|
|
48
48
|
*
|
|
49
49
|
* @default 0
|
|
50
50
|
*/
|
|
51
|
-
maxFps?: number;
|
|
51
|
+
maxFps?: number | undefined;
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* The orientation of the video stream.
|
|
@@ -56,7 +56,7 @@ export interface Init {
|
|
|
56
56
|
* It will not keep the device screen in specific orientation,
|
|
57
57
|
* only the captured video will in this orientation.
|
|
58
58
|
*/
|
|
59
|
-
lockVideoOrientation?: VideoOrientation;
|
|
59
|
+
lockVideoOrientation?: VideoOrientation | undefined;
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
62
|
* Use ADB forward tunnel instead of reverse tunnel.
|
|
@@ -66,7 +66,7 @@ export interface Init {
|
|
|
66
66
|
*
|
|
67
67
|
* When using `AdbScrcpyClient`, it can detect this situation and enable this option automatically.
|
|
68
68
|
*/
|
|
69
|
-
tunnelForward?: boolean;
|
|
69
|
+
tunnelForward?: boolean | undefined;
|
|
70
70
|
|
|
71
71
|
crop?: Crop | string | undefined;
|
|
72
72
|
|
|
@@ -81,18 +81,18 @@ export interface Init {
|
|
|
81
81
|
*
|
|
82
82
|
* @default true
|
|
83
83
|
*/
|
|
84
|
-
sendFrameMeta?: boolean;
|
|
84
|
+
sendFrameMeta?: boolean | undefined;
|
|
85
85
|
|
|
86
86
|
/**
|
|
87
87
|
* @default true
|
|
88
88
|
*/
|
|
89
|
-
control?: boolean;
|
|
89
|
+
control?: boolean | undefined;
|
|
90
90
|
|
|
91
|
-
displayId?: number;
|
|
91
|
+
displayId?: number | undefined;
|
|
92
92
|
|
|
93
|
-
showTouches?: boolean;
|
|
93
|
+
showTouches?: boolean | undefined;
|
|
94
94
|
|
|
95
|
-
stayAwake?: boolean;
|
|
95
|
+
stayAwake?: boolean | undefined;
|
|
96
96
|
|
|
97
97
|
codecOptions?: CodecOptions | string | undefined;
|
|
98
98
|
}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "@yume-chan/stream-extra";
|
|
5
5
|
import { buffer, struct, u32, u64 } from "@yume-chan/struct";
|
|
6
6
|
|
|
7
|
-
import type {
|
|
7
|
+
import type { ScrcpyVideoStreamPacket } from "../../base/index.js";
|
|
8
8
|
|
|
9
9
|
import type { Init } from "./init.js";
|
|
10
10
|
|
|
@@ -17,8 +17,8 @@ export const PtsConfig = 1n << 63n;
|
|
|
17
17
|
|
|
18
18
|
export function createMediaStreamTransformer(
|
|
19
19
|
options: Pick<Init, "sendFrameMeta">,
|
|
20
|
-
): TransformStream<Uint8Array,
|
|
21
|
-
//
|
|
20
|
+
): TransformStream<Uint8Array, ScrcpyVideoStreamPacket> {
|
|
21
|
+
// Quick path for raw stream without frame meta
|
|
22
22
|
if (!options.sendFrameMeta) {
|
|
23
23
|
return new TransformStream({
|
|
24
24
|
transform(chunk, controller) {
|
|
@@ -11,7 +11,7 @@ import type {
|
|
|
11
11
|
ScrcpyVideoStream,
|
|
12
12
|
ScrcpyVideoStreamMetadata,
|
|
13
13
|
} from "../../base/index.js";
|
|
14
|
-
import { ScrcpyVideoCodecId } from "../../
|
|
14
|
+
import { ScrcpyVideoCodecId } from "../../video/index.js";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Parse a fixed-length, null-terminated string.
|
|
@@ -44,10 +44,10 @@ export async function parseVideoStreamMetadata(
|
|
|
44
44
|
): Promise<ScrcpyVideoStream> {
|
|
45
45
|
const buffered = new BufferedReadableStream(stream);
|
|
46
46
|
const metadata: ScrcpyVideoStreamMetadata = {
|
|
47
|
+
deviceName: await readString(buffered, 64),
|
|
48
|
+
width: await readU16(buffered),
|
|
49
|
+
height: await readU16(buffered),
|
|
47
50
|
codec: ScrcpyVideoCodecId.H264,
|
|
48
51
|
};
|
|
49
|
-
metadata.deviceName = await readString(buffered, 64);
|
|
50
|
-
metadata.width = await readU16(buffered);
|
|
51
|
-
metadata.height = await readU16(buffered);
|
|
52
52
|
return { stream: buffered.release(), metadata };
|
|
53
53
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { StructInit } from "@yume-chan/struct";
|
|
2
|
+
import { struct, u8 } from "@yume-chan/struct";
|
|
3
|
+
|
|
4
|
+
import { AndroidScreenPowerMode } from "../../android/index.js";
|
|
5
|
+
import type { ScrcpySetDisplayPowerControlMessage } from "../../latest.js";
|
|
6
|
+
|
|
7
|
+
export const SetDisplayPowerControlMessage = struct(
|
|
8
|
+
{
|
|
9
|
+
// value of `type` can change between versions
|
|
10
|
+
type: u8,
|
|
11
|
+
mode: u8<AndroidScreenPowerMode>(),
|
|
12
|
+
},
|
|
13
|
+
{ littleEndian: false },
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
export type SetDisplayPowerControlMessage = StructInit<
|
|
17
|
+
typeof SetDisplayPowerControlMessage
|
|
18
|
+
>;
|
|
19
|
+
|
|
20
|
+
export function serializeSetDisplayPowerControlMessage(
|
|
21
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
22
|
+
) {
|
|
23
|
+
return SetDisplayPowerControlMessage.serialize({
|
|
24
|
+
type: message.type,
|
|
25
|
+
mode: message.on
|
|
26
|
+
? AndroidScreenPowerMode.Normal
|
|
27
|
+
: AndroidScreenPowerMode.Off,
|
|
28
|
+
});
|
|
29
|
+
}
|
package/src/1_15/options.ts
CHANGED
|
@@ -3,21 +3,24 @@ import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
5
|
ScrcpyDisplay,
|
|
6
|
-
ScrcpyMediaStreamPacket,
|
|
7
6
|
ScrcpyOptions,
|
|
8
7
|
ScrcpyScrollController,
|
|
9
8
|
ScrcpyVideoStream,
|
|
9
|
+
ScrcpyVideoStreamPacket,
|
|
10
10
|
} from "../base/index.js";
|
|
11
11
|
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
12
|
+
import type { MapBoolean } from "../base/options.js";
|
|
12
13
|
import type {
|
|
13
14
|
ScrcpyBackOrScreenOnControlMessage,
|
|
14
15
|
ScrcpyInjectTouchControlMessage,
|
|
15
16
|
ScrcpySetClipboardControlMessage,
|
|
17
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
16
18
|
} from "../latest.js";
|
|
17
19
|
|
|
18
|
-
import type { Init } from "./impl/index.js";
|
|
20
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
19
21
|
import {
|
|
20
22
|
ClipboardStream,
|
|
23
|
+
computeOptionValues,
|
|
21
24
|
ControlMessageTypes,
|
|
22
25
|
createMediaStreamTransformer,
|
|
23
26
|
createScrollController,
|
|
@@ -29,21 +32,28 @@ import {
|
|
|
29
32
|
serializeInjectTouchControlMessage,
|
|
30
33
|
SerializeOrder,
|
|
31
34
|
serializeSetClipboardControlMessage,
|
|
35
|
+
serializeSetDisplayPowerControlMessage,
|
|
32
36
|
setListDisplays,
|
|
33
37
|
} from "./impl/index.js";
|
|
34
38
|
|
|
35
|
-
export class ScrcpyOptions1_15
|
|
39
|
+
export class ScrcpyOptions1_15<
|
|
40
|
+
TInit extends Init = Init,
|
|
41
|
+
> implements ScrcpyOptions<ScrcpyOptions1_15.Value<TInit>> {
|
|
36
42
|
static readonly Defaults = Defaults;
|
|
37
43
|
|
|
38
|
-
readonly value:
|
|
44
|
+
readonly value: ScrcpyOptions1_15.Value<TInit>;
|
|
39
45
|
|
|
40
46
|
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
41
47
|
return ControlMessageTypes;
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
#clipboard: ClipboardStream | undefined;
|
|
45
|
-
get clipboard():
|
|
46
|
-
|
|
51
|
+
get clipboard(): MapBoolean<
|
|
52
|
+
this["value"]["control"],
|
|
53
|
+
ReadableStream<string>,
|
|
54
|
+
undefined
|
|
55
|
+
> {
|
|
56
|
+
return this.#clipboard as never;
|
|
47
57
|
}
|
|
48
58
|
|
|
49
59
|
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
@@ -51,8 +61,8 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
|
|
|
51
61
|
return this.#deviceMessageParsers;
|
|
52
62
|
}
|
|
53
63
|
|
|
54
|
-
constructor(init:
|
|
55
|
-
this.value =
|
|
64
|
+
constructor(init: TInit) {
|
|
65
|
+
this.value = computeOptionValues(init, Defaults);
|
|
56
66
|
|
|
57
67
|
if (this.value.control) {
|
|
58
68
|
this.#clipboard = this.#deviceMessageParsers.add(
|
|
@@ -81,7 +91,7 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
|
|
|
81
91
|
|
|
82
92
|
createMediaStreamTransformer(): TransformStream<
|
|
83
93
|
Uint8Array,
|
|
84
|
-
|
|
94
|
+
ScrcpyVideoStreamPacket
|
|
85
95
|
> {
|
|
86
96
|
return createMediaStreamTransformer(this.value);
|
|
87
97
|
}
|
|
@@ -89,22 +99,43 @@ export class ScrcpyOptions1_15 implements ScrcpyOptions<Init> {
|
|
|
89
99
|
serializeInjectTouchControlMessage(
|
|
90
100
|
message: ScrcpyInjectTouchControlMessage,
|
|
91
101
|
): Uint8Array {
|
|
102
|
+
if (!this.value.control) {
|
|
103
|
+
throw new Error("control is disabled");
|
|
104
|
+
}
|
|
92
105
|
return serializeInjectTouchControlMessage(message);
|
|
93
106
|
}
|
|
94
107
|
|
|
95
108
|
serializeBackOrScreenOnControlMessage(
|
|
96
109
|
message: ScrcpyBackOrScreenOnControlMessage,
|
|
97
110
|
): Uint8Array | undefined {
|
|
111
|
+
if (!this.value.control) {
|
|
112
|
+
throw new Error("control is disabled");
|
|
113
|
+
}
|
|
98
114
|
return serializeBackOrScreenOnControlMessage(message);
|
|
99
115
|
}
|
|
100
116
|
|
|
101
117
|
serializeSetClipboardControlMessage(
|
|
102
118
|
message: ScrcpySetClipboardControlMessage,
|
|
103
119
|
): Uint8Array {
|
|
120
|
+
if (!this.value.control) {
|
|
121
|
+
throw new Error("control is disabled");
|
|
122
|
+
}
|
|
104
123
|
return serializeSetClipboardControlMessage(message);
|
|
105
124
|
}
|
|
106
125
|
|
|
126
|
+
serializeSetDisplayPowerControlMessage(
|
|
127
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
128
|
+
): Uint8Array {
|
|
129
|
+
if (!this.value.control) {
|
|
130
|
+
throw new Error("control is disabled");
|
|
131
|
+
}
|
|
132
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
133
|
+
}
|
|
134
|
+
|
|
107
135
|
createScrollController(): ScrcpyScrollController {
|
|
136
|
+
if (!this.value.control) {
|
|
137
|
+
throw new Error("control is disabled");
|
|
138
|
+
}
|
|
108
139
|
return createScrollController();
|
|
109
140
|
}
|
|
110
141
|
}
|
|
@@ -113,4 +144,9 @@ type Init_ = Init;
|
|
|
113
144
|
|
|
114
145
|
export namespace ScrcpyOptions1_15 {
|
|
115
146
|
export type Init = Init_;
|
|
147
|
+
|
|
148
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
149
|
+
TInit,
|
|
150
|
+
typeof Defaults
|
|
151
|
+
>;
|
|
116
152
|
}
|
package/src/1_17/options.ts
CHANGED
|
@@ -2,24 +2,27 @@ 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
|
ScrcpyDisplay,
|
|
6
7
|
ScrcpyEncoder,
|
|
7
|
-
ScrcpyMediaStreamPacket,
|
|
8
8
|
ScrcpyOptions,
|
|
9
9
|
ScrcpyOptionsListEncoders,
|
|
10
10
|
ScrcpyScrollController,
|
|
11
11
|
ScrcpyVideoStream,
|
|
12
|
+
ScrcpyVideoStreamPacket,
|
|
12
13
|
} from "../base/index.js";
|
|
13
14
|
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
14
15
|
import type {
|
|
15
16
|
ScrcpyBackOrScreenOnControlMessage,
|
|
16
17
|
ScrcpyInjectTouchControlMessage,
|
|
17
18
|
ScrcpySetClipboardControlMessage,
|
|
19
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
18
20
|
} from "../latest.js";
|
|
19
21
|
|
|
20
|
-
import type { Init } from "./impl/index.js";
|
|
22
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
21
23
|
import {
|
|
22
24
|
ClipboardStream,
|
|
25
|
+
computeOptionValues,
|
|
23
26
|
ControlMessageTypes,
|
|
24
27
|
createMediaStreamTransformer,
|
|
25
28
|
createScrollController,
|
|
@@ -33,24 +36,31 @@ import {
|
|
|
33
36
|
serializeInjectTouchControlMessage,
|
|
34
37
|
SerializeOrder,
|
|
35
38
|
serializeSetClipboardControlMessage,
|
|
39
|
+
serializeSetDisplayPowerControlMessage,
|
|
36
40
|
setListDisplays,
|
|
37
41
|
setListEncoders,
|
|
38
42
|
} from "./impl/index.js";
|
|
39
43
|
|
|
40
|
-
export class ScrcpyOptions1_17
|
|
41
|
-
implements
|
|
44
|
+
export class ScrcpyOptions1_17<TInit extends Init = Init>
|
|
45
|
+
implements
|
|
46
|
+
ScrcpyOptions<ScrcpyOptions1_17.Value<TInit>>,
|
|
47
|
+
ScrcpyOptionsListEncoders
|
|
42
48
|
{
|
|
43
49
|
static readonly Defaults = Defaults;
|
|
44
50
|
|
|
45
|
-
readonly value:
|
|
51
|
+
readonly value: ScrcpyOptions1_17.Value<TInit>;
|
|
46
52
|
|
|
47
53
|
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
48
54
|
return ControlMessageTypes;
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
#clipboard: ClipboardStream | undefined;
|
|
52
|
-
get clipboard():
|
|
53
|
-
|
|
58
|
+
get clipboard(): MapBoolean<
|
|
59
|
+
this["value"]["control"],
|
|
60
|
+
ReadableStream<string>,
|
|
61
|
+
undefined
|
|
62
|
+
> {
|
|
63
|
+
return this.#clipboard as never;
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
@@ -58,8 +68,8 @@ export class ScrcpyOptions1_17
|
|
|
58
68
|
return this.#deviceMessageParsers;
|
|
59
69
|
}
|
|
60
70
|
|
|
61
|
-
constructor(init:
|
|
62
|
-
this.value =
|
|
71
|
+
constructor(init: TInit) {
|
|
72
|
+
this.value = computeOptionValues(init, Defaults);
|
|
63
73
|
|
|
64
74
|
if (this.value.control) {
|
|
65
75
|
this.#clipboard = this.#deviceMessageParsers.add(
|
|
@@ -96,7 +106,7 @@ export class ScrcpyOptions1_17
|
|
|
96
106
|
|
|
97
107
|
createMediaStreamTransformer(): TransformStream<
|
|
98
108
|
Uint8Array,
|
|
99
|
-
|
|
109
|
+
ScrcpyVideoStreamPacket
|
|
100
110
|
> {
|
|
101
111
|
return createMediaStreamTransformer(this.value);
|
|
102
112
|
}
|
|
@@ -104,22 +114,43 @@ export class ScrcpyOptions1_17
|
|
|
104
114
|
serializeInjectTouchControlMessage(
|
|
105
115
|
message: ScrcpyInjectTouchControlMessage,
|
|
106
116
|
): Uint8Array {
|
|
117
|
+
if (!this.value.control) {
|
|
118
|
+
throw new Error("control is disabled");
|
|
119
|
+
}
|
|
107
120
|
return serializeInjectTouchControlMessage(message);
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
serializeBackOrScreenOnControlMessage(
|
|
111
124
|
message: ScrcpyBackOrScreenOnControlMessage,
|
|
112
125
|
): Uint8Array | undefined {
|
|
126
|
+
if (!this.value.control) {
|
|
127
|
+
throw new Error("control is disabled");
|
|
128
|
+
}
|
|
113
129
|
return serializeBackOrScreenOnControlMessage(message);
|
|
114
130
|
}
|
|
115
131
|
|
|
116
132
|
serializeSetClipboardControlMessage(
|
|
117
133
|
message: ScrcpySetClipboardControlMessage,
|
|
118
134
|
): Uint8Array {
|
|
135
|
+
if (!this.value.control) {
|
|
136
|
+
throw new Error("control is disabled");
|
|
137
|
+
}
|
|
119
138
|
return serializeSetClipboardControlMessage(message);
|
|
120
139
|
}
|
|
121
140
|
|
|
141
|
+
serializeSetDisplayPowerControlMessage(
|
|
142
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
143
|
+
): Uint8Array {
|
|
144
|
+
if (!this.value.control) {
|
|
145
|
+
throw new Error("control is disabled");
|
|
146
|
+
}
|
|
147
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
148
|
+
}
|
|
149
|
+
|
|
122
150
|
createScrollController(): ScrcpyScrollController {
|
|
151
|
+
if (!this.value.control) {
|
|
152
|
+
throw new Error("control is disabled");
|
|
153
|
+
}
|
|
123
154
|
return createScrollController();
|
|
124
155
|
}
|
|
125
156
|
}
|
|
@@ -128,4 +159,9 @@ type Init_ = Init;
|
|
|
128
159
|
|
|
129
160
|
export namespace ScrcpyOptions1_17 {
|
|
130
161
|
export type Init = Init_;
|
|
162
|
+
|
|
163
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
164
|
+
TInit,
|
|
165
|
+
typeof Defaults
|
|
166
|
+
>;
|
|
131
167
|
}
|
package/src/1_18/impl/init.ts
CHANGED
|
@@ -18,9 +18,9 @@ export interface Init extends Omit<
|
|
|
18
18
|
PrevImpl.Init,
|
|
19
19
|
"logLevel" | "lockVideoOrientation"
|
|
20
20
|
> {
|
|
21
|
-
logLevel?: LogLevel;
|
|
21
|
+
logLevel?: LogLevel | undefined;
|
|
22
22
|
|
|
23
|
-
lockVideoOrientation?: VideoOrientation;
|
|
23
|
+
lockVideoOrientation?: VideoOrientation | undefined;
|
|
24
24
|
|
|
25
|
-
powerOffOnClose?: boolean;
|
|
25
|
+
powerOffOnClose?: boolean | undefined;
|
|
26
26
|
}
|
package/src/1_18/options.ts
CHANGED
|
@@ -2,24 +2,27 @@ 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
|
ScrcpyDisplay,
|
|
6
7
|
ScrcpyEncoder,
|
|
7
|
-
ScrcpyMediaStreamPacket,
|
|
8
8
|
ScrcpyOptions,
|
|
9
9
|
ScrcpyOptionsListEncoders,
|
|
10
10
|
ScrcpyScrollController,
|
|
11
11
|
ScrcpyVideoStream,
|
|
12
|
+
ScrcpyVideoStreamPacket,
|
|
12
13
|
} from "../base/index.js";
|
|
13
14
|
import { ScrcpyDeviceMessageParsers } from "../base/index.js";
|
|
14
15
|
import type {
|
|
15
16
|
ScrcpyBackOrScreenOnControlMessage,
|
|
16
17
|
ScrcpyInjectTouchControlMessage,
|
|
17
18
|
ScrcpySetClipboardControlMessage,
|
|
19
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
18
20
|
} from "../latest.js";
|
|
19
21
|
|
|
20
|
-
import type { Init } from "./impl/index.js";
|
|
22
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
21
23
|
import {
|
|
22
24
|
ClipboardStream,
|
|
25
|
+
computeOptionValues,
|
|
23
26
|
ControlMessageTypes,
|
|
24
27
|
createMediaStreamTransformer,
|
|
25
28
|
createScrollController,
|
|
@@ -33,24 +36,31 @@ import {
|
|
|
33
36
|
serializeInjectTouchControlMessage,
|
|
34
37
|
SerializeOrder,
|
|
35
38
|
serializeSetClipboardControlMessage,
|
|
39
|
+
serializeSetDisplayPowerControlMessage,
|
|
36
40
|
setListDisplays,
|
|
37
41
|
setListEncoders,
|
|
38
42
|
} from "./impl/index.js";
|
|
39
43
|
|
|
40
|
-
export class ScrcpyOptions1_18
|
|
41
|
-
implements
|
|
44
|
+
export class ScrcpyOptions1_18<TInit extends Init = Init>
|
|
45
|
+
implements
|
|
46
|
+
ScrcpyOptions<ScrcpyOptions1_18.Value<TInit>>,
|
|
47
|
+
ScrcpyOptionsListEncoders
|
|
42
48
|
{
|
|
43
49
|
static readonly Defaults = Defaults;
|
|
44
50
|
|
|
45
|
-
readonly value:
|
|
51
|
+
readonly value: ScrcpyOptions1_18.Value<TInit>;
|
|
46
52
|
|
|
47
53
|
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
48
54
|
return ControlMessageTypes;
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
#clipboard: ClipboardStream | undefined;
|
|
52
|
-
get clipboard():
|
|
53
|
-
|
|
58
|
+
get clipboard(): MapBoolean<
|
|
59
|
+
this["value"]["control"],
|
|
60
|
+
ReadableStream<string>,
|
|
61
|
+
undefined
|
|
62
|
+
> {
|
|
63
|
+
return this.#clipboard as never;
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
@@ -58,8 +68,8 @@ export class ScrcpyOptions1_18
|
|
|
58
68
|
return this.#deviceMessageParsers;
|
|
59
69
|
}
|
|
60
70
|
|
|
61
|
-
constructor(init:
|
|
62
|
-
this.value =
|
|
71
|
+
constructor(init: TInit) {
|
|
72
|
+
this.value = computeOptionValues(init, Defaults);
|
|
63
73
|
|
|
64
74
|
if (this.value.control) {
|
|
65
75
|
this.#clipboard = this.#deviceMessageParsers.add(
|
|
@@ -96,7 +106,7 @@ export class ScrcpyOptions1_18
|
|
|
96
106
|
|
|
97
107
|
createMediaStreamTransformer(): TransformStream<
|
|
98
108
|
Uint8Array,
|
|
99
|
-
|
|
109
|
+
ScrcpyVideoStreamPacket
|
|
100
110
|
> {
|
|
101
111
|
return createMediaStreamTransformer(this.value);
|
|
102
112
|
}
|
|
@@ -104,22 +114,43 @@ export class ScrcpyOptions1_18
|
|
|
104
114
|
serializeInjectTouchControlMessage(
|
|
105
115
|
message: ScrcpyInjectTouchControlMessage,
|
|
106
116
|
): Uint8Array {
|
|
117
|
+
if (!this.value.control) {
|
|
118
|
+
throw new Error("control is disabled");
|
|
119
|
+
}
|
|
107
120
|
return serializeInjectTouchControlMessage(message);
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
serializeBackOrScreenOnControlMessage(
|
|
111
124
|
message: ScrcpyBackOrScreenOnControlMessage,
|
|
112
125
|
): Uint8Array | undefined {
|
|
126
|
+
if (!this.value.control) {
|
|
127
|
+
throw new Error("control is disabled");
|
|
128
|
+
}
|
|
113
129
|
return serializeBackOrScreenOnControlMessage(message);
|
|
114
130
|
}
|
|
115
131
|
|
|
116
132
|
serializeSetClipboardControlMessage(
|
|
117
133
|
message: ScrcpySetClipboardControlMessage,
|
|
118
134
|
): Uint8Array {
|
|
135
|
+
if (!this.value.control) {
|
|
136
|
+
throw new Error("control is disabled");
|
|
137
|
+
}
|
|
119
138
|
return serializeSetClipboardControlMessage(message);
|
|
120
139
|
}
|
|
121
140
|
|
|
141
|
+
serializeSetDisplayPowerControlMessage(
|
|
142
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
143
|
+
): Uint8Array {
|
|
144
|
+
if (!this.value.control) {
|
|
145
|
+
throw new Error("control is disabled");
|
|
146
|
+
}
|
|
147
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
148
|
+
}
|
|
149
|
+
|
|
122
150
|
createScrollController(): ScrcpyScrollController {
|
|
151
|
+
if (!this.value.control) {
|
|
152
|
+
throw new Error("control is disabled");
|
|
153
|
+
}
|
|
123
154
|
return createScrollController();
|
|
124
155
|
}
|
|
125
156
|
}
|
|
@@ -128,4 +159,9 @@ type Init_ = Init;
|
|
|
128
159
|
|
|
129
160
|
export namespace ScrcpyOptions1_18 {
|
|
130
161
|
export type Init = Init_;
|
|
162
|
+
|
|
163
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
164
|
+
TInit,
|
|
165
|
+
typeof Defaults
|
|
166
|
+
>;
|
|
131
167
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { PrevImpl } from "./prev.js";
|
|
2
|
+
|
|
3
|
+
// Distributive Conditional Types
|
|
4
|
+
// (https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types)
|
|
5
|
+
type ComputeClipboardAutosync<TControl, TClipboardAutosync> =
|
|
6
|
+
TControl extends false ? false : TClipboardAutosync;
|
|
7
|
+
|
|
8
|
+
export type OverrideClipboardAutosync<T> = Omit<T, "clipboardAutosync"> & {
|
|
9
|
+
clipboardAutosync: ComputeClipboardAutosync<
|
|
10
|
+
T extends { control: infer TControl } ? TControl : never,
|
|
11
|
+
T extends { clipboardAutosync: infer TClipboardAutosync }
|
|
12
|
+
? TClipboardAutosync
|
|
13
|
+
: never
|
|
14
|
+
>;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type ComputeOptionTypes<
|
|
18
|
+
T extends object,
|
|
19
|
+
TDefaults extends object,
|
|
20
|
+
> = OverrideClipboardAutosync<PrevImpl.ComputeOptionTypes<T, TDefaults>>;
|
|
21
|
+
|
|
22
|
+
export function overrideClipboardAutosync<
|
|
23
|
+
T extends { control: boolean; clipboardAutosync: boolean },
|
|
24
|
+
>(value: T) {
|
|
25
|
+
if (!value.control) {
|
|
26
|
+
value.clipboardAutosync = false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function computeOptionValues<
|
|
31
|
+
T extends {
|
|
32
|
+
control?: boolean | undefined;
|
|
33
|
+
clipboardAutosync?: boolean | undefined;
|
|
34
|
+
},
|
|
35
|
+
TDefaults extends {
|
|
36
|
+
control: boolean;
|
|
37
|
+
clipboardAutosync: boolean;
|
|
38
|
+
},
|
|
39
|
+
>(options: T, defaults: TDefaults): ComputeOptionTypes<T, TDefaults> {
|
|
40
|
+
const value = PrevImpl.computeOptionValues(options, defaults);
|
|
41
|
+
overrideClipboardAutosync(value as never);
|
|
42
|
+
return value as never;
|
|
43
|
+
}
|
package/src/1_21/impl/index.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export * from "../../1_18/impl/index.js";
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
computeOptionValues,
|
|
5
|
+
overrideClipboardAutosync,
|
|
6
|
+
} from "./compute-option-values.js";
|
|
7
|
+
export type {
|
|
8
|
+
ComputeOptionTypes,
|
|
9
|
+
OverrideClipboardAutosync,
|
|
10
|
+
} from "./compute-option-values.js";
|
|
2
11
|
export { Defaults } from "./defaults.js";
|
|
3
12
|
export type { Init } from "./init.js";
|
|
4
13
|
export { EncoderRegex } from "./parse-encoder.js";
|
|
@@ -6,6 +15,6 @@ export { serialize } from "./serialize.js";
|
|
|
6
15
|
export {
|
|
7
16
|
AckClipboardDeviceMessage,
|
|
8
17
|
AckClipboardHandler,
|
|
9
|
-
SetClipboardControlMessage,
|
|
10
18
|
serializeSetClipboardControlMessage,
|
|
19
|
+
SetClipboardControlMessage,
|
|
11
20
|
} from "./set-clipboard.js";
|
package/src/1_21/impl/init.ts
CHANGED
|
@@ -5,9 +5,9 @@ function toSnakeCase(input: string): string {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
// 1.21 changed the format of arguments
|
|
8
|
-
export function serialize<T extends object>(
|
|
8
|
+
export function serialize<T extends object, TDefaults extends object>(
|
|
9
9
|
options: T,
|
|
10
|
-
defaults:
|
|
10
|
+
defaults: TDefaults,
|
|
11
11
|
): string[] {
|
|
12
12
|
const result: string[] = [];
|
|
13
13
|
for (const [key, value] of Object.entries(options)) {
|
|
@@ -18,7 +18,7 @@ export function serialize<T extends object>(
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
const defaultValue = toScrcpyOptionValue(
|
|
21
|
-
defaults[key as keyof
|
|
21
|
+
defaults[key as keyof TDefaults],
|
|
22
22
|
undefined,
|
|
23
23
|
);
|
|
24
24
|
if (serializedValue === defaultValue) {
|