Merge branch 'master' of github.com-rustdesk:rustdesk/rustdesk
This commit is contained in:
commit
385a1594f3
277
Cargo.lock
generated
277
Cargo.lock
generated
@ -295,7 +295,7 @@ dependencies = [
|
|||||||
"glib-sys 0.15.10",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.15.10",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -313,12 +313,6 @@ version = "1.0.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
|
checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "atomic_refcell"
|
|
||||||
version = "0.1.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "atty"
|
name = "atty"
|
||||||
version = "0.2.14"
|
version = "0.2.14"
|
||||||
@ -525,7 +519,7 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.15.10",
|
"glib-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2002,7 +1996,7 @@ dependencies = [
|
|||||||
"glib-sys 0.15.10",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.15.10",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2019,7 +2013,7 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
"pango-sys",
|
"pango-sys",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2085,7 +2079,7 @@ dependencies = [
|
|||||||
"glib-sys 0.15.10",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.15.10",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -2098,10 +2092,29 @@ dependencies = [
|
|||||||
"glib-sys 0.16.3",
|
"glib-sys 0.16.3",
|
||||||
"gobject-sys 0.16.3",
|
"gobject-sys 0.16.3",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glib"
|
||||||
|
version = "0.10.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0c685013b7515e668f1b57a165b009d4d28cb139a8a989bbd699c10dad29d0c5"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"futures-channel",
|
||||||
|
"futures-core",
|
||||||
|
"futures-executor",
|
||||||
|
"futures-task",
|
||||||
|
"futures-util",
|
||||||
|
"glib-macros 0.10.1",
|
||||||
|
"glib-sys 0.10.1",
|
||||||
|
"gobject-sys 0.10.0",
|
||||||
|
"libc",
|
||||||
|
"once_cell",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib"
|
name = "glib"
|
||||||
version = "0.15.12"
|
version = "0.15.12"
|
||||||
@ -2144,6 +2157,22 @@ dependencies = [
|
|||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glib-macros"
|
||||||
|
version = "0.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"heck 0.3.3",
|
||||||
|
"itertools",
|
||||||
|
"proc-macro-crate 0.1.5",
|
||||||
|
"proc-macro-error",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib-macros"
|
name = "glib-macros"
|
||||||
version = "0.15.11"
|
version = "0.15.11"
|
||||||
@ -2152,7 +2181,7 @@ checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"heck 0.4.0",
|
"heck 0.4.0",
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -2167,13 +2196,23 @@ checksum = "e084807350b01348b6d9dbabb724d1a0bb987f47a2c85de200e98e12e30733bf"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"heck 0.4.0",
|
"heck 0.4.0",
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "glib-sys"
|
||||||
|
version = "0.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"system-deps 1.3.2",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib-sys"
|
name = "glib-sys"
|
||||||
version = "0.15.10"
|
version = "0.15.10"
|
||||||
@ -2181,7 +2220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
|
checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2191,7 +2230,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65"
|
checksum = "c61a4f46316d06bfa33a7ac22df6f0524c8be58e3db2d9ca99ccb1f357b62a65"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2200,6 +2239,17 @@ version = "0.3.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
|
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gobject-sys"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
|
||||||
|
dependencies = [
|
||||||
|
"glib-sys 0.10.1",
|
||||||
|
"libc",
|
||||||
|
"system-deps 1.3.2",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gobject-sys"
|
name = "gobject-sys"
|
||||||
version = "0.15.10"
|
version = "0.15.10"
|
||||||
@ -2208,7 +2258,7 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.15.10",
|
"glib-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2219,28 +2269,28 @@ checksum = "3520bb9c07ae2a12c7f2fbb24d4efc11231c8146a86956413fb1a79bb760a0f1"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.16.3",
|
"glib-sys 0.16.3",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer"
|
name = "gstreamer"
|
||||||
version = "0.19.4"
|
version = "0.16.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "87a7570ad1d3c1cbf64561ada514fe0c03cf834f2076b85ffc616756c840b665"
|
checksum = "9ff5d0f7ff308ae37e6eb47b6ded17785bdea06e438a708cd09e0288c1862f33"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"glib 0.16.5",
|
"glib 0.10.3",
|
||||||
|
"glib-sys 0.10.1",
|
||||||
|
"gobject-sys 0.10.0",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"muldiv",
|
"muldiv",
|
||||||
"num-integer",
|
"num-rational",
|
||||||
"num-rational 0.4.1",
|
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"option-operations",
|
|
||||||
"paste",
|
"paste",
|
||||||
"pretty-hex",
|
"pretty-hex",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
@ -2248,86 +2298,94 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-app"
|
name = "gstreamer-app"
|
||||||
version = "0.19.2"
|
version = "0.16.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c45202b4d565034d4fe5577c990d3a99eaf0c2bfd2cb3f73f70db14d58e0208c"
|
checksum = "cc80888271338c3ede875d8cafc452eb207476ff5539dcbe0018a8f5b827af0e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
"glib 0.16.5",
|
"glib 0.10.3",
|
||||||
|
"glib-sys 0.10.1",
|
||||||
|
"gobject-sys 0.10.0",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-app-sys",
|
"gstreamer-app-sys",
|
||||||
"gstreamer-base",
|
"gstreamer-base",
|
||||||
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-app-sys"
|
name = "gstreamer-app-sys"
|
||||||
version = "0.19.2"
|
version = "0.9.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "29b0159da8dd0672c1a5507445c70c8dc483abfb63a0295cabaedd396f1d67d1"
|
checksum = "813f64275c9e7b33b828b9efcf9dfa64b95996766d4de996e84363ac65b87e3d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.16.3",
|
"glib-sys 0.10.1",
|
||||||
"gstreamer-base-sys",
|
"gstreamer-base-sys",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 1.3.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-base"
|
name = "gstreamer-base"
|
||||||
version = "0.19.3"
|
version = "0.16.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a61a299f9ea2ca892b43e2e428b86c679875e95ba23f8ae06fd730308df630f0"
|
checksum = "bafd01c56f59cb10f4b5a10f97bb4bdf8c2b2784ae5b04da7e2d400cf6e6afcf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"atomic_refcell",
|
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cfg-if 1.0.0",
|
"glib 0.10.3",
|
||||||
"glib 0.16.5",
|
"glib-sys 0.10.1",
|
||||||
|
"gobject-sys 0.10.0",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-base-sys",
|
"gstreamer-base-sys",
|
||||||
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-base-sys"
|
name = "gstreamer-base-sys"
|
||||||
version = "0.19.3"
|
version = "0.9.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dbc3c4476e1503ae245c89fbe20060c30ec6ade5f44620bcc402cbc70a3911a1"
|
checksum = "a4b7b6dc2d6e160a1ae28612f602bd500b3fa474ce90bf6bb2f08072682beef5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.16.3",
|
"glib-sys 0.10.1",
|
||||||
"gobject-sys 0.16.3",
|
"gobject-sys 0.10.0",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 1.3.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-sys"
|
name = "gstreamer-sys"
|
||||||
version = "0.19.4"
|
version = "0.9.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "545f52ad8a480732cc4290fd65dfe42952c8ae374fe581831ba15981fedf18a4"
|
checksum = "fc1f154082d01af5718c5f8a8eb4f565a4ea5586ad8833a8fc2c2aa6844b601d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.16.3",
|
"glib-sys 0.10.1",
|
||||||
"gobject-sys 0.16.3",
|
"gobject-sys 0.10.0",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 1.3.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-video"
|
name = "gstreamer-video"
|
||||||
version = "0.19.4"
|
version = "0.16.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5e99623fb99436c4b2da66ae94b25881c94db5144afc1bd7c84cee5cabb72f18"
|
checksum = "f7bbb1485d87469849ec45c08e03c2f280d3ea20ff3c439d03185be54e3ce98e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"cfg-if 1.0.0",
|
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"glib 0.16.5",
|
"futures-util",
|
||||||
|
"glib 0.10.3",
|
||||||
|
"glib-sys 0.10.1",
|
||||||
|
"gobject-sys 0.10.0",
|
||||||
"gstreamer",
|
"gstreamer",
|
||||||
"gstreamer-base",
|
"gstreamer-base",
|
||||||
|
"gstreamer-base-sys",
|
||||||
|
"gstreamer-sys",
|
||||||
"gstreamer-video-sys",
|
"gstreamer-video-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
@ -2335,16 +2393,16 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gstreamer-video-sys"
|
name = "gstreamer-video-sys"
|
||||||
version = "0.19.4"
|
version = "0.9.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9206e9df0ed84824bfe4cc13e3359154ad7624221c7d3d6242585db3f19a15d9"
|
checksum = "92347e46438007d6a2386302125f62cb9df6769cdacb931af5c0f12c1ee21de4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glib-sys 0.16.3",
|
"glib-sys 0.10.1",
|
||||||
"gobject-sys 0.16.3",
|
"gobject-sys 0.10.0",
|
||||||
"gstreamer-base-sys",
|
"gstreamer-base-sys",
|
||||||
"gstreamer-sys",
|
"gstreamer-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 1.3.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2385,7 +2443,7 @@ dependencies = [
|
|||||||
"gobject-sys 0.15.10",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"pango-sys",
|
"pango-sys",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2395,7 +2453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9"
|
checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -2642,7 +2700,7 @@ dependencies = [
|
|||||||
"byteorder",
|
"byteorder",
|
||||||
"color_quant",
|
"color_quant",
|
||||||
"num-iter",
|
"num-iter",
|
||||||
"num-rational 0.3.2",
|
"num-rational",
|
||||||
"num-traits 0.2.15",
|
"num-traits 0.2.15",
|
||||||
"png",
|
"png",
|
||||||
"tiff",
|
"tiff",
|
||||||
@ -2732,6 +2790,15 @@ version = "2.6.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ec947b7a4ce12e3b87e353abae7ce124d025b6c7d6c5aea5cc0bcf92e9510ded"
|
checksum = "ec947b7a4ce12e3b87e353abae7ce124d025b6c7d6c5aea5cc0bcf92e9510ded"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itertools"
|
||||||
|
version = "0.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
|
||||||
|
dependencies = [
|
||||||
|
"either",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itoa"
|
name = "itoa"
|
||||||
version = "0.3.4"
|
version = "0.3.4"
|
||||||
@ -3185,9 +3252,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "muldiv"
|
name = "muldiv"
|
||||||
version = "1.0.1"
|
version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
|
checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ndk"
|
name = "ndk"
|
||||||
@ -3272,7 +3339,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
|
checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"darling",
|
"darling",
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
@ -3459,17 +3526,6 @@ dependencies = [
|
|||||||
"num-traits 0.2.15",
|
"num-traits 0.2.15",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num-rational"
|
|
||||||
version = "0.4.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
|
|
||||||
dependencies = [
|
|
||||||
"autocfg 1.1.0",
|
|
||||||
"num-integer",
|
|
||||||
"num-traits 0.2.15",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-traits"
|
name = "num-traits"
|
||||||
version = "0.1.43"
|
version = "0.1.43"
|
||||||
@ -3513,7 +3569,7 @@ version = "0.5.7"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
|
checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
@ -3601,15 +3657,6 @@ version = "0.1.5"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "option-operations"
|
|
||||||
version = "0.5.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0"
|
|
||||||
dependencies = [
|
|
||||||
"paste",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ordered-multimap"
|
name = "ordered-multimap"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
@ -3664,7 +3711,7 @@ dependencies = [
|
|||||||
"glib-sys 0.15.10",
|
"glib-sys 0.15.10",
|
||||||
"gobject-sys 0.15.10",
|
"gobject-sys 0.15.10",
|
||||||
"libc",
|
"libc",
|
||||||
"system-deps",
|
"system-deps 6.0.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3880,9 +3927,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pretty-hex"
|
name = "pretty-hex"
|
||||||
version = "0.3.0"
|
version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
|
checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "primal-check"
|
name = "primal-check"
|
||||||
@ -3893,6 +3940,15 @@ dependencies = [
|
|||||||
"num-integer",
|
"num-integer",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-crate"
|
||||||
|
version = "0.1.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
|
||||||
|
dependencies = [
|
||||||
|
"toml",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro-crate"
|
name = "proc-macro-crate"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
@ -4249,7 +4305,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "rdev"
|
name = "rdev"
|
||||||
version = "0.5.0-2"
|
version = "0.5.0-2"
|
||||||
source = "git+https://github.com/asur4s/rdev#18bb9dd64563fc9761005bb39ff830e6402e326e"
|
source = "git+https://github.com/asur4s/rdev#81aa6559e931fed914e0d38edfd98cbe4bc908c1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cocoa",
|
"cocoa",
|
||||||
"core-foundation 0.9.3",
|
"core-foundation 0.9.3",
|
||||||
@ -4262,8 +4318,8 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"mio 0.8.5",
|
"mio 0.8.5",
|
||||||
"strum",
|
"strum 0.24.1",
|
||||||
"strum_macros",
|
"strum_macros 0.24.3",
|
||||||
"widestring 1.0.2",
|
"widestring 1.0.2",
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
"x11 2.20.1",
|
"x11 2.20.1",
|
||||||
@ -5118,12 +5174,30 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "strum"
|
||||||
|
version = "0.18.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strum"
|
name = "strum"
|
||||||
version = "0.24.1"
|
version = "0.24.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
|
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "strum_macros"
|
||||||
|
version = "0.18.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
|
||||||
|
dependencies = [
|
||||||
|
"heck 0.3.3",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strum_macros"
|
name = "strum_macros"
|
||||||
version = "0.24.3"
|
version = "0.24.3"
|
||||||
@ -5209,6 +5283,21 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "system-deps"
|
||||||
|
version = "1.3.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
|
||||||
|
dependencies = [
|
||||||
|
"heck 0.3.3",
|
||||||
|
"pkg-config",
|
||||||
|
"strum 0.18.0",
|
||||||
|
"strum_macros 0.18.0",
|
||||||
|
"thiserror",
|
||||||
|
"toml",
|
||||||
|
"version-compare 0.0.10",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "system-deps"
|
name = "system-deps"
|
||||||
version = "6.0.3"
|
version = "6.0.3"
|
||||||
@ -5219,7 +5308,7 @@ dependencies = [
|
|||||||
"heck 0.4.0",
|
"heck 0.4.0",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"toml",
|
"toml",
|
||||||
"version-compare",
|
"version-compare 0.1.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -5650,6 +5739,12 @@ version = "0.8.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
|
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version-compare"
|
||||||
|
version = "0.0.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "version-compare"
|
name = "version-compare"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
@ -6476,7 +6571,7 @@ version = "3.6.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "45066039ebf3330820e495e854f8b312abb68f0a39e97972d092bd72e8bb3e8e"
|
checksum = "45066039ebf3330820e495e854f8b312abb68f0a39e97972d092bd72e8bb3e8e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"regex",
|
"regex",
|
||||||
@ -6543,7 +6638,7 @@ version = "3.9.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "155247a5d1ab55e335421c104ccd95d64f17cebbd02f50cdbc1c33385f9c4d81"
|
checksum = "155247a5d1ab55e335421c104ccd95d64f17cebbd02f50cdbc1c33385f9c4d81"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro-crate",
|
"proc-macro-crate 1.2.1",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
|
@ -9,11 +9,12 @@ class RawKeyFocusScope extends StatelessWidget {
|
|||||||
final InputModel inputModel;
|
final InputModel inputModel;
|
||||||
final Widget child;
|
final Widget child;
|
||||||
|
|
||||||
RawKeyFocusScope(
|
RawKeyFocusScope({
|
||||||
{this.focusNode,
|
this.focusNode,
|
||||||
this.onFocusChange,
|
this.onFocusChange,
|
||||||
required this.inputModel,
|
required this.inputModel,
|
||||||
required this.child});
|
required this.child,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -35,11 +36,15 @@ class RawPointerMouseRegion extends StatelessWidget {
|
|||||||
final MouseCursor? cursor;
|
final MouseCursor? cursor;
|
||||||
final PointerEnterEventListener? onEnter;
|
final PointerEnterEventListener? onEnter;
|
||||||
final PointerExitEventListener? onExit;
|
final PointerExitEventListener? onExit;
|
||||||
|
final PointerDownEventListener? onPointerDown;
|
||||||
|
final PointerUpEventListener? onPointerUp;
|
||||||
|
|
||||||
RawPointerMouseRegion(
|
RawPointerMouseRegion(
|
||||||
{this.onEnter,
|
{this.onEnter,
|
||||||
this.onExit,
|
this.onExit,
|
||||||
this.cursor,
|
this.cursor,
|
||||||
|
this.onPointerDown,
|
||||||
|
this.onPointerUp,
|
||||||
required this.inputModel,
|
required this.inputModel,
|
||||||
required this.child});
|
required this.child});
|
||||||
|
|
||||||
@ -47,8 +52,14 @@ class RawPointerMouseRegion extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Listener(
|
return Listener(
|
||||||
onPointerHover: inputModel.onPointHoverImage,
|
onPointerHover: inputModel.onPointHoverImage,
|
||||||
onPointerDown: inputModel.onPointDownImage,
|
onPointerDown: (evt) {
|
||||||
onPointerUp: inputModel.onPointUpImage,
|
onPointerDown?.call(evt);
|
||||||
|
inputModel.onPointDownImage(evt);
|
||||||
|
},
|
||||||
|
onPointerUp: (evt) {
|
||||||
|
onPointerUp?.call(evt);
|
||||||
|
inputModel.onPointUpImage(evt);
|
||||||
|
},
|
||||||
onPointerMove: inputModel.onPointMoveImage,
|
onPointerMove: inputModel.onPointMoveImage,
|
||||||
onPointerSignal: inputModel.onPointerSignalImage,
|
onPointerSignal: inputModel.onPointerSignalImage,
|
||||||
/*
|
/*
|
||||||
|
@ -52,6 +52,7 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
with AutomaticKeepAliveClientMixin, MultiWindowListener {
|
with AutomaticKeepAliveClientMixin, MultiWindowListener {
|
||||||
Timer? _timer;
|
Timer? _timer;
|
||||||
String keyboardMode = "legacy";
|
String keyboardMode = "legacy";
|
||||||
|
bool _isWindowBlur = false;
|
||||||
final _cursorOverImage = false.obs;
|
final _cursorOverImage = false.obs;
|
||||||
late RxBool _showRemoteCursor;
|
late RxBool _showRemoteCursor;
|
||||||
late RxBool _zoomCursor;
|
late RxBool _zoomCursor;
|
||||||
@ -59,7 +60,6 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
late RxBool _keyboardEnabled;
|
late RxBool _keyboardEnabled;
|
||||||
|
|
||||||
final FocusNode _rawKeyFocusNode = FocusNode(debugLabel: "rawkeyFocusNode");
|
final FocusNode _rawKeyFocusNode = FocusNode(debugLabel: "rawkeyFocusNode");
|
||||||
var _imageFocused = false;
|
|
||||||
|
|
||||||
Function(bool)? _onEnterOrLeaveImage4Menubar;
|
Function(bool)? _onEnterOrLeaveImage4Menubar;
|
||||||
|
|
||||||
@ -104,7 +104,6 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
if (!Platform.isLinux) {
|
if (!Platform.isLinux) {
|
||||||
Wakelock.enable();
|
Wakelock.enable();
|
||||||
}
|
}
|
||||||
_rawKeyFocusNode.requestFocus();
|
|
||||||
_ffi.ffiModel.updateEventListener(widget.id);
|
_ffi.ffiModel.updateEventListener(widget.id);
|
||||||
_ffi.qualityMonitorModel.checkShowQualityMonitor(widget.id);
|
_ffi.qualityMonitorModel.checkShowQualityMonitor(widget.id);
|
||||||
// Session option should be set after models.dart/FFI.start
|
// Session option should be set after models.dart/FFI.start
|
||||||
@ -129,14 +128,31 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
@override
|
@override
|
||||||
void onWindowBlur() {
|
void onWindowBlur() {
|
||||||
super.onWindowBlur();
|
super.onWindowBlur();
|
||||||
// unfocus the key focus when the whole window is lost focus,
|
// On windows, we use `focus` way to handle keyboard better.
|
||||||
// and let OS to handle events instead.
|
// Now on Linux, there's some rdev issues which will break the input.
|
||||||
_rawKeyFocusNode.unfocus();
|
// We disable the `focus` way for non-Windows temporarily.
|
||||||
|
if (Platform.isWindows) {
|
||||||
|
_isWindowBlur = true;
|
||||||
|
// unfocus the primary-focus when the whole window is lost focus,
|
||||||
|
// and let OS to handle events instead.
|
||||||
|
_rawKeyFocusNode.unfocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onWindowFocus() {
|
||||||
|
super.onWindowFocus();
|
||||||
|
// See [onWindowBlur].
|
||||||
|
if (Platform.isWindows) {
|
||||||
|
_isWindowBlur = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
debugPrint("REMOTE PAGE dispose ${widget.id}");
|
debugPrint("REMOTE PAGE dispose ${widget.id}");
|
||||||
|
// ensure we leave this session, this is a double check
|
||||||
|
bind.sessionEnterOrLeave(id: widget.id, enter: false);
|
||||||
DesktopMultiWindow.removeListener(this);
|
DesktopMultiWindow.removeListener(this);
|
||||||
_ffi.dialogManager.hideMobileActionsOverlay();
|
_ffi.dialogManager.hideMobileActionsOverlay();
|
||||||
_ffi.recordingModel.onClose();
|
_ffi.recordingModel.onClose();
|
||||||
@ -166,12 +182,22 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
child: RawKeyFocusScope(
|
child: RawKeyFocusScope(
|
||||||
focusNode: _rawKeyFocusNode,
|
focusNode: _rawKeyFocusNode,
|
||||||
onFocusChange: (bool v) {
|
onFocusChange: (bool imageFocused) {
|
||||||
_imageFocused = v;
|
debugPrint(
|
||||||
if (_imageFocused) {
|
"onFocusChange(window active:${!_isWindowBlur}) $imageFocused");
|
||||||
_ffi.inputModel.enterOrLeave(true);
|
// See [onWindowBlur].
|
||||||
} else {
|
if (Platform.isWindows) {
|
||||||
_ffi.inputModel.enterOrLeave(false);
|
if (_isWindowBlur) {
|
||||||
|
imageFocused = false;
|
||||||
|
Future.delayed(Duration.zero, () {
|
||||||
|
_rawKeyFocusNode.unfocus();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (imageFocused) {
|
||||||
|
_ffi.inputModel.enterOrLeave(true);
|
||||||
|
} else {
|
||||||
|
_ffi.inputModel.enterOrLeave(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
inputModel: _ffi.inputModel,
|
inputModel: _ffi.inputModel,
|
||||||
@ -199,9 +225,6 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
}
|
}
|
||||||
|
|
||||||
void enterView(PointerEnterEvent evt) {
|
void enterView(PointerEnterEvent evt) {
|
||||||
if (!_imageFocused) {
|
|
||||||
_rawKeyFocusNode.requestFocus();
|
|
||||||
}
|
|
||||||
_cursorOverImage.value = true;
|
_cursorOverImage.value = true;
|
||||||
_firstEnterImage.value = true;
|
_firstEnterImage.value = true;
|
||||||
if (_onEnterOrLeaveImage4Menubar != null) {
|
if (_onEnterOrLeaveImage4Menubar != null) {
|
||||||
@ -211,6 +234,13 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
//
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// See [onWindowBlur].
|
||||||
|
if (!Platform.isWindows) {
|
||||||
|
if (!_rawKeyFocusNode.hasFocus) {
|
||||||
|
_rawKeyFocusNode.requestFocus();
|
||||||
|
}
|
||||||
|
bind.sessionEnterOrLeave(id: widget.id, enter: true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void leaveView(PointerExitEvent evt) {
|
void leaveView(PointerExitEvent evt) {
|
||||||
@ -223,6 +253,10 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
//
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// See [onWindowBlur].
|
||||||
|
if (!Platform.isWindows) {
|
||||||
|
bind.sessionEnterOrLeave(id: widget.id, enter: false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget getBodyForDesktop(BuildContext context) {
|
Widget getBodyForDesktop(BuildContext context) {
|
||||||
@ -244,6 +278,11 @@ class _RemotePageState extends State<RemotePage>
|
|||||||
listenerBuilder: (child) => RawPointerMouseRegion(
|
listenerBuilder: (child) => RawPointerMouseRegion(
|
||||||
onEnter: enterView,
|
onEnter: enterView,
|
||||||
onExit: leaveView,
|
onExit: leaveView,
|
||||||
|
onPointerDown: (event) {
|
||||||
|
if (!_rawKeyFocusNode.hasFocus) {
|
||||||
|
_rawKeyFocusNode.requestFocus();
|
||||||
|
}
|
||||||
|
},
|
||||||
inputModel: _ffi.inputModel,
|
inputModel: _ffi.inputModel,
|
||||||
child: child,
|
child: child,
|
||||||
),
|
),
|
||||||
|
@ -827,7 +827,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
|||||||
qualityInitValue = qualityMaxValue;
|
qualityInitValue = qualityMaxValue;
|
||||||
}
|
}
|
||||||
final RxDouble qualitySliderValue = RxDouble(qualityInitValue);
|
final RxDouble qualitySliderValue = RxDouble(qualityInitValue);
|
||||||
final debouncerQuanlity = Debouncer<double>(
|
final debouncerQuality = Debouncer<double>(
|
||||||
Duration(milliseconds: 1000),
|
Duration(milliseconds: 1000),
|
||||||
onChanged: (double v) {
|
onChanged: (double v) {
|
||||||
setCustomValues(quality: v);
|
setCustomValues(quality: v);
|
||||||
@ -843,7 +843,7 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
|
|||||||
divisions: 90,
|
divisions: 90,
|
||||||
onChanged: (double value) {
|
onChanged: (double value) {
|
||||||
qualitySliderValue.value = value;
|
qualitySliderValue.value = value;
|
||||||
debouncerQuanlity.value = value;
|
debouncerQuality.value = value;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
@ -48,9 +48,9 @@ bindgen = "0.59"
|
|||||||
[target.'cfg(target_os = "linux")'.dependencies]
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
dbus = { version = "0.9", optional = true }
|
dbus = { version = "0.9", optional = true }
|
||||||
tracing = { version = "0.1", optional = true }
|
tracing = { version = "0.1", optional = true }
|
||||||
gstreamer = { version = "0.19", optional = true }
|
gstreamer = { version = "0.16", optional = true }
|
||||||
gstreamer-app = { version = "0.19", features = ["v1_16"], optional = true }
|
gstreamer-app = { version = "0.16", features = ["v1_10"], optional = true }
|
||||||
gstreamer-video = { version = "0.19", optional = true }
|
gstreamer-video = { version = "0.16", optional = true }
|
||||||
|
|
||||||
[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies]
|
[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies]
|
||||||
hwcodec = { git = "https://github.com/21pages/hwcodec", optional = true }
|
hwcodec = { git = "https://github.com/21pages/hwcodec", optional = true }
|
||||||
|
@ -130,18 +130,18 @@ impl PipeWireRecorder {
|
|||||||
pub fn new(capturable: PipeWireCapturable) -> Result<Self, Box<dyn Error>> {
|
pub fn new(capturable: PipeWireCapturable) -> Result<Self, Box<dyn Error>> {
|
||||||
let pipeline = gst::Pipeline::new(None);
|
let pipeline = gst::Pipeline::new(None);
|
||||||
|
|
||||||
let src = gst::ElementFactory::make_with_name("pipewiresrc", None)?;
|
let src = gst::ElementFactory::make("pipewiresrc", None)?;
|
||||||
src.set_property("fd", &capturable.fd.as_raw_fd());
|
src.set_property("fd", &capturable.fd.as_raw_fd())?;
|
||||||
src.set_property("path", &format!("{}", capturable.path));
|
src.set_property("path", &format!("{}", capturable.path))?;
|
||||||
src.set_property("keepalive_time", &1_000.as_raw_fd());
|
src.set_property("keepalive_time", &1_000.as_raw_fd())?;
|
||||||
|
|
||||||
// For some reason pipewire blocks on destruction of AppSink if this is not set to true,
|
// For some reason pipewire blocks on destruction of AppSink if this is not set to true,
|
||||||
// see: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/982
|
// see: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/982
|
||||||
src.set_property("always-copy", &true);
|
src.set_property("always-copy", &true)?;
|
||||||
|
|
||||||
let sink = gst::ElementFactory::make_with_name("appsink", None)?;
|
let sink = gst::ElementFactory::make("appsink", None)?;
|
||||||
sink.set_property("drop", &true);
|
sink.set_property("drop", &true)?;
|
||||||
sink.set_property("max-buffers", &1u32);
|
sink.set_property("max-buffers", &1u32)?;
|
||||||
|
|
||||||
pipeline.add_many(&[&src, &sink])?;
|
pipeline.add_many(&[&src, &sink])?;
|
||||||
src.link(&sink)?;
|
src.link(&sink)?;
|
||||||
@ -182,21 +182,25 @@ impl Recorder for PipeWireRecorder {
|
|||||||
.try_pull_sample(gst::ClockTime::from_mseconds(timeout_ms))
|
.try_pull_sample(gst::ClockTime::from_mseconds(timeout_ms))
|
||||||
{
|
{
|
||||||
let cap = sample
|
let cap = sample
|
||||||
.caps()
|
.get_caps()
|
||||||
.ok_or("Failed get caps")?
|
.ok_or("Failed get caps")?
|
||||||
.structure(0)
|
.get_structure(0)
|
||||||
.ok_or("Failed to get structure")?;
|
.ok_or("Failed to get structure")?;
|
||||||
let w: i32 = cap.value("width")?.get()?;
|
let w: i32 = cap.get_value("width")?.get_some()?;
|
||||||
let h: i32 = cap.value("height")?.get()?;
|
let h: i32 = cap.get_value("height")?.get_some()?;
|
||||||
self.pix_fmt = cap.value("format")?.get()?;
|
|
||||||
let w = w as usize;
|
let w = w as usize;
|
||||||
let h = h as usize;
|
let h = h as usize;
|
||||||
|
self.pix_fmt = cap
|
||||||
|
.get::<&str>("format")?
|
||||||
|
.ok_or("Failed to get pixel format")?
|
||||||
|
.to_string();
|
||||||
|
|
||||||
let buf = sample
|
let buf = sample
|
||||||
.buffer_owned()
|
.get_buffer_owned()
|
||||||
.ok_or_else(|| GStreamerError("Failed to get owned buffer.".into()))?;
|
.ok_or_else(|| GStreamerError("Failed to get owned buffer.".into()))?;
|
||||||
let mut crop = buf
|
let mut crop = buf
|
||||||
.meta::<gstreamer_video::VideoCropMeta>()
|
.get_meta::<gstreamer_video::VideoCropMeta>()
|
||||||
.map(|m| m.rect());
|
.map(|m| m.get_rect());
|
||||||
// only crop if necessary
|
// only crop if necessary
|
||||||
if Some((0, 0, w as u32, h as u32)) == crop {
|
if Some((0, 0, w as u32, h as u32)) == crop {
|
||||||
crop = None;
|
crop = None;
|
||||||
@ -207,7 +211,7 @@ impl Recorder for PipeWireRecorder {
|
|||||||
if let Err(..) = crate::would_block_if_equal(&mut self.saved_raw_data, buf.as_slice()) {
|
if let Err(..) = crate::would_block_if_equal(&mut self.saved_raw_data, buf.as_slice()) {
|
||||||
return Ok(PixelProvider::NONE);
|
return Ok(PixelProvider::NONE);
|
||||||
}
|
}
|
||||||
let buf_size = buf.size();
|
let buf_size = buf.get_size();
|
||||||
// BGRx is 4 bytes per pixel
|
// BGRx is 4 bytes per pixel
|
||||||
if buf_size != (w * h * 4) {
|
if buf_size != (w * h * 4) {
|
||||||
// for some reason the width and height of the caps do not guarantee correct buffer
|
// for some reason the width and height of the caps do not guarantee correct buffer
|
||||||
|
@ -334,7 +334,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Scale original", "Escala original"),
|
("Scale original", "Escala original"),
|
||||||
("Scale adaptive", "Escala adaptativa"),
|
("Scale adaptive", "Escala adaptativa"),
|
||||||
("General", ""),
|
("General", ""),
|
||||||
("Security", "Seguritat"),
|
("Security", "Seguretat"),
|
||||||
("Account", "Compte"),
|
("Account", "Compte"),
|
||||||
("Theme", "Tema"),
|
("Theme", "Tema"),
|
||||||
("Dark Theme", "Tema Fosc"),
|
("Dark Theme", "Tema Fosc"),
|
||||||
@ -342,7 +342,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Light", "Clar"),
|
("Light", "Clar"),
|
||||||
("Follow System", "Tema del sistema"),
|
("Follow System", "Tema del sistema"),
|
||||||
("Enable hardware codec", "Habilitar còdec per hardware"),
|
("Enable hardware codec", "Habilitar còdec per hardware"),
|
||||||
("Unlock Security Settings", "Desbloquejar ajustaments de seguritat"),
|
("Unlock Security Settings", "Desbloquejar ajustaments de seguretat"),
|
||||||
("Enable Audio", "Habilitar àudio"),
|
("Enable Audio", "Habilitar àudio"),
|
||||||
("Unlock Network Settings", "Desbloquejar Ajustaments de Xarxa"),
|
("Unlock Network Settings", "Desbloquejar Ajustaments de Xarxa"),
|
||||||
("Server", "Servidor"),
|
("Server", "Servidor"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user