@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/4_0/index.ts
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
|
+
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
|
+
|
|
4
|
+
import type { ScrcpyAudioStreamMetadata } from "../base/audio.js";
|
|
5
|
+
import { ScrcpyDeviceMessageParsers } from "../base/device-message.js";
|
|
6
|
+
import type { ScrcpyDisplay } from "../base/display.js";
|
|
7
|
+
import type { ScrcpyEncoder } from "../base/encoder.js";
|
|
8
|
+
import type { ScrcpyVideoStreamPacket } from "../base/media.js";
|
|
9
|
+
import type {
|
|
10
|
+
MapBoolean,
|
|
11
|
+
ScrcpyOptions,
|
|
12
|
+
ScrcpyOptionsListEncoders,
|
|
13
|
+
} from "../base/options.js";
|
|
14
|
+
import type { ScrcpyScrollController } from "../base/scroll-controller.js";
|
|
15
|
+
import type { ScrcpyVideoStream } from "../base/video.js";
|
|
16
|
+
import type {
|
|
17
|
+
ScrcpyBackOrScreenOnControlMessage,
|
|
18
|
+
ScrcpyInjectTouchControlMessage,
|
|
19
|
+
ScrcpySetClipboardControlMessage,
|
|
20
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
21
|
+
ScrcpyUHidCreateControlMessage,
|
|
22
|
+
ScrcpyUHidOutputDeviceMessage,
|
|
23
|
+
} from "../latest.js";
|
|
24
|
+
|
|
25
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
26
|
+
import {
|
|
27
|
+
AckClipboardHandler,
|
|
28
|
+
ClipboardStream,
|
|
29
|
+
computeOptionValues,
|
|
30
|
+
ControlMessageTypes,
|
|
31
|
+
createMediaStreamTransformer,
|
|
32
|
+
createScrollController,
|
|
33
|
+
Defaults,
|
|
34
|
+
parseAudioCodecOption,
|
|
35
|
+
parseAudioMetadataCodec,
|
|
36
|
+
parseAudioStreamMetadata,
|
|
37
|
+
parseDisplay,
|
|
38
|
+
parseEncoder,
|
|
39
|
+
parseVideoCodecOption,
|
|
40
|
+
parseVideoStreamMetadata,
|
|
41
|
+
parseVideoStreamMetadataAsync,
|
|
42
|
+
serialize,
|
|
43
|
+
serializeBackOrScreenOnControlMessage,
|
|
44
|
+
serializeInjectTouchControlMessage,
|
|
45
|
+
serializeSetClipboardControlMessage,
|
|
46
|
+
serializeSetDisplayPowerControlMessage,
|
|
47
|
+
serializeUHidCreateControlMessage,
|
|
48
|
+
setListDisplays,
|
|
49
|
+
setListEncoders,
|
|
50
|
+
UHidOutputStream,
|
|
51
|
+
} from "./impl/index.js";
|
|
52
|
+
|
|
53
|
+
export class ScrcpyOptions4_0<TInit extends Init = Init>
|
|
54
|
+
implements
|
|
55
|
+
ScrcpyOptions<ComputeOptionTypes<TInit, typeof Defaults>>,
|
|
56
|
+
ScrcpyOptionsListEncoders
|
|
57
|
+
{
|
|
58
|
+
static readonly Defaults = Defaults;
|
|
59
|
+
|
|
60
|
+
readonly value: ComputeOptionTypes<TInit, typeof Defaults>;
|
|
61
|
+
|
|
62
|
+
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
63
|
+
return ControlMessageTypes;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#clipboard: ClipboardStream | undefined;
|
|
67
|
+
get clipboard(): MapBoolean<
|
|
68
|
+
this["value"]["clipboardAutosync"],
|
|
69
|
+
ReadableStream<string>,
|
|
70
|
+
undefined
|
|
71
|
+
> {
|
|
72
|
+
return this.#clipboard as never;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
#ackClipboardHandler: AckClipboardHandler | undefined;
|
|
76
|
+
|
|
77
|
+
#uHidOutput: UHidOutputStream | undefined;
|
|
78
|
+
get uHidOutput(): MapBoolean<
|
|
79
|
+
this["value"]["control"],
|
|
80
|
+
ReadableStream<ScrcpyUHidOutputDeviceMessage>,
|
|
81
|
+
undefined
|
|
82
|
+
> {
|
|
83
|
+
return this.#uHidOutput as never;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
87
|
+
get deviceMessageParsers() {
|
|
88
|
+
return this.#deviceMessageParsers;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
constructor(init: TInit) {
|
|
92
|
+
this.value = computeOptionValues(init, Defaults);
|
|
93
|
+
|
|
94
|
+
if (this.value.control) {
|
|
95
|
+
if (this.value.clipboardAutosync) {
|
|
96
|
+
this.#clipboard = this.#deviceMessageParsers.add(
|
|
97
|
+
new ClipboardStream(),
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
102
|
+
new AckClipboardHandler(),
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
this.#uHidOutput = this.#deviceMessageParsers.add(
|
|
106
|
+
new UHidOutputStream(),
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
serialize(): string[] {
|
|
112
|
+
return serialize(this.value, Defaults);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
setListDisplays(): void {
|
|
116
|
+
setListDisplays(this.value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
parseDisplay(line: string): ScrcpyDisplay | undefined {
|
|
120
|
+
return parseDisplay(line);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
setListEncoders() {
|
|
124
|
+
setListEncoders(this.value);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
parseEncoder(line: string): ScrcpyEncoder | undefined {
|
|
128
|
+
return parseEncoder(line);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
parseVideoStreamMetadata(
|
|
132
|
+
stream: ReadableStream<Uint8Array>,
|
|
133
|
+
): MaybePromiseLike<ScrcpyVideoStream> {
|
|
134
|
+
return parseVideoStreamMetadata(
|
|
135
|
+
stream,
|
|
136
|
+
this.value.sendDeviceMeta,
|
|
137
|
+
this.value.sendStreamMeta,
|
|
138
|
+
parseVideoCodecOption(this.value.videoCodec),
|
|
139
|
+
parseVideoStreamMetadataAsync,
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
parseAudioStreamMetadata(
|
|
144
|
+
stream: ReadableStream<Uint8Array>,
|
|
145
|
+
): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
|
|
146
|
+
return parseAudioStreamMetadata(
|
|
147
|
+
stream,
|
|
148
|
+
this.value.sendStreamMeta,
|
|
149
|
+
parseAudioMetadataCodec,
|
|
150
|
+
parseAudioCodecOption(this.value.audioCodec),
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
createMediaStreamTransformer(): TransformStream<
|
|
155
|
+
Uint8Array,
|
|
156
|
+
ScrcpyVideoStreamPacket
|
|
157
|
+
> {
|
|
158
|
+
return createMediaStreamTransformer(this.value);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
serializeInjectTouchControlMessage(
|
|
162
|
+
message: ScrcpyInjectTouchControlMessage,
|
|
163
|
+
): Uint8Array {
|
|
164
|
+
if (!this.value.control) {
|
|
165
|
+
throw new Error("control is disabled");
|
|
166
|
+
}
|
|
167
|
+
return serializeInjectTouchControlMessage(message);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
serializeBackOrScreenOnControlMessage(
|
|
171
|
+
message: ScrcpyBackOrScreenOnControlMessage,
|
|
172
|
+
): Uint8Array | undefined {
|
|
173
|
+
if (!this.value.control) {
|
|
174
|
+
throw new Error("control is disabled");
|
|
175
|
+
}
|
|
176
|
+
return serializeBackOrScreenOnControlMessage(message);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
serializeSetClipboardControlMessage(
|
|
180
|
+
message: ScrcpySetClipboardControlMessage,
|
|
181
|
+
): Uint8Array | [Uint8Array, Promise<void>] {
|
|
182
|
+
if (!this.value.control) {
|
|
183
|
+
throw new Error("control is disabled");
|
|
184
|
+
}
|
|
185
|
+
return serializeSetClipboardControlMessage(
|
|
186
|
+
message,
|
|
187
|
+
this.#ackClipboardHandler,
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
serializeSetDisplayPowerControlMessage(
|
|
192
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
193
|
+
): Uint8Array {
|
|
194
|
+
if (!this.value.control) {
|
|
195
|
+
throw new Error("control is disabled");
|
|
196
|
+
}
|
|
197
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
createScrollController(): ScrcpyScrollController {
|
|
201
|
+
if (!this.value.control) {
|
|
202
|
+
throw new Error("control is disabled");
|
|
203
|
+
}
|
|
204
|
+
return createScrollController();
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
serializeUHidCreateControlMessage(
|
|
208
|
+
message: ScrcpyUHidCreateControlMessage,
|
|
209
|
+
): Uint8Array {
|
|
210
|
+
if (!this.value.control) {
|
|
211
|
+
throw new Error("control is disabled");
|
|
212
|
+
}
|
|
213
|
+
return serializeUHidCreateControlMessage(message);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
type Init_ = Init;
|
|
218
|
+
|
|
219
|
+
export namespace ScrcpyOptions4_0 {
|
|
220
|
+
export type Init = Init_;
|
|
221
|
+
|
|
222
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
223
|
+
TInit,
|
|
224
|
+
typeof Defaults
|
|
225
|
+
>;
|
|
226
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ScrcpyControlMessageTypeMap } from "../../base/index.js";
|
|
2
|
+
import { ScrcpyControlMessageType } from "../../base/index.js";
|
|
3
|
+
|
|
4
|
+
export const ControlMessageTypes = {
|
|
5
|
+
[ScrcpyControlMessageType.InjectKeyCode]: 0,
|
|
6
|
+
[ScrcpyControlMessageType.InjectText]: 1,
|
|
7
|
+
[ScrcpyControlMessageType.InjectTouch]: 2,
|
|
8
|
+
[ScrcpyControlMessageType.InjectScroll]: 3,
|
|
9
|
+
[ScrcpyControlMessageType.BackOrScreenOn]: 4,
|
|
10
|
+
[ScrcpyControlMessageType.ExpandNotificationPanel]: 5,
|
|
11
|
+
[ScrcpyControlMessageType.ExpandSettingPanel]: 6,
|
|
12
|
+
[ScrcpyControlMessageType.CollapseNotificationPanel]: 7,
|
|
13
|
+
[ScrcpyControlMessageType.GetClipboard]: 8,
|
|
14
|
+
[ScrcpyControlMessageType.SetClipboard]: 9,
|
|
15
|
+
[ScrcpyControlMessageType.SetDisplayPower]: 10,
|
|
16
|
+
[ScrcpyControlMessageType.RotateDevice]: 11,
|
|
17
|
+
[ScrcpyControlMessageType.UHidCreate]: 12,
|
|
18
|
+
[ScrcpyControlMessageType.UHidInput]: 13,
|
|
19
|
+
[ScrcpyControlMessageType.UHidDestroy]: 14,
|
|
20
|
+
[ScrcpyControlMessageType.OpenHardKeyboardSettings]: 15,
|
|
21
|
+
[ScrcpyControlMessageType.StartApp]: 16,
|
|
22
|
+
[ScrcpyControlMessageType.ResetVideo]: 17,
|
|
23
|
+
[ScrcpyControlMessageType.CameraSetTorch]: 18,
|
|
24
|
+
[ScrcpyControlMessageType.CameraZoomIn]: 19,
|
|
25
|
+
[ScrcpyControlMessageType.CameraZoomOut]: 20,
|
|
26
|
+
[ScrcpyControlMessageType.ResizeDisplay]: 21,
|
|
27
|
+
[ScrcpyControlMessageType.ScanFile]: 22,
|
|
28
|
+
} as const satisfies ScrcpyControlMessageTypeMap;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "../../4_0/impl/index.js";
|
|
2
|
+
|
|
3
|
+
export { ControlMessageTypes } from "./control-message-types.js";
|
|
4
|
+
export { Defaults } from "./defaults.js";
|
|
5
|
+
export type { Init } from "./init.js";
|
|
6
|
+
export { parseVideoCodecOption } from "./parse-video-stream-metadata.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ScrcpyVideoCodecId } from "../../video/index.js";
|
|
2
|
+
|
|
3
|
+
import type { Init } from "./init.js";
|
|
4
|
+
|
|
5
|
+
export function parseVideoCodecOption(
|
|
6
|
+
codec: Exclude<Init["videoCodec"], undefined>,
|
|
7
|
+
): ScrcpyVideoCodecId {
|
|
8
|
+
switch (codec) {
|
|
9
|
+
case "h264":
|
|
10
|
+
return ScrcpyVideoCodecId.H264;
|
|
11
|
+
case "h265":
|
|
12
|
+
return ScrcpyVideoCodecId.H265;
|
|
13
|
+
case "av1":
|
|
14
|
+
return ScrcpyVideoCodecId.Av1;
|
|
15
|
+
case "vp8":
|
|
16
|
+
return ScrcpyVideoCodecId.Vp8;
|
|
17
|
+
case "vp9":
|
|
18
|
+
return ScrcpyVideoCodecId.Vp9;
|
|
19
|
+
default:
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
21
|
+
throw new Error(`Unknown video codec: ${codec}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as PrevImpl from "../../4_0/impl/index.js";
|
package/src/4_1/index.ts
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import type { MaybePromiseLike } from "@yume-chan/async";
|
|
2
|
+
import type { ReadableStream, TransformStream } from "@yume-chan/stream-extra";
|
|
3
|
+
|
|
4
|
+
import type { ScrcpyAudioStreamMetadata } from "../base/audio.js";
|
|
5
|
+
import { ScrcpyDeviceMessageParsers } from "../base/device-message.js";
|
|
6
|
+
import type { ScrcpyDisplay } from "../base/display.js";
|
|
7
|
+
import type { ScrcpyEncoder } from "../base/encoder.js";
|
|
8
|
+
import type { ScrcpyVideoStreamPacket } from "../base/media.js";
|
|
9
|
+
import type {
|
|
10
|
+
MapBoolean,
|
|
11
|
+
ScrcpyOptions,
|
|
12
|
+
ScrcpyOptionsListEncoders,
|
|
13
|
+
} from "../base/options.js";
|
|
14
|
+
import type { ScrcpyScrollController } from "../base/scroll-controller.js";
|
|
15
|
+
import type { ScrcpyVideoStream } from "../base/video.js";
|
|
16
|
+
import type {
|
|
17
|
+
ScrcpyBackOrScreenOnControlMessage,
|
|
18
|
+
ScrcpyInjectTouchControlMessage,
|
|
19
|
+
ScrcpySetClipboardControlMessage,
|
|
20
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
21
|
+
ScrcpyUHidCreateControlMessage,
|
|
22
|
+
ScrcpyUHidOutputDeviceMessage,
|
|
23
|
+
} from "../latest.js";
|
|
24
|
+
|
|
25
|
+
import type { ComputeOptionTypes, Init } from "./impl/index.js";
|
|
26
|
+
import {
|
|
27
|
+
AckClipboardHandler,
|
|
28
|
+
ClipboardStream,
|
|
29
|
+
computeOptionValues,
|
|
30
|
+
ControlMessageTypes,
|
|
31
|
+
createMediaStreamTransformer,
|
|
32
|
+
createScrollController,
|
|
33
|
+
Defaults,
|
|
34
|
+
parseAudioCodecOption,
|
|
35
|
+
parseAudioMetadataCodec,
|
|
36
|
+
parseAudioStreamMetadata,
|
|
37
|
+
parseDisplay,
|
|
38
|
+
parseEncoder,
|
|
39
|
+
parseVideoCodecOption,
|
|
40
|
+
parseVideoStreamMetadata,
|
|
41
|
+
parseVideoStreamMetadataAsync,
|
|
42
|
+
serialize,
|
|
43
|
+
serializeBackOrScreenOnControlMessage,
|
|
44
|
+
serializeInjectTouchControlMessage,
|
|
45
|
+
serializeSetClipboardControlMessage,
|
|
46
|
+
serializeSetDisplayPowerControlMessage,
|
|
47
|
+
serializeUHidCreateControlMessage,
|
|
48
|
+
setListDisplays,
|
|
49
|
+
setListEncoders,
|
|
50
|
+
UHidOutputStream,
|
|
51
|
+
} from "./impl/index.js";
|
|
52
|
+
|
|
53
|
+
export class ScrcpyOptions4_1<TInit extends Init = Init>
|
|
54
|
+
implements
|
|
55
|
+
ScrcpyOptions<ComputeOptionTypes<TInit, typeof Defaults>>,
|
|
56
|
+
ScrcpyOptionsListEncoders
|
|
57
|
+
{
|
|
58
|
+
static readonly Defaults = Defaults;
|
|
59
|
+
|
|
60
|
+
readonly value: ComputeOptionTypes<TInit, typeof Defaults>;
|
|
61
|
+
|
|
62
|
+
get controlMessageTypes(): typeof ControlMessageTypes {
|
|
63
|
+
return ControlMessageTypes;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#clipboard: ClipboardStream | undefined;
|
|
67
|
+
get clipboard(): MapBoolean<
|
|
68
|
+
this["value"]["clipboardAutosync"],
|
|
69
|
+
ReadableStream<string>,
|
|
70
|
+
undefined
|
|
71
|
+
> {
|
|
72
|
+
return this.#clipboard as never;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
#ackClipboardHandler: AckClipboardHandler | undefined;
|
|
76
|
+
|
|
77
|
+
#uHidOutput: UHidOutputStream | undefined;
|
|
78
|
+
get uHidOutput(): MapBoolean<
|
|
79
|
+
this["value"]["control"],
|
|
80
|
+
ReadableStream<ScrcpyUHidOutputDeviceMessage>,
|
|
81
|
+
undefined
|
|
82
|
+
> {
|
|
83
|
+
return this.#uHidOutput as never;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#deviceMessageParsers = new ScrcpyDeviceMessageParsers();
|
|
87
|
+
get deviceMessageParsers() {
|
|
88
|
+
return this.#deviceMessageParsers;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
constructor(init: TInit) {
|
|
92
|
+
this.value = computeOptionValues(init, Defaults);
|
|
93
|
+
|
|
94
|
+
if (this.value.control) {
|
|
95
|
+
if (this.value.clipboardAutosync) {
|
|
96
|
+
this.#clipboard = this.#deviceMessageParsers.add(
|
|
97
|
+
new ClipboardStream(),
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
this.#ackClipboardHandler = this.#deviceMessageParsers.add(
|
|
102
|
+
new AckClipboardHandler(),
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
this.#uHidOutput = this.#deviceMessageParsers.add(
|
|
106
|
+
new UHidOutputStream(),
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
serialize(): string[] {
|
|
112
|
+
return serialize(this.value, Defaults);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
setListDisplays(): void {
|
|
116
|
+
setListDisplays(this.value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
parseDisplay(line: string): ScrcpyDisplay | undefined {
|
|
120
|
+
return parseDisplay(line);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
setListEncoders() {
|
|
124
|
+
setListEncoders(this.value);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
parseEncoder(line: string): ScrcpyEncoder | undefined {
|
|
128
|
+
return parseEncoder(line);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
parseVideoStreamMetadata(
|
|
132
|
+
stream: ReadableStream<Uint8Array>,
|
|
133
|
+
): MaybePromiseLike<ScrcpyVideoStream> {
|
|
134
|
+
return parseVideoStreamMetadata(
|
|
135
|
+
stream,
|
|
136
|
+
this.value.sendDeviceMeta,
|
|
137
|
+
this.value.sendStreamMeta,
|
|
138
|
+
parseVideoCodecOption(this.value.videoCodec),
|
|
139
|
+
parseVideoStreamMetadataAsync,
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
parseAudioStreamMetadata(
|
|
144
|
+
stream: ReadableStream<Uint8Array>,
|
|
145
|
+
): MaybePromiseLike<ScrcpyAudioStreamMetadata> {
|
|
146
|
+
return parseAudioStreamMetadata(
|
|
147
|
+
stream,
|
|
148
|
+
this.value.sendStreamMeta,
|
|
149
|
+
parseAudioMetadataCodec,
|
|
150
|
+
parseAudioCodecOption(this.value.audioCodec),
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
createMediaStreamTransformer(): TransformStream<
|
|
155
|
+
Uint8Array,
|
|
156
|
+
ScrcpyVideoStreamPacket
|
|
157
|
+
> {
|
|
158
|
+
return createMediaStreamTransformer(this.value);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
serializeInjectTouchControlMessage(
|
|
162
|
+
message: ScrcpyInjectTouchControlMessage,
|
|
163
|
+
): Uint8Array {
|
|
164
|
+
if (!this.value.control) {
|
|
165
|
+
throw new Error("control is disabled");
|
|
166
|
+
}
|
|
167
|
+
return serializeInjectTouchControlMessage(message);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
serializeBackOrScreenOnControlMessage(
|
|
171
|
+
message: ScrcpyBackOrScreenOnControlMessage,
|
|
172
|
+
): Uint8Array | undefined {
|
|
173
|
+
if (!this.value.control) {
|
|
174
|
+
throw new Error("control is disabled");
|
|
175
|
+
}
|
|
176
|
+
return serializeBackOrScreenOnControlMessage(message);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
serializeSetClipboardControlMessage(
|
|
180
|
+
message: ScrcpySetClipboardControlMessage,
|
|
181
|
+
): Uint8Array | [Uint8Array, Promise<void>] {
|
|
182
|
+
if (!this.value.control) {
|
|
183
|
+
throw new Error("control is disabled");
|
|
184
|
+
}
|
|
185
|
+
return serializeSetClipboardControlMessage(
|
|
186
|
+
message,
|
|
187
|
+
this.#ackClipboardHandler,
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
serializeSetDisplayPowerControlMessage(
|
|
192
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
193
|
+
): Uint8Array {
|
|
194
|
+
if (!this.value.control) {
|
|
195
|
+
throw new Error("control is disabled");
|
|
196
|
+
}
|
|
197
|
+
return serializeSetDisplayPowerControlMessage(message);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
createScrollController(): ScrcpyScrollController {
|
|
201
|
+
if (!this.value.control) {
|
|
202
|
+
throw new Error("control is disabled");
|
|
203
|
+
}
|
|
204
|
+
return createScrollController();
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
serializeUHidCreateControlMessage(
|
|
208
|
+
message: ScrcpyUHidCreateControlMessage,
|
|
209
|
+
): Uint8Array {
|
|
210
|
+
if (!this.value.control) {
|
|
211
|
+
throw new Error("control is disabled");
|
|
212
|
+
}
|
|
213
|
+
return serializeUHidCreateControlMessage(message);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
type Init_ = Init;
|
|
218
|
+
|
|
219
|
+
export namespace ScrcpyOptions4_1 {
|
|
220
|
+
export type Init = Init_;
|
|
221
|
+
|
|
222
|
+
export type Value<TInit extends Init> = ComputeOptionTypes<
|
|
223
|
+
TInit,
|
|
224
|
+
typeof Defaults
|
|
225
|
+
>;
|
|
226
|
+
}
|
|
@@ -16,3 +16,8 @@ export const UHidDestroy = 14;
|
|
|
16
16
|
export const OpenHardKeyboardSettings = 15;
|
|
17
17
|
export const StartApp = 16;
|
|
18
18
|
export const ResetVideo = 17;
|
|
19
|
+
export const CameraSetTorch = 18;
|
|
20
|
+
export const CameraZoomIn = 19;
|
|
21
|
+
export const CameraZoomOut = 20;
|
|
22
|
+
export const ResizeDisplay = 21;
|
|
23
|
+
export const ScanFile = 22;
|
package/src/base/media.ts
CHANGED
|
@@ -10,6 +10,15 @@ export interface ScrcpyMediaStreamDataPacket {
|
|
|
10
10
|
data: Uint8Array;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
export interface ScrcpyVideoStreamSessionPacket {
|
|
14
|
+
type: "session";
|
|
15
|
+
isClientResize: boolean;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type ScrcpyAudioStreamPacket =
|
|
21
|
+
ScrcpyMediaStreamConfigurationPacket | ScrcpyMediaStreamDataPacket;
|
|
22
|
+
|
|
23
|
+
export type ScrcpyVideoStreamPacket =
|
|
24
|
+
ScrcpyAudioStreamPacket | ScrcpyVideoStreamSessionPacket;
|
package/src/base/options.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
ScrcpyBackOrScreenOnControlMessage,
|
|
6
6
|
ScrcpyInjectTouchControlMessage,
|
|
7
7
|
ScrcpySetClipboardControlMessage,
|
|
8
|
+
ScrcpySetDisplayPowerControlMessage,
|
|
8
9
|
ScrcpyUHidCreateControlMessage,
|
|
9
10
|
ScrcpyUHidOutputDeviceMessage,
|
|
10
11
|
} from "../latest.js";
|
|
@@ -14,7 +15,7 @@ import type { ScrcpyControlMessageType } from "./control-message-type.js";
|
|
|
14
15
|
import type { ScrcpyDeviceMessageParsers } from "./device-message.js";
|
|
15
16
|
import type { ScrcpyDisplay } from "./display.js";
|
|
16
17
|
import type { ScrcpyEncoder } from "./encoder.js";
|
|
17
|
-
import type {
|
|
18
|
+
import type { ScrcpyVideoStreamPacket } from "./media.js";
|
|
18
19
|
import type { ScrcpyScrollController } from "./scroll-controller.js";
|
|
19
20
|
import type { ScrcpyVideoStream } from "./video.js";
|
|
20
21
|
|
|
@@ -22,16 +23,21 @@ export type ScrcpyControlMessageTypeMap = Partial<
|
|
|
22
23
|
Record<ScrcpyControlMessageType, number>
|
|
23
24
|
>;
|
|
24
25
|
|
|
26
|
+
// Distributive Conditional Types
|
|
27
|
+
// (https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types)
|
|
28
|
+
export type MapBoolean<T extends boolean, TTrue, TFalse> = T extends true
|
|
29
|
+
? TTrue
|
|
30
|
+
: TFalse;
|
|
31
|
+
|
|
25
32
|
export interface ScrcpyOptions<T extends object> {
|
|
26
33
|
get controlMessageTypes(): ScrcpyControlMessageTypeMap;
|
|
27
34
|
|
|
28
|
-
value:
|
|
35
|
+
value: T;
|
|
29
36
|
|
|
30
37
|
readonly clipboard?: ReadableStream<string> | undefined;
|
|
31
38
|
|
|
32
39
|
readonly uHidOutput?:
|
|
33
|
-
|
|
34
|
-
| undefined;
|
|
40
|
+
ReadableStream<ScrcpyUHidOutputDeviceMessage> | undefined;
|
|
35
41
|
|
|
36
42
|
readonly deviceMessageParsers: ScrcpyDeviceMessageParsers;
|
|
37
43
|
|
|
@@ -51,7 +57,7 @@ export interface ScrcpyOptions<T extends object> {
|
|
|
51
57
|
|
|
52
58
|
createMediaStreamTransformer(): TransformStream<
|
|
53
59
|
Uint8Array,
|
|
54
|
-
|
|
60
|
+
ScrcpyVideoStreamPacket
|
|
55
61
|
>;
|
|
56
62
|
|
|
57
63
|
serializeInjectTouchControlMessage(
|
|
@@ -66,6 +72,10 @@ export interface ScrcpyOptions<T extends object> {
|
|
|
66
72
|
message: ScrcpySetClipboardControlMessage,
|
|
67
73
|
): Uint8Array | [Uint8Array, Promise<void>];
|
|
68
74
|
|
|
75
|
+
serializeSetDisplayPowerControlMessage(
|
|
76
|
+
message: ScrcpySetDisplayPowerControlMessage,
|
|
77
|
+
): Uint8Array;
|
|
78
|
+
|
|
69
79
|
createScrollController(): ScrcpyScrollController;
|
|
70
80
|
|
|
71
81
|
serializeUHidCreateControlMessage?(
|
package/src/base/video.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ReadableStream } from "@yume-chan/stream-extra";
|
|
2
2
|
|
|
3
|
+
import type { ScrcpyVideoCodecId } from "../video/index.js";
|
|
4
|
+
|
|
3
5
|
export interface ScrcpyVideoStream {
|
|
4
6
|
readonly stream: ReadableStream<Uint8Array>;
|
|
5
7
|
readonly metadata: ScrcpyVideoStreamMetadata;
|
|
@@ -11,22 +13,3 @@ export interface ScrcpyVideoStreamMetadata {
|
|
|
11
13
|
height?: number | undefined;
|
|
12
14
|
codec: ScrcpyVideoCodecId;
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
export const ScrcpyVideoCodecId = {
|
|
16
|
-
H264: 0x68_32_36_34,
|
|
17
|
-
H265: 0x68_32_36_35,
|
|
18
|
-
AV1: 0x00_61_76_31,
|
|
19
|
-
} as const;
|
|
20
|
-
|
|
21
|
-
export type ScrcpyVideoCodecId =
|
|
22
|
-
(typeof ScrcpyVideoCodecId)[keyof typeof ScrcpyVideoCodecId];
|
|
23
|
-
|
|
24
|
-
export const ScrcpyVideoCodecNameMap = /* #__PURE__ */ (() => {
|
|
25
|
-
const result = new Map<number, string>();
|
|
26
|
-
for (const key in ScrcpyVideoCodecId) {
|
|
27
|
-
const value =
|
|
28
|
-
ScrcpyVideoCodecId[key as keyof typeof ScrcpyVideoCodecId];
|
|
29
|
-
result.set(value, key);
|
|
30
|
-
}
|
|
31
|
-
return result;
|
|
32
|
-
})();
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StructInit } from "@yume-chan/struct";
|
|
2
|
+
import { struct, u8 } from "@yume-chan/struct";
|
|
3
|
+
|
|
4
|
+
export const BooleanControlMessage = struct(
|
|
5
|
+
{ type: u8, value: u8<boolean>() },
|
|
6
|
+
{ littleEndian: false },
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export type BooleanControlMessage = StructInit<typeof BooleanControlMessage>;
|
package/src/control/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
export * from "./boolean.js";
|
|
1
2
|
export * from "./empty.js";
|
|
2
3
|
export * from "./inject-key-code.js";
|
|
3
4
|
export * from "./inject-text.js";
|
|
5
|
+
export * from "./resize-display.js";
|
|
4
6
|
export * from "./serializer.js";
|
|
5
|
-
export * from "./set-screen-power-mode.js";
|
|
6
7
|
export * from "./writer.js";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StructInit } from "@yume-chan/struct";
|
|
2
|
+
import { struct, u16, u8 } from "@yume-chan/struct";
|
|
3
|
+
|
|
4
|
+
export const ScrcpyResizeDisplayControlMessage = struct(
|
|
5
|
+
{
|
|
6
|
+
// value of `type` can change between versions
|
|
7
|
+
type: u8,
|
|
8
|
+
width: u16,
|
|
9
|
+
height: u16,
|
|
10
|
+
},
|
|
11
|
+
{ littleEndian: false },
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
export type ScrcpyResizeDisplayControlMessage = StructInit<
|
|
15
|
+
typeof ScrcpyResizeDisplayControlMessage
|
|
16
|
+
>;
|