From 4e7d81fd44d43eaa1f4fe386959b5ba41e82d563 Mon Sep 17 00:00:00 2001 From: evdokimovs <49490279+evdokimovs@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:26:13 +0300 Subject: [PATCH] Support Flutter Web (#5) - make Flutter Jason API platform agnostic - implement Flutter bindings for WASM Jason - add web implementation for Flutter Jason platform agnostic API --- Cargo.lock | 119 +- Makefile | 16 +- e2e-demo/.editorconfig | 4 - flutter/assets/.gitkeep | 0 flutter/assets/pkg/medea_jason.js | 2720 +++++++++++++++++ flutter/assets/pkg/medea_jason_bg.wasm | Bin 0 -> 1726630 bytes flutter/example/android/.gitignore | 4 +- flutter/example/assets/images/logo.png | Bin 0 -> 85669 bytes flutter/example/integration_test/jason.dart | 69 +- flutter/example/lib/call.dart | 80 + flutter/example/lib/call_route.dart | 109 + flutter/example/lib/join_route.dart | 72 + flutter/example/lib/main.dart | 35 +- flutter/example/pubspec.lock | 72 +- flutter/example/pubspec.yaml | 5 +- flutter/example/web/favicon.png | Bin 0 -> 917 bytes flutter/example/web/icons/Icon-192.png | Bin 0 -> 5292 bytes flutter/example/web/icons/Icon-512.png | Bin 0 -> 8252 bytes .../example/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes .../example/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes flutter/example/web/index.html | 125 + flutter/example/web/manifest.json | 30 + flutter/lib/local_media_track.dart | 65 - flutter/lib/medea_jason.dart | 22 + flutter/lib/media_manager.dart | 92 - .../interface/audio_track_constraints.dart | 13 + .../lib/src/interface/connection_handle.dart | 41 + .../device_video_track_constraints.dart | 90 + .../display_video_track_constraints.dart | 8 + .../lib/src/interface/input_device_info.dart | 37 + flutter/lib/src/interface/jason.dart | 22 + .../lib/src/interface/local_media_track.dart | 33 + flutter/lib/src/interface/media_manager.dart | 40 + .../src/interface/media_stream_settings.dart | 22 + .../{ => src/interface}/reconnect_handle.dart | 55 +- .../lib/src/interface/remote_media_track.dart | 43 + .../lib/src/interface/room_close_reason.dart | 19 + flutter/lib/src/interface/room_handle.dart | 217 ++ .../lib/{ => src/interface}/track_kinds.dart | 0 .../native}/audio_track_constraints.dart | 13 +- .../{ => src/native}/connection_handle.dart | 47 +- .../device_video_track_constraints.dart | 88 +- .../display_video_track_constraints.dart | 10 +- .../lib/{ => src/native}/ffi/callback.dart | 0 .../lib/{ => src/native}/ffi/completer.dart | 0 .../lib/{ => src/native}/ffi/exceptions.dart | 0 .../lib/{ => src/native}/ffi/executor.dart | 0 .../{ => src/native}/ffi/foreign_value.dart | 4 +- .../{ => src/native}/ffi/native_string.dart | 2 +- .../native/ffi}/nullable_pointer.dart | 0 .../lib/{ => src/native}/ffi/ptrarray.dart | 6 +- flutter/lib/{ => src/native}/ffi/result.dart | 0 .../{ => src/native}/ffi/unbox_handle.dart | 0 .../{ => src/native}/input_device_info.dart | 38 +- flutter/lib/{ => src/native}/jason.dart | 28 +- flutter/lib/src/native/local_media_track.dart | 65 + flutter/lib/src/native/media_manager.dart | 72 + .../native}/media_stream_settings.dart | 41 +- flutter/lib/src/native/reconnect_handle.dart | 61 + .../{ => src/native}/remote_media_track.dart | 47 +- .../{ => src/native}/room_close_reason.dart | 21 +- flutter/lib/{ => src/native}/room_handle.dart | 223 +- flutter/lib/{ => src}/util/move_semantic.dart | 0 .../lib/src/web/audio_track_constraints.dart | 18 + flutter/lib/src/web/connection_handle.dart | 43 + .../web/device_video_track_constraints.dart | 59 + .../web/display_video_track_constraints.dart | 14 + flutter/lib/src/web/input_device_info.dart | 36 + flutter/lib/src/web/jason.dart | 32 + flutter/lib/src/web/jason_wasm.dart | 816 +++++ flutter/lib/src/web/local_media_track.dart | 34 + flutter/lib/src/web/media_manager.dart | 34 + .../lib/src/web/media_stream_settings.dart | 39 + flutter/lib/src/web/reconnect_handle.dart | 28 + flutter/lib/src/web/remote_media_track.dart | 70 + flutter/lib/src/web/room_close_reason.dart | 30 + flutter/lib/src/web/room_handle.dart | 133 + flutter/pubspec.yaml | 5 + src/api/dart/connection_handle.rs | 6 +- src/api/dart/input_device_info.rs | 2 +- src/api/dart/jason.rs | 8 +- src/api/dart/local_media_track.rs | 4 +- src/api/dart/media_manager_handle.rs | 14 +- src/api/dart/mod.rs | 2 +- src/api/dart/reconnect_handle.rs | 4 +- src/api/dart/remote_media_track.rs | 4 +- src/api/dart/room_handle.rs | 8 +- src/media/track/remote.rs | 3 - 88 files changed, 5737 insertions(+), 754 deletions(-) create mode 100644 flutter/assets/.gitkeep create mode 100644 flutter/assets/pkg/medea_jason.js create mode 100644 flutter/assets/pkg/medea_jason_bg.wasm create mode 100644 flutter/example/assets/images/logo.png create mode 100644 flutter/example/lib/call.dart create mode 100644 flutter/example/lib/call_route.dart create mode 100644 flutter/example/lib/join_route.dart create mode 100644 flutter/example/web/favicon.png create mode 100644 flutter/example/web/icons/Icon-192.png create mode 100644 flutter/example/web/icons/Icon-512.png create mode 100644 flutter/example/web/icons/Icon-maskable-192.png create mode 100644 flutter/example/web/icons/Icon-maskable-512.png create mode 100644 flutter/example/web/index.html create mode 100644 flutter/example/web/manifest.json delete mode 100644 flutter/lib/local_media_track.dart create mode 100644 flutter/lib/medea_jason.dart delete mode 100644 flutter/lib/media_manager.dart create mode 100644 flutter/lib/src/interface/audio_track_constraints.dart create mode 100644 flutter/lib/src/interface/connection_handle.dart create mode 100644 flutter/lib/src/interface/device_video_track_constraints.dart create mode 100644 flutter/lib/src/interface/display_video_track_constraints.dart create mode 100644 flutter/lib/src/interface/input_device_info.dart create mode 100644 flutter/lib/src/interface/jason.dart create mode 100644 flutter/lib/src/interface/local_media_track.dart create mode 100644 flutter/lib/src/interface/media_manager.dart create mode 100644 flutter/lib/src/interface/media_stream_settings.dart rename flutter/lib/{ => src/interface}/reconnect_handle.dart (54%) create mode 100644 flutter/lib/src/interface/remote_media_track.dart create mode 100644 flutter/lib/src/interface/room_close_reason.dart create mode 100644 flutter/lib/src/interface/room_handle.dart rename flutter/lib/{ => src/interface}/track_kinds.dart (100%) rename flutter/lib/{ => src/native}/audio_track_constraints.dart (82%) rename flutter/lib/{ => src/native}/connection_handle.dart (56%) rename flutter/lib/{ => src/native}/device_video_track_constraints.dart (59%) rename flutter/lib/{ => src/native}/display_video_track_constraints.dart (70%) rename flutter/lib/{ => src/native}/ffi/callback.dart (100%) rename flutter/lib/{ => src/native}/ffi/completer.dart (100%) rename flutter/lib/{ => src/native}/ffi/exceptions.dart (100%) rename flutter/lib/{ => src/native}/ffi/executor.dart (100%) rename flutter/lib/{ => src/native}/ffi/foreign_value.dart (97%) rename flutter/lib/{ => src/native}/ffi/native_string.dart (93%) rename flutter/lib/{util => src/native/ffi}/nullable_pointer.dart (100%) rename flutter/lib/{ => src/native}/ffi/ptrarray.dart (83%) rename flutter/lib/{ => src/native}/ffi/result.dart (100%) rename flutter/lib/{ => src/native}/ffi/unbox_handle.dart (100%) rename flutter/lib/{ => src/native}/input_device_info.dart (59%) rename flutter/lib/{ => src/native}/jason.dart (80%) create mode 100644 flutter/lib/src/native/local_media_track.dart create mode 100644 flutter/lib/src/native/media_manager.dart rename flutter/lib/{ => src/native}/media_stream_settings.dart (57%) create mode 100644 flutter/lib/src/native/reconnect_handle.dart rename flutter/lib/{ => src/native}/remote_media_track.dart (76%) rename flutter/lib/{ => src/native}/room_close_reason.dart (74%) rename flutter/lib/{ => src/native}/room_handle.dart (51%) rename flutter/lib/{ => src}/util/move_semantic.dart (100%) create mode 100644 flutter/lib/src/web/audio_track_constraints.dart create mode 100644 flutter/lib/src/web/connection_handle.dart create mode 100644 flutter/lib/src/web/device_video_track_constraints.dart create mode 100644 flutter/lib/src/web/display_video_track_constraints.dart create mode 100644 flutter/lib/src/web/input_device_info.dart create mode 100644 flutter/lib/src/web/jason.dart create mode 100644 flutter/lib/src/web/jason_wasm.dart create mode 100644 flutter/lib/src/web/local_media_track.dart create mode 100644 flutter/lib/src/web/media_manager.dart create mode 100644 flutter/lib/src/web/media_stream_settings.dart create mode 100644 flutter/lib/src/web/reconnect_handle.dart create mode 100644 flutter/lib/src/web/remote_media_track.dart create mode 100644 flutter/lib/src/web/room_close_reason.dart create mode 100644 flutter/lib/src/web/room_handle.dart diff --git a/Cargo.lock b/Cargo.lock index ccedcdee6..f8af0d483 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -89,7 +89,7 @@ dependencies = [ "flate2", "futures-core", "futures-util", - "h2 0.3.5", + "h2 0.3.6", "http", "httparse", "itoa", @@ -137,9 +137,9 @@ dependencies = [ [[package]] name = "actix-rt" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d7cd957c9ed92288a7c3c96af81fa5291f65247a76a34dac7b6af74e52ba0" +checksum = "ea360596a50aa9af459850737f99293e5cb9114ae831118cb6026b3bbc7583ad" dependencies = [ "actix-macros", "futures-core", @@ -148,9 +148,9 @@ dependencies = [ [[package]] name = "actix-server" -version = "2.0.0-beta.5" +version = "2.0.0-beta.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26369215fcc3b0176018b3b68756a8bcc275bb000e6212e454944913a1f9bf87" +checksum = "7367665785765b066ad16e1086d26a087f696bc7c42b6f93004ced6cfcf1eeca" dependencies = [ "actix-rt", "actix-service", @@ -159,15 +159,14 @@ dependencies = [ "log", "mio 0.7.13", "num_cpus", - "slab", "tokio 1.12.0", ] [[package]] name = "actix-service" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f5f9d66a8730d0fae62c26f3424f5751e5518086628a40b7ab6fca4a705034" +checksum = "8d3dc6a618b082974a08d7a4781d24d4691cba51500059bfebe6656a61ebfe1e" dependencies = [ "futures-core", "paste", @@ -290,9 +289,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +checksum = "991984e3fd003e7ba02eb724f87a0f997b78677c46c0e91f8424ad7394c9886a" dependencies = [ "getrandom", "once_cell", @@ -511,9 +510,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" +checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" dependencies = [ "jobserver", ] @@ -575,11 +574,11 @@ dependencies = [ [[package]] name = "console_error_panic_hook" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "wasm-bindgen", ] @@ -628,9 +627,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ "core-foundation-sys", "libc", @@ -638,9 +637,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" @@ -882,9 +881,9 @@ dependencies = [ [[package]] name = "fantoccini" -version = "0.17.5" +version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83743425a14e053324954331306fa0b6ca434eb8e4027e36048fc01fc1dd4d7b" +checksum = "bbd918c5a0475d9de32a970b9cb783db384fcc43ed4001940cabf4669e78ec31" dependencies = [ "base64 0.13.0", "cookie 0.14.4", @@ -1179,9 +1178,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b21b78895ff1ade3f8df6a9a77917f20dc8b46d0069dd5a3837cf1f507a70ee" +checksum = "6c06815895acec637cd6ed6e9662c935b866d20a106f8361892893a7d9234964" dependencies = [ "bytes 1.1.0", "fnv", @@ -1345,7 +1344,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.5", + "h2 0.3.6", "http", "http-body 0.4.3", "httparse", @@ -2175,12 +2174,12 @@ checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451" [[package]] name = "predicates-tree" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7dd0fd014130206c9352efbdc92be592751b2b9274dff685348341082c6ea3d" +checksum = "338c7be2905b732ae3984a2f40032b5e94fd8f52505b186c7d4d68d193445df7" dependencies = [ "predicates-core", - "treeline", + "termtree", ] [[package]] @@ -2221,9 +2220,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" +checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70" dependencies = [ "unicode-xid", ] @@ -2287,9 +2286,9 @@ checksum = "23129d50f2c9355ced935fce8a08bd706ee2e7ce2b3b33bf61dace0e379ac63a" [[package]] name = "quote" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" dependencies = [ "proc-macro2", ] @@ -2381,9 +2380,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22" +checksum = "51c732d463dd300362ffb44b7b125f299c23d2990411a4253824630ebc7467fb" dependencies = [ "base64 0.13.0", "bytes 1.1.0", @@ -2651,9 +2650,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slog" @@ -2857,9 +2856,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.77" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" +checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" dependencies = [ "proc-macro2", "quote", @@ -2868,9 +2867,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", @@ -2919,6 +2918,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "termtree" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78fbf2dd23e79c28ccfa2472d3e6b3b189866ffef1aeb91f17c2d968b6586378" + [[package]] name = "textwrap" version = "0.11.0" @@ -2939,18 +2944,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", @@ -3078,9 +3083,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "154794c8f499c2619acd19e839294703e9e32e7630ef5f46ea80d4ef0fbee5eb" +checksum = "b2dd85aeaba7b68df939bd357c6afb36c87951be9e80bf9c859f2fc3e9fca0fd" dependencies = [ "proc-macro2", "quote", @@ -3148,7 +3153,7 @@ dependencies = [ "bytes 1.1.0", "futures-core", "futures-util", - "h2 0.3.5", + "h2 0.3.6", "http", "http-body 0.4.3", "hyper 0.14.13", @@ -3222,9 +3227,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if 1.0.0", "log", @@ -3235,9 +3240,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98863d0dd09fa59a1b79c6750ad80dbda6b75f4e71c437a6a1a8cb91a8bcbd77" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" dependencies = [ "proc-macro2", "quote", @@ -3246,9 +3251,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" dependencies = [ "lazy_static", ] @@ -3263,12 +3268,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "treeline" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" - [[package]] name = "try-lock" version = "0.2.3" @@ -3309,9 +3308,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" diff --git a/Makefile b/Makefile index 170569a80..bad8f6aa3 100644 --- a/Makefile +++ b/Makefile @@ -401,6 +401,19 @@ flutter.run: $(if $(call eq,$(device),),,-d $(device)) +# Generates assets required for Flutter Web Jason plugin. +# +# Usage: +# make flutter.web.assets + +flutter.web.assets: + @rm -rf flutter/assets/pkg + wasm-pack build -d flutter/assets/pkg --no-typescript -t web + rm -rf flutter/assets/pkg/*.md \ + flutter/assets/pkg/.gitignore \ + flutter/assets/pkg/package.json + + ################# @@ -1137,9 +1150,10 @@ endef docker.up.medea docker.up.webdriver \ docs docs.rust \ down down.control down.coturn down.demo down.dev down.medea \ - flutter flutter.fmt flutter.lint flutter.run flutter.test \ + flutter flutter.fmt flutter.lint flutter.run \ flutter.android.compile_api_version \ flutter.android.min_api_version \ + flutter.web.assets \ helm helm.dir helm.down helm.lint helm.list \ helm.package helm.package.release helm.up \ minikube.boot \ diff --git a/e2e-demo/.editorconfig b/e2e-demo/.editorconfig index 20779adab..0f3bb618c 100644 --- a/e2e-demo/.editorconfig +++ b/e2e-demo/.editorconfig @@ -1,7 +1,3 @@ [*.js] indent_style = space indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 diff --git a/flutter/assets/.gitkeep b/flutter/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/flutter/assets/pkg/medea_jason.js b/flutter/assets/pkg/medea_jason.js new file mode 100644 index 000000000..f1c2b50e2 --- /dev/null +++ b/flutter/assets/pkg/medea_jason.js @@ -0,0 +1,2720 @@ + +let wasm; + +const heap = new Array(32).fill(undefined); + +heap.push(undefined, null, true, false); + +function getObject(idx) { return heap[idx]; } + +let heap_next = heap.length; + +function dropObject(idx) { + if (idx < 36) return; + heap[idx] = heap_next; + heap_next = idx; +} + +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; +} + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +let cachegetUint8Memory0 = null; +function getUint8Memory0() { + if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) { + cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer); + } + return cachegetUint8Memory0; +} + +function getStringFromWasm0(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + +let WASM_VECTOR_LEN = 0; + +let cachedTextEncoder = new TextEncoder('utf-8'); + +const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' + ? function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +} + : function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; +}); + +function passStringToWasm0(arg, malloc, realloc) { + + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length); + getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len); + + const mem = getUint8Memory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3); + const view = getUint8Memory0().subarray(ptr + offset, ptr + len); + const ret = encodeString(arg, view); + + offset += ret.written; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +let cachegetInt32Memory0 = null; +function getInt32Memory0() { + if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) { + cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer); + } + return cachegetInt32Memory0; +} + +let cachegetFloat64Memory0 = null; +function getFloat64Memory0() { + if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) { + cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer); + } + return cachegetFloat64Memory0; +} + +function debugString(val) { + // primitive types + const type = typeof val; + if (type == 'number' || type == 'boolean' || val == null) { + return `${val}`; + } + if (type == 'string') { + return `"${val}"`; + } + if (type == 'symbol') { + const description = val.description; + if (description == null) { + return 'Symbol'; + } else { + return `Symbol(${description})`; + } + } + if (type == 'function') { + const name = val.name; + if (typeof name == 'string' && name.length > 0) { + return `Function(${name})`; + } else { + return 'Function'; + } + } + // objects + if (Array.isArray(val)) { + const length = val.length; + let debug = '['; + if (length > 0) { + debug += debugString(val[0]); + } + for(let i = 1; i < length; i++) { + debug += ', ' + debugString(val[i]); + } + debug += ']'; + return debug; + } + // Test for built-in + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches.length > 1) { + className = builtInMatches[1]; + } else { + // Failed to match the standard '[object ClassName]' + return toString.call(val); + } + if (className == 'Object') { + // we're a user defined class or Object + // JSON.stringify avoids problems with cycles, and is generally much + // easier than looping through ownProperties of `val`. + try { + return 'Object(' + JSON.stringify(val) + ')'; + } catch (_) { + return 'Object'; + } + } + // errors + if (val instanceof Error) { + return `${val.name}: ${val.message}\n${val.stack}`; + } + // TODO we could test for more things here, like `Set`s and `Map`s. + return className; +} + +function makeMutClosure(arg0, arg1, dtor, f) { + const state = { a: arg0, b: arg1, cnt: 1, dtor }; + const real = (...args) => { + // First up with a closure we increment the internal reference + // count. This ensures that the Rust closure environment won't + // be deallocated while we're invoking it. + state.cnt++; + const a = state.a; + state.a = 0; + try { + return f(a, state.b, ...args); + } finally { + if (--state.cnt === 0) { + wasm.__wbindgen_export_2.get(state.dtor)(a, state.b); + + } else { + state.a = a; + } + } + }; + real.original = state; + + return real; +} +function __wbg_adapter_34(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h08028ced72d4f2c0(arg0, arg1, addHeapObject(arg2)); +} + +function __wbg_adapter_37(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h08028ced72d4f2c0(arg0, arg1, addHeapObject(arg2)); +} + +function __wbg_adapter_40(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h08028ced72d4f2c0(arg0, arg1, addHeapObject(arg2)); +} + +function __wbg_adapter_43(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h08028ced72d4f2c0(arg0, arg1, addHeapObject(arg2)); +} + +function __wbg_adapter_46(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h08028ced72d4f2c0(arg0, arg1, addHeapObject(arg2)); +} + +function __wbg_adapter_49(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h3b75a8c535ed95c6(arg0, arg1, addHeapObject(arg2)); +} + +function _assertClass(instance, klass) { + if (!(instance instanceof klass)) { + throw new Error(`expected instance of ${klass.name}`); + } + return instance.ptr; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + wasm.__wbindgen_exn_store(addHeapObject(e)); + } +} + +function getArrayU8FromWasm0(ptr, len) { + return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len); +} +function __wbg_adapter_342(arg0, arg1, arg2, arg3) { + wasm.wasm_bindgen__convert__closures__invoke2_mut__h0b905333817aa2a5(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); +} + +/** +* Describes directions that a camera can face, as seen from a user's +* perspective. Representation of a [VideoFacingModeEnum][1]. +* +* [1]: https://w3.org/TR/mediacapture-streams#dom-videofacingmodeenum +*/ +export const FacingMode = Object.freeze({ +/** +* Facing towards a user (a self-view camera). +*/ +User:0,"0":"User", +/** +* Facing away from a user (viewing the environment). +*/ +Environment:1,"1":"Environment", +/** +* Facing to the left of a user. +*/ +Left:2,"2":"Left", +/** +* Facing to the right of a user. +*/ +Right:3,"3":"Right", }); +/** +* Media source type. +*/ +export const MediaSourceKind = Object.freeze({ +/** +* Media is sourced from some media device (webcam or microphone). +*/ +Device:0,"0":"Device", +/** +* Media is obtained via screen capturing. +*/ +Display:1,"1":"Display", }); +/** +* [MediaStreamTrack.kind][1] representation. +* +* [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack-kind +*/ +export const MediaKind = Object.freeze({ +/** +* Audio track. +*/ +Audio:0,"0":"Audio", +/** +* Video track. +*/ +Video:1,"1":"Video", }); +/** +* Possible error kinds of a [`LocalMediaInitException`]. +*/ +export const LocalMediaInitExceptionKind = Object.freeze({ +/** +* Occurs if the [getUserMedia()][1] request failed. +* +* [1]: https://tinyurl.com/w3-streams#dom-mediadevices-getusermedia +*/ +GetUserMediaFailed:0,"0":"GetUserMediaFailed", +/** +* Occurs if the [getDisplayMedia()][1] request failed. +* +* [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia +*/ +GetDisplayMediaFailed:1,"1":"GetDisplayMediaFailed", +/** +* Occurs when local track is [`ended`][1] right after [getUserMedia()][2] +* or [getDisplayMedia()][3] request. +* +* [1]: https://tinyurl.com/w3-streams#idl-def-MediaStreamTrackState.ended +* [2]: https://tinyurl.com/rnxcavf +* [3]: https://w3.org/TR/screen-capture#dom-mediadevices-getdisplaymedia +*/ +LocalTrackIsEnded:2,"2":"LocalTrackIsEnded", }); +/** +* Possible error kinds of a [`RpcClientException`]. +*/ +export const RpcClientExceptionKind = Object.freeze({ +/** +* Connection with a server was lost. +* +* This usually means that some transport error occurred, so a client can +* continue performing reconnecting attempts. +*/ +ConnectionLost:0,"0":"ConnectionLost", +/** +* Could not authorize an RPC session. +* +* This usually means that authentication data a client provides is +* obsolete. +*/ +AuthorizationFailed:1,"1":"AuthorizationFailed", +/** +* RPC session has been finished. This is a terminal state. +*/ +SessionFinished:2,"2":"SessionFinished", }); +/** +* Constraints applicable to audio tracks. +*/ +export class AudioTrackConstraints { + + static __wrap(ptr) { + const obj = Object.create(AudioTrackConstraints.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_audiotrackconstraints_free(ptr); + } + /** + * Creates new [`AudioTrackConstraints`] with none constraints configured. + */ + constructor() { + var ret = wasm.audiotrackconstraints_new(); + return AudioTrackConstraints.__wrap(ret); + } + /** + * Sets an exact [deviceId][1] constraint. + * + * [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + * @param {string} device_id + */ + device_id(device_id) { + var ptr0 = passStringToWasm0(device_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + wasm.audiotrackconstraints_device_id(this.ptr, ptr0, len0); + } +} +/** +* Connection with a specific remote `Member`, that is used on JS side. +* +* Like all the handles it contains a weak reference to the object that is +* managed by Rust, so its methods will fail if a weak reference could not be +* upgraded. +*/ +export class ConnectionHandle { + + static __wrap(ptr) { + const obj = Object.create(ConnectionHandle.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_connectionhandle_free(ptr); + } + /** + * Sets callback, invoked when this [`Connection`] is closed. + * + * [`Connection`]: connection::Connection + * @param {Function} cb + */ + on_close(cb) { + wasm.connectionhandle_on_close(this.ptr, addHeapObject(cb)); + } + /** + * Returns ID of the remote `Member`. + * @returns {string} + */ + get_remote_member_id() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.connectionhandle_get_remote_member_id(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Sets callback, invoked when a new [`RemoteMediaTrack`] is added to this + * [`Connection`]. + * + * [`Connection`]: connection::Connection + * [`RemoteMediaTrack`]: crate::api::RemoteMediaTrack + * @param {Function} cb + */ + on_remote_track_added(cb) { + wasm.connectionhandle_on_remote_track_added(this.ptr, addHeapObject(cb)); + } + /** + * Sets callback, invoked when connection quality score is updated by a + * server. + * @param {Function} cb + */ + on_quality_score_update(cb) { + wasm.connectionhandle_on_quality_score_update(this.ptr, addHeapObject(cb)); + } +} +/** +* Constraints applicable to video tracks that are sourced from some media +* device. +*/ +export class DeviceVideoTrackConstraints { + + static __wrap(ptr) { + const obj = Object.create(DeviceVideoTrackConstraints.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_devicevideotrackconstraints_free(ptr); + } + /** + * Creates new [`DeviceVideoTrackConstraints`] with none constraints + * configured. + */ + constructor() { + var ret = wasm.devicevideotrackconstraints_new(); + return DeviceVideoTrackConstraints.__wrap(ret); + } + /** + * Sets an exact [deviceId][1] constraint. + * + * [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + * @param {string} device_id + */ + device_id(device_id) { + var ptr0 = passStringToWasm0(device_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + wasm.audiotrackconstraints_device_id(this.ptr, ptr0, len0); + } + /** + * Sets an exact [facingMode][1] constraint. + * + * [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring + * @param {number} facing_mode + */ + exact_facing_mode(facing_mode) { + wasm.devicevideotrackconstraints_exact_facing_mode(this.ptr, facing_mode); + } + /** + * Sets an ideal [facingMode][1] constraint. + * + * [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring + * @param {number} facing_mode + */ + ideal_facing_mode(facing_mode) { + wasm.devicevideotrackconstraints_ideal_facing_mode(this.ptr, facing_mode); + } + /** + * Sets an exact [`height`][1] constraint. + * + * [1]: https://tinyurl.com/w3-streams#def-constraint-height + * @param {number} height + */ + exact_height(height) { + wasm.devicevideotrackconstraints_exact_height(this.ptr, height); + } + /** + * Sets an ideal [`height`][1] constraint. + * + * [1]: https://tinyurl.com/w3-streams#def-constraint-height + * @param {number} height + */ + ideal_height(height) { + wasm.devicevideotrackconstraints_ideal_height(this.ptr, height); + } + /** + * Sets a range of a [`height`][1] constraint. + * + * [1]: https://tinyurl.com/w3-streams#def-constraint-height + * @param {number} min + * @param {number} max + */ + height_in_range(min, max) { + wasm.devicevideotrackconstraints_height_in_range(this.ptr, min, max); + } + /** + * Sets an exact [`width`][1] constraint. + * + * [1]: https://tinyurl.com/w3-streams#def-constraint-width + * @param {number} width + */ + exact_width(width) { + wasm.devicevideotrackconstraints_exact_width(this.ptr, width); + } + /** + * Sets an ideal [`width`][1] constraint. + * + * [1]: https://tinyurl.com/w3-streams#def-constraint-width + * @param {number} width + */ + ideal_width(width) { + wasm.devicevideotrackconstraints_ideal_width(this.ptr, width); + } + /** + * Sets a range of a [`width`][1] constraint. + * + * [1]: https://tinyurl.com/w3-streams#def-constraint-width + * @param {number} min + * @param {number} max + */ + width_in_range(min, max) { + wasm.devicevideotrackconstraints_width_in_range(this.ptr, min, max); + } +} +/** +* Constraints applicable to video tracks sourced from a screen capturing. +*/ +export class DisplayVideoTrackConstraints { + + static __wrap(ptr) { + const obj = Object.create(DisplayVideoTrackConstraints.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_displayvideotrackconstraints_free(ptr); + } + /** + * Creates new [`DisplayVideoTrackConstraints`] with none constraints + * configured. + */ + constructor() { + var ret = wasm.displayvideotrackconstraints_new(); + return DisplayVideoTrackConstraints.__wrap(ret); + } +} +/** +* Exception thrown when cannot get info of available media devices. +*/ +export class EnumerateDevicesException { + + static __wrap(ptr) { + const obj = Object.create(EnumerateDevicesException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_enumeratedevicesexception_free(ptr); + } + /** + * Returns [`platform::Error`] causing this [`EnumerateDevicesException`]. + * @returns {Error} + */ + cause() { + var ret = wasm.enumeratedevicesexception_cause(this.ptr); + return takeObject(ret); + } + /** + * Returns stacktrace of this [`EnumerateDevicesException`]. + * @returns {string} + */ + trace() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.enumeratedevicesexception_trace(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* Exception thrown when a string or some other data doesn't have an expected +* format and cannot be parsed or processed. +*/ +export class FormatException { + + static __wrap(ptr) { + const obj = Object.create(FormatException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_formatexception_free(ptr); + } + /** + * Returns an error message describing of the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* Representation of a [MediaDeviceInfo][1]. +* +* [1]: https://w3.org/TR/mediacapture-streams#device-info +*/ +export class InputDeviceInfo { + + static __wrap(ptr) { + const obj = Object.create(InputDeviceInfo.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_inputdeviceinfo_free(ptr); + } + /** + * Returns a unique identifier for the represented device. + * @returns {string} + */ + device_id() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.inputdeviceinfo_device_id(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns a kind of the represented device. + * + * This representation of [MediaDeviceInfo][1] is for input device ONLY. + * + * [1]: https://w3.org/TR/mediacapture-streams#device-info + * @returns {number} + */ + kind() { + var ret = wasm.inputdeviceinfo_kind(this.ptr); + return ret >>> 0; + } + /** + * Returns label describing the represented device (for example "External + * USB Webcam"). + * + * If the device has no associated label, then returns an empty string. + * @returns {string} + */ + label() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.inputdeviceinfo_label(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns a group identifier of the represented device. + * + * Two devices have the same group identifier if they belong to the same + * physical device. For example, the audio input and output devices + * representing the speaker and microphone of the same headset have the + * same [groupId][1]. + * + * [1]: https://w3.org/TR/mediacapture-streams#dom-mediadeviceinfo-groupid + * @returns {string} + */ + group_id() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.inputdeviceinfo_group_id(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* Jason's internal exception. +* +* This is either a programmatic error or some unexpected platform component +* failure that cannot be handled in any way. +*/ +export class InternalException { + + static __wrap(ptr) { + const obj = Object.create(InternalException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_internalexception_free(ptr); + } + /** + * Returns an error message describing the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns [`platform::Error`] causing this [`RpcClientException`]. + * @returns {Error | undefined} + */ + cause() { + var ret = wasm.internalexception_cause(this.ptr); + return takeObject(ret); + } + /** + * Returns stacktrace of this [`InternalException`]. + * @returns {string} + */ + trace() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.internalexception_trace(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* General JS side library interface. +* +* Responsible for managing shared transports, local media and room +* initialization. +*/ +export class Jason { + + static __wrap(ptr) { + const obj = Object.create(Jason.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_jason_free(ptr); + } + /** + * Instantiates a new [`Jason`] interface to interact with this library. + */ + constructor() { + var ret = wasm.jason_new(); + return Jason.__wrap(ret); + } + /** + * Creates a new `Room` and returns its [`RoomHandle`]. + * @returns {RoomHandle} + */ + init_room() { + var ret = wasm.jason_init_room(this.ptr); + return RoomHandle.__wrap(ret); + } + /** + * Returns a [`MediaManagerHandle`]. + * @returns {MediaManagerHandle} + */ + media_manager() { + var ret = wasm.jason_media_manager(this.ptr); + return MediaManagerHandle.__wrap(ret); + } + /** + * Closes the provided [`RoomHandle`]. + * @param {RoomHandle} room_to_delete + */ + close_room(room_to_delete) { + _assertClass(room_to_delete, RoomHandle); + var ptr0 = room_to_delete.ptr; + room_to_delete.ptr = 0; + wasm.jason_close_room(this.ptr, ptr0); + } + /** + * Drops [`Jason`] API object, so all the related objects (rooms, + * connections, streams etc.) respectively. All objects related to this + * [`Jason`] API object will be detached (you will still hold them, but + * unable to use). + */ + dispose() { + const ptr = this.__destroy_into_raw(); + wasm.jason_dispose(ptr); + } +} +/** +* Exception thrown when accessing media devices. +*/ +export class LocalMediaInitException { + + static __wrap(ptr) { + const obj = Object.create(LocalMediaInitException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_localmediainitexception_free(ptr); + } + /** + * Returns concrete error kind of this [`LocalMediaInitException`]. + * @returns {number} + */ + kind() { + var ret = wasm.localmediainitexception_kind(this.ptr); + return ret >>> 0; + } + /** + * Returns an error message describing the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns [`platform::Error`] causing this [`LocalMediaInitException`]. + * @returns {Error | undefined} + */ + cause() { + var ret = wasm.internalexception_cause(this.ptr); + return takeObject(ret); + } + /** + * Returns stacktrace of this [`LocalMediaInitException`]. + * @returns {string} + */ + trace() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.internalexception_trace(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* Wrapper around a local [MediaStreamTrack][1]. +* +* Backed by a strong reference to the actual track implementing auto stop on +* dropping. Can be manually dropped with a `free()` call. +* +* [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack +*/ +export class LocalMediaTrack { + + static __wrap(ptr) { + const obj = Object.create(LocalMediaTrack.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_localmediatrack_free(ptr); + } + /** + * Returns the underlying [MediaStreamTrack][1]. + * + * [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack + * @returns {MediaStreamTrack} + */ + get_track() { + var ret = wasm.localmediatrack_get_track(this.ptr); + return takeObject(ret); + } + /** + * Returns a [`MediaKind::Audio`] if this [`LocalMediaTrack`] represents an + * audio track, or a [`MediaKind::Video`] if it represents a video track. + * @returns {number} + */ + kind() { + var ret = wasm.localmediatrack_kind(this.ptr); + return ret >>> 0; + } + /** + * Returns a [`MediaSourceKind::Device`] if this [`LocalMediaTrack`] is + * sourced from some device (webcam/microphone), or a + * [`MediaSourceKind::Display`] if it's captured via + * [MediaDevices.getDisplayMedia()][1]. + * + * [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia + * @returns {number} + */ + media_source_kind() { + var ret = wasm.localmediatrack_media_source_kind(this.ptr); + return ret >>> 0; + } +} +/** +* [`MediaManagerHandle`] is a weak reference to a [`MediaManager`]. +* +* [`MediaManager`] performs all the media acquisition requests +* ([getUserMedia()][1]/[getDisplayMedia()][2]) and stores all the received +* tracks for further re-usage. +* +* [`MediaManager`] stores weak references to [`LocalMediaTrack`]s, so if there +* are no strong references to some track, then this track is stopped and +* removed from [`MediaManager`]. +* +* Like all the handles it contains a weak reference to the object that is +* managed by Rust, so its methods will fail if a weak reference could not be +* upgraded. +* +* [`MediaManager`]: media::MediaManager +* [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia +* [2]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia +*/ +export class MediaManagerHandle { + + static __wrap(ptr) { + const obj = Object.create(MediaManagerHandle.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_mediamanagerhandle_free(ptr); + } + /** + * Returns a list of [`InputDeviceInfo`] objects representing available + * media input and output devices, such as microphones, cameras, and so + * forth. + * @returns {Promise} + */ + enumerate_devices() { + var ret = wasm.mediamanagerhandle_enumerate_devices(this.ptr); + return takeObject(ret); + } + /** + * Returns [`LocalMediaTrack`]s objects, built from the provided + * [`MediaStreamSettings`]. + * @param {MediaStreamSettings} caps + * @returns {Promise} + */ + init_local_tracks(caps) { + _assertClass(caps, MediaStreamSettings); + var ret = wasm.mediamanagerhandle_init_local_tracks(this.ptr, caps.ptr); + return takeObject(ret); + } +} +/** +* Errors occurring in [`RoomHandle::set_local_media_settings()`][1] method. +* +* [1]: crate::api::RoomHandle::set_local_media_settings +*/ +export class MediaSettingsUpdateException { + + static __wrap(ptr) { + const obj = Object.create(MediaSettingsUpdateException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_mediasettingsupdateexception_free(ptr); + } + /** + * Returns an error message describing the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns the original [`ChangeMediaStateError`] that was encountered + * while updating local media settings. + * @returns {any} + */ + cause() { + var ret = wasm.mediasettingsupdateexception_cause(this.ptr); + return takeObject(ret); + } + /** + * Returns whether media settings were successfully rolled back after new + * settings application failed. + * @returns {boolean} + */ + rolled_back() { + var ret = wasm.mediasettingsupdateexception_rolled_back(this.ptr); + return ret !== 0; + } +} +/** +* Exception thrown when the requested media state transition could not be +* performed. +*/ +export class MediaStateTransitionException { + + static __wrap(ptr) { + const obj = Object.create(MediaStateTransitionException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_mediastatetransitionexception_free(ptr); + } + /** + * Returns an error message describing the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns stacktrace of this [`MediaStateTransitionException`]. + * @returns {string} + */ + trace() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.mediastatetransitionexception_trace(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* [MediaStreamConstraints][1] wrapper. +* +* [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamconstraints +*/ +export class MediaStreamSettings { + + static __wrap(ptr) { + const obj = Object.create(MediaStreamSettings.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_mediastreamsettings_free(ptr); + } + /** + * Creates new [`MediaStreamSettings`] with none constraints configured. + */ + constructor() { + var ret = wasm.mediastreamsettings_new(); + return MediaStreamSettings.__wrap(ret); + } + /** + * Specifies the nature and settings of an audio [MediaStreamTrack][1]. + * + * [1]: https://w3.org/TR/mediacapture-streams#mediastreamtrack + * @param {AudioTrackConstraints} constraints + */ + audio(constraints) { + _assertClass(constraints, AudioTrackConstraints); + var ptr0 = constraints.ptr; + constraints.ptr = 0; + wasm.mediastreamsettings_audio(this.ptr, ptr0); + } + /** + * Set constraints that will be used to obtain a local video sourced from + * a media device. + * @param {DeviceVideoTrackConstraints} constraints + */ + device_video(constraints) { + _assertClass(constraints, DeviceVideoTrackConstraints); + var ptr0 = constraints.ptr; + constraints.ptr = 0; + wasm.mediastreamsettings_device_video(this.ptr, ptr0); + } + /** + * Set constraints that will be used to capture a local video from a user's + * display. + * @param {DisplayVideoTrackConstraints} constraints + */ + display_video(constraints) { + _assertClass(constraints, DisplayVideoTrackConstraints); + var ptr0 = constraints.ptr; + constraints.ptr = 0; + wasm.mediastreamsettings_display_video(this.ptr, ptr0); + } +} +/** +* Handle that JS side can reconnect to a media server with when a connection +* is lost. +* +* This handle is passed into a [`RoomHandle.on_connection_loss`] callback. +* +* Like all the handles it contains a weak reference to the object that is +* managed by Rust, so its methods will fail if a weak reference could not be +* upgraded. +* +* [`RoomHandle.on_connection_loss`]: crate::api::RoomHandle.on_connection_loss +*/ +export class ReconnectHandle { + + static __wrap(ptr) { + const obj = Object.create(ReconnectHandle.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_reconnecthandle_free(ptr); + } + /** + * Tries to reconnect after the provided delay in milliseconds. + * + * If [`RpcSession`] is already reconnecting then a new reconnection + * attempt won't be performed. Instead, it will wait for the first + * reconnection attempt result and use it. + * + * [`RpcSession`]: rpc::RpcSession + * @param {number} delay_ms + * @returns {Promise} + */ + reconnect_with_delay(delay_ms) { + var ret = wasm.reconnecthandle_reconnect_with_delay(this.ptr, delay_ms); + return takeObject(ret); + } + /** + * Tries to reconnect a [`RpcSession`] in a loop with a growing backoff + * delay. + * + * The first attempt will be performed immediately, and the second attempt + * will be performed after `starting_delay_ms`. + * + * Delay between reconnection attempts won't be greater than + * `max_delay_ms`. + * + * After each reconnection attempt, delay between reconnections will be + * multiplied by the given `multiplier` until it reaches `max_delay_ms`. + * + * + * If `multiplier` is a negative number then it will be considered as + * `0.0`. This might cause a busy loop, so it's not recommended. + * + * Max elapsed time can be limited with an optional `max_elapsed_time_ms` + * argument. + * + * If [`RpcSession`] is already reconnecting then new reconnection attempt + * won't be performed. Instead, it will wait for the first reconnection + * attempt result and use it here. + * + * [`RpcSession`]: rpc::RpcSession + * @param {number} starting_delay_ms + * @param {number} multiplier + * @param {number} max_delay + * @param {number | undefined} max_elapsed_time_ms + * @returns {Promise} + */ + reconnect_with_backoff(starting_delay_ms, multiplier, max_delay, max_elapsed_time_ms) { + var ret = wasm.reconnecthandle_reconnect_with_backoff(this.ptr, starting_delay_ms, multiplier, max_delay, !isLikeNone(max_elapsed_time_ms), isLikeNone(max_elapsed_time_ms) ? 0 : max_elapsed_time_ms); + return takeObject(ret); + } +} +/** +* Wrapper around a received remote [MediaStreamTrack][1]. +* +* [1]: https://w3.org/TR/mediacapture-streams/#dom-mediastreamtrack +*/ +export class RemoteMediaTrack { + + static __wrap(ptr) { + const obj = Object.create(RemoteMediaTrack.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_remotemediatrack_free(ptr); + } + /** + * Returns the underlying [MediaStreamTrack][1]. + * + * [1]: https://w3.org/TR/mediacapture-streams/#dom-mediastreamtrack + * @returns {MediaStreamTrack} + */ + get_track() { + var ret = wasm.remotemediatrack_get_track(this.ptr); + return takeObject(ret); + } + /** + * Indicates whether this [`RemoteMediaTrack`] is enabled. + * @returns {boolean} + */ + enabled() { + var ret = wasm.remotemediatrack_enabled(this.ptr); + return ret !== 0; + } + /** + * Indicates whether this [`RemoteMediaTrack`] is muted. + * @returns {boolean} + */ + muted() { + var ret = wasm.remotemediatrack_muted(this.ptr); + return ret !== 0; + } + /** + * Sets callback, invoked when this [`RemoteMediaTrack`] is enabled. + * @param {Function} cb + */ + on_enabled(cb) { + wasm.remotemediatrack_on_enabled(this.ptr, addHeapObject(cb)); + } + /** + * Sets callback, invoked when this [`RemoteMediaTrack`] is disabled. + * @param {Function} cb + */ + on_disabled(cb) { + wasm.remotemediatrack_on_disabled(this.ptr, addHeapObject(cb)); + } + /** + * Sets callback to invoke when this [`RemoteMediaTrack`] is muted. + * @param {Function} cb + */ + on_muted(cb) { + wasm.remotemediatrack_on_muted(this.ptr, addHeapObject(cb)); + } + /** + * Sets callback to invoke when this [`RemoteMediaTrack`] is unmuted. + * @param {Function} cb + */ + on_unmuted(cb) { + wasm.remotemediatrack_on_unmuted(this.ptr, addHeapObject(cb)); + } + /** + * Sets callback to invoke when this [`RemoteMediaTrack`] is stopped. + * @param {Function} cb + */ + on_stopped(cb) { + wasm.remotemediatrack_on_stopped(this.ptr, addHeapObject(cb)); + } + /** + * Returns a [`MediaKind::Audio`] if this [`RemoteMediaTrack`] represents + * an audio track, or a [`MediaKind::Video`] if it represents a video + * track. + * @returns {number} + */ + kind() { + var ret = wasm.remotemediatrack_kind(this.ptr); + return ret >>> 0; + } + /** + * Returns a [`MediaSourceKind::Device`] if this [`RemoteMediaTrack`] is + * sourced from some device (webcam/microphone), or a + * [`MediaSourceKind::Display`] if it's captured via + * [MediaDevices.getDisplayMedia()][1]. + * + * [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia + * @returns {number} + */ + media_source_kind() { + var ret = wasm.remotemediatrack_media_source_kind(this.ptr); + return ret >>> 0; + } +} +/** +* Reason of why a [`Room`] is closed. +* +* This struct is passed to a [`RoomHandle::on_close`] JS side callback. +* +* [`Room`]: room::Room +* [`RoomHandle::on_close`]: crate::api::RoomHandle::on_close +*/ +export class RoomCloseReason { + + static __wrap(ptr) { + const obj = Object.create(RoomCloseReason.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_roomclosereason_free(ptr); + } + /** + * Returns the [`Room`]'s close reason. + * + * [`Room`]: room::Room + * @returns {string} + */ + reason() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.roomclosereason_reason(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Indicates whether the [`Room`] was closed by server. + * + * [`Room`]: room::Room + * @returns {boolean} + */ + is_closed_by_server() { + var ret = wasm.roomclosereason_is_closed_by_server(this.ptr); + return ret !== 0; + } + /** + * Indicates whether the [`Room`] close reason is considered as an error. + * + * [`Room`]: room::Room + * @returns {boolean} + */ + is_err() { + var ret = wasm.roomclosereason_is_err(this.ptr); + return ret !== 0; + } +} +/** +* JS side handle to a [`Room`] where all the media happens. +* +* Like all handles it contains a weak reference to the object that is managed +* by Rust, so its methods will fail if a weak reference could not be upgraded. +* +* [`Room`]: room::Room +*/ +export class RoomHandle { + + static __wrap(ptr) { + const obj = Object.create(RoomHandle.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_roomhandle_free(ptr); + } + /** + * Connects to a media server and joins a [`Room`] with the provided + * authorization `token`. + * + * Authorization token has a fixed format: + * `{{ Host URL }}/{{ Room ID }}/{{ Member ID }}?token={{ Auth Token }}` + * (e.g. `wss://medea.com/MyConf1/Alice?token=777`). + * + * Establishes connection with media server (if it doesn't exist already). + * + * Effectively returns `Result<(), JasonError>`. + * + * # Errors + * + * - When `on_failed_local_media` callback is not set. + * - When `on_connection_loss` callback is not set. + * - When unable to connect to a media server. + * + * [`Room`]: room::Room + * @param {string} token + * @returns {Promise} + */ + join(token) { + var ptr0 = passStringToWasm0(token, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + var ret = wasm.roomhandle_join(this.ptr, ptr0, len0); + return takeObject(ret); + } + /** + * Sets callback, invoked when a new [`Connection`] with some remote + * `Member` is established. + * + * [`Connection`]: crate::connection::Connection + * @param {Function} cb + */ + on_new_connection(cb) { + wasm.roomhandle_on_new_connection(this.ptr, addHeapObject(cb)); + } + /** + * Sets `on_close` callback, invoked when this [`Room`] is closed, + * providing a [`RoomCloseReason`]. + * + * [`Room`]: room::Room + * [`RoomCloseReason`]: room::RoomCloseReason + * @param {Function} cb + */ + on_close(cb) { + wasm.roomhandle_on_close(this.ptr, addHeapObject(cb)); + } + /** + * Sets callback, invoked when a new [`LocalMediaTrack`] is added to this + * [`Room`]. + * + * This might happen in such cases: + * 1. Media server initiates a media request. + * 2. `enable_audio`/`enable_video` is called. + * 3. [`MediaStreamSettings`] is updated via `set_local_media_settings`. + * + * [`Room`]: room::Room + * [`LocalMediaTrack`]: crate::api::LocalMediaTrack + * @param {Function} cb + */ + on_local_track(cb) { + wasm.roomhandle_on_local_track(this.ptr, addHeapObject(cb)); + } + /** + * Sets `on_failed_local_media` callback, invoked on local media + * acquisition failures. + * @param {Function} cb + */ + on_failed_local_media(cb) { + wasm.roomhandle_on_failed_local_media(this.ptr, addHeapObject(cb)); + } + /** + * Sets `on_connection_loss` callback, invoked when a connection with a + * server is lost. + * @param {Function} cb + */ + on_connection_loss(cb) { + wasm.roomhandle_on_connection_loss(this.ptr, addHeapObject(cb)); + } + /** + * Updates this [`Room`]s [`MediaStreamSettings`]. This affects all + * [`PeerConnection`]s in this [`Room`]. If [`MediaStreamSettings`] is + * configured for some [`Room`], then this [`Room`] can only send media + * tracks that correspond to this settings. [`MediaStreamSettings`] + * update will change media tracks in all sending peers, so that might + * cause new [getUserMedia()][1] request. + * + * Media obtaining/injection errors are additionally fired to + * `on_failed_local_media` callback. + * + * If `stop_first` set to `true` then affected [`LocalMediaTrack`]s will be + * dropped before new [`MediaStreamSettings`] is applied. This is usually + * required when changing video source device due to hardware limitations, + * e.g. having an active track sourced from device `A` may hinder + * [getUserMedia()][1] requests to device `B`. + * + * `rollback_on_fail` option configures [`MediaStreamSettings`] update + * request to automatically rollback to previous settings if new settings + * cannot be applied. + * + * If recovering from fail state isn't possible then affected media types + * will be disabled. + * + * [`Room`]: room::Room + * [`PeerConnection`]: crate::peer::PeerConnection + * [`LocalMediaTrack`]: crate::api::LocalMediaTrack + * [1]: https://tinyurl.com/w3-streams#dom-mediadevices-getusermedia + * @param {MediaStreamSettings} settings + * @param {boolean} stop_first + * @param {boolean} rollback_on_fail + * @returns {Promise} + */ + set_local_media_settings(settings, stop_first, rollback_on_fail) { + _assertClass(settings, MediaStreamSettings); + var ret = wasm.roomhandle_set_local_media_settings(this.ptr, settings.ptr, stop_first, rollback_on_fail); + return takeObject(ret); + } + /** + * Mutes outbound audio in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if [`RoomHandle::unmute_audio()`] was + * called while muting or a media server didn't approve this state + * transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + mute_audio() { + var ret = wasm.roomhandle_mute_audio(this.ptr); + return takeObject(ret); + } + /** + * Unmutes outbound audio in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if [`RoomHandle::mute_audio()`] was + * called while unmuting or a media server didn't approve this state + * transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + unmute_audio() { + var ret = wasm.roomhandle_unmute_audio(this.ptr); + return takeObject(ret); + } + /** + * Mutes outbound video in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if [`RoomHandle::unmute_video()`] was + * called while muting or a media server didn't approve this state + * transition. + * + * [`Room`]: room::Room + * @param {number | undefined} source_kind + * @returns {Promise} + */ + mute_video(source_kind) { + var ret = wasm.roomhandle_mute_video(this.ptr, isLikeNone(source_kind) ? 2 : source_kind); + return takeObject(ret); + } + /** + * Unmutes outbound video in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if [`RoomHandle::mute_video()`] was + * called while unmuting or a media server didn't approve this state + * transition. + * + * [`Room`]: room::Room + * @param {number | undefined} source_kind + * @returns {Promise} + */ + unmute_video(source_kind) { + var ret = wasm.roomhandle_unmute_video(this.ptr, isLikeNone(source_kind) ? 2 : source_kind); + return takeObject(ret); + } + /** + * Disables outbound audio in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if the target sender is configured as + * `required` by a media server or [`RoomHandle::enable_audio()`] was + * called while disabling or a media server didn't approve this state + * transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + disable_audio() { + var ret = wasm.roomhandle_disable_audio(this.ptr); + return takeObject(ret); + } + /** + * Enables outbound audio in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if [`RoomHandle::disable_audio()`] was + * called while enabling or a media server didn't approve this state + * transition. + * + * With `name = 'MediaManagerError'` if media acquisition request to User + * Agent failed. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + enable_audio() { + var ret = wasm.roomhandle_enable_audio(this.ptr); + return takeObject(ret); + } + /** + * Disables outbound video. + * + * Affects only video with a specific [`MediaSourceKind`] if specified. + * + * # Errors + * + * With `name = 'MediaConnections'` if the target sender is configured as + * `required` by a media server or [`RoomHandle::enable_video()`] was + * called while disabling or a media server didn't approve this state + * transition. + * @param {number | undefined} source_kind + * @returns {Promise} + */ + disable_video(source_kind) { + var ret = wasm.roomhandle_disable_video(this.ptr, isLikeNone(source_kind) ? 2 : source_kind); + return takeObject(ret); + } + /** + * Enables outbound video. + * + * Affects only video with a specific [`MediaSourceKind`] if specified. + * + * # Errors + * + * With `name = 'MediaConnections'` if [`RoomHandle::disable_video()`] was + * called while enabling or a media server didn't approve this state + * transition. + * + * With `name = 'MediaManagerError'` if media acquisition request to User + * Agent failed. + * @param {number | undefined} source_kind + * @returns {Promise} + */ + enable_video(source_kind) { + var ret = wasm.roomhandle_enable_video(this.ptr, isLikeNone(source_kind) ? 2 : source_kind); + return takeObject(ret); + } + /** + * Disables inbound audio in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if + * [`RoomHandle::enable_remote_audio()`] was called while disabling or a + * media server didn't approve this state transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + disable_remote_audio() { + var ret = wasm.roomhandle_disable_remote_audio(this.ptr); + return takeObject(ret); + } + /** + * Disables inbound video in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if + * [`RoomHandle::enable_remote_video()`] was called while disabling or + * a media server didn't approve this state transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + disable_remote_video() { + var ret = wasm.roomhandle_disable_remote_video(this.ptr); + return takeObject(ret); + } + /** + * Enables inbound audio in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if + * [`RoomHandle::disable_remote_audio()`] was called while enabling or a + * media server didn't approve this state transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + enable_remote_audio() { + var ret = wasm.roomhandle_enable_remote_audio(this.ptr); + return takeObject(ret); + } + /** + * Enables inbound video in this [`Room`]. + * + * # Errors + * + * With `name = 'MediaConnections'` if + * [`RoomHandle::disable_remote_video()`] was called while enabling or a + * media server didn't approve this state transition. + * + * [`Room`]: room::Room + * @returns {Promise} + */ + enable_remote_video() { + var ret = wasm.roomhandle_enable_remote_video(this.ptr); + return takeObject(ret); + } +} +/** +* Exceptions thrown from a RPC client that implements messaging with media +* server. +*/ +export class RpcClientException { + + static __wrap(ptr) { + const obj = Object.create(RpcClientException.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_rpcclientexception_free(ptr); + } + /** + * Returns concrete error kind of this [`RpcClientException`]. + * @returns {number} + */ + kind() { + var ret = wasm.localmediainitexception_kind(this.ptr); + return ret >>> 0; + } + /** + * Returns an error message describing the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns [`platform::Error`] causing this [`RpcClientException`]. + * @returns {Error | undefined} + */ + cause() { + var ret = wasm.internalexception_cause(this.ptr); + return takeObject(ret); + } + /** + * Returns stacktrace of this [`RpcClientException`]. + * @returns {string} + */ + trace() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.internalexception_trace(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} +/** +* Error thrown when the operation wasn't allowed by the current state of the +* object. +*/ +export class StateError { + + static __wrap(ptr) { + const obj = Object.create(StateError.prototype); + obj.ptr = ptr; + + return obj; + } + + __destroy_into_raw() { + const ptr = this.ptr; + this.ptr = 0; + + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_stateerror_free(ptr); + } + /** + * Returns message describing the problem. + * @returns {string} + */ + message() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.formatexception_message(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } + /** + * Returns native stacktrace of this [`StateError`]. + * @returns {string} + */ + trace() { + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + wasm.mediastatetransitionexception_trace(retptr, this.ptr); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(r0, r1); + } + } +} + +async function load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + + } catch (e) { + if (module.headers.get('Content-Type') != 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { + throw e; + } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + + } else { + return instance; + } + } +} + +async function init(input) { + if (typeof input === 'undefined') { + input = new URL('medea_jason_bg.wasm', import.meta.url); + } + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); + }; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + var ret = getObject(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_roomclosereason_new = function(arg0) { + var ret = RoomCloseReason.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_inputdeviceinfo_new = function(arg0) { + var ret = InputDeviceInfo.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_enumeratedevicesexception_new = function(arg0) { + var ret = EnumerateDevicesException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + var ret = getStringFromWasm0(arg0, arg1); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_string_get = function(arg0, arg1) { + const obj = getObject(arg1); + var ret = typeof(obj) === 'string' ? obj : undefined; + var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_localmediatrack_new = function(arg0) { + var ret = LocalMediaTrack.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_cb_drop = function(arg0) { + const obj = takeObject(arg0).original; + if (obj.cnt-- == 1) { + obj.a = 0; + return true; + } + var ret = false; + return ret; + }; + imports.wbg.__wbindgen_number_new = function(arg0) { + var ret = arg0; + return addHeapObject(ret); + }; + imports.wbg.__wbg_reconnecthandle_new = function(arg0) { + var ret = ReconnectHandle.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_connectionhandle_new = function(arg0) { + var ret = ConnectionHandle.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_remotemediatrack_new = function(arg0) { + var ret = RemoteMediaTrack.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_stateerror_new = function(arg0) { + var ret = StateError.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_localmediainitexception_new = function(arg0) { + var ret = LocalMediaInitException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_rpcclientexception_new = function(arg0) { + var ret = RpcClientException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_internalexception_new = function(arg0) { + var ret = InternalException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_formatexception_new = function(arg0) { + var ret = FormatException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_mediastatetransitionexception_new = function(arg0) { + var ret = MediaStateTransitionException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_mediasettingsupdateexception_new = function(arg0) { + var ret = MediaSettingsUpdateException.__wrap(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_json_serialize = function(arg0, arg1) { + const obj = getObject(arg1); + var ret = JSON.stringify(obj === undefined ? null : obj); + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbindgen_is_undefined = function(arg0) { + var ret = getObject(arg0) === undefined; + return ret; + }; + imports.wbg.__wbindgen_is_string = function(arg0) { + var ret = typeof(getObject(arg0)) === 'string'; + return ret; + }; + imports.wbg.__wbindgen_number_get = function(arg0, arg1) { + const obj = getObject(arg1); + var ret = typeof(obj) === 'number' ? obj : undefined; + getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret; + getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); + }; + imports.wbg.__wbg_new_693216e109162396 = function() { + var ret = new Error(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_stack_0ddaca5d1abfb52f = function(arg0, arg1) { + var ret = getObject(arg1).stack; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_error_09919627ac0992f5 = function(arg0, arg1) { + try { + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(arg0, arg1); + } + }; + imports.wbg.__wbg_randomFillSync_64cc7d048f228ca8 = function() { return handleError(function (arg0, arg1, arg2) { + getObject(arg0).randomFillSync(getArrayU8FromWasm0(arg1, arg2)); + }, arguments) }; + imports.wbg.__wbg_getRandomValues_98117e9a7e993920 = function() { return handleError(function (arg0, arg1) { + getObject(arg0).getRandomValues(getObject(arg1)); + }, arguments) }; + imports.wbg.__wbg_process_2f24d6544ea7b200 = function(arg0) { + var ret = getObject(arg0).process; + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_is_object = function(arg0) { + const val = getObject(arg0); + var ret = typeof(val) === 'object' && val !== null; + return ret; + }; + imports.wbg.__wbg_versions_6164651e75405d4a = function(arg0) { + var ret = getObject(arg0).versions; + return addHeapObject(ret); + }; + imports.wbg.__wbg_node_4b517d861cbcb3bc = function(arg0) { + var ret = getObject(arg0).node; + return addHeapObject(ret); + }; + imports.wbg.__wbg_crypto_98fc271021c7d2ad = function(arg0) { + var ret = getObject(arg0).crypto; + return addHeapObject(ret); + }; + imports.wbg.__wbg_msCrypto_a2cdb043d2bfe57f = function(arg0) { + var ret = getObject(arg0).msCrypto; + return addHeapObject(ret); + }; + imports.wbg.__wbg_modulerequire_3440a4bcf44437db = function() { return handleError(function (arg0, arg1) { + var ret = module.require(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_instanceof_Window_c4b70662a0d2c5ec = function(arg0) { + var ret = getObject(arg0) instanceof Window; + return ret; + }; + imports.wbg.__wbg_navigator_480e592af6ad365b = function(arg0) { + var ret = getObject(arg0).navigator; + return addHeapObject(ret); + }; + imports.wbg.__wbg_setTimeout_df66d951b1726b78 = function() { return handleError(function (arg0, arg1, arg2) { + var ret = getObject(arg0).setTimeout(getObject(arg1), arg2); + return ret; + }, arguments) }; + imports.wbg.__wbg_debug_f6147a62af5fb117 = function(arg0, arg1, arg2, arg3) { + console.debug(getObject(arg0), getObject(arg1), getObject(arg2), getObject(arg3)); + }; + imports.wbg.__wbg_error_cc38ce2b4b661e1d = function(arg0) { + console.error(getObject(arg0)); + }; + imports.wbg.__wbg_error_8b4a1487636c965d = function(arg0, arg1, arg2, arg3) { + console.error(getObject(arg0), getObject(arg1), getObject(arg2), getObject(arg3)); + }; + imports.wbg.__wbg_info_74a03c22e1fa6688 = function(arg0, arg1, arg2, arg3) { + console.info(getObject(arg0), getObject(arg1), getObject(arg2), getObject(arg3)); + }; + imports.wbg.__wbg_log_ad41dbc3d891c2dc = function(arg0, arg1, arg2, arg3) { + console.log(getObject(arg0), getObject(arg1), getObject(arg2), getObject(arg3)); + }; + imports.wbg.__wbg_warn_c1cc594c33944c11 = function(arg0, arg1, arg2, arg3) { + console.warn(getObject(arg0), getObject(arg1), getObject(arg2), getObject(arg3)); + }; + imports.wbg.__wbg_deviceId_350199b2112d0408 = function(arg0, arg1) { + var ret = getObject(arg1).deviceId; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_kind_c6688a64a17198c8 = function(arg0) { + var ret = getObject(arg0).kind; + return addHeapObject(ret); + }; + imports.wbg.__wbg_label_42cb031b00a72ac3 = function(arg0, arg1) { + var ret = getObject(arg1).label; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_groupId_cdc4396690e9dc29 = function(arg0, arg1) { + var ret = getObject(arg1).groupId; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_code_c8c420857439c0b4 = function(arg0) { + var ret = getObject(arg0).code; + return ret; + }; + imports.wbg.__wbg_reason_a10c58463722f72e = function(arg0, arg1) { + var ret = getObject(arg1).reason; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_replaceTrack_edb53e687bf62553 = function(arg0, arg1) { + var ret = getObject(arg0).replaceTrack(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_now_559193109055ebad = function(arg0) { + var ret = getObject(arg0).now(); + return ret; + }; + imports.wbg.__wbg_enumerateDevices_38c06c0670e96a13 = function() { return handleError(function (arg0) { + var ret = getObject(arg0).enumerateDevices(); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_getDisplayMedia_c88686749a34abc1 = function() { return handleError(function (arg0, arg1) { + var ret = getObject(arg0).getDisplayMedia(getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_getUserMedia_23e9ccf030cb41dd = function() { return handleError(function (arg0, arg1) { + var ret = getObject(arg0).getUserMedia(getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_data_9e55e7d79ab13ef1 = function(arg0) { + var ret = getObject(arg0).data; + return addHeapObject(ret); + }; + imports.wbg.__wbg_candidate_d3ec9190d1a6a676 = function(arg0) { + var ret = getObject(arg0).candidate; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_track_b0aa7a5107340204 = function(arg0) { + var ret = getObject(arg0).track; + return addHeapObject(ret); + }; + imports.wbg.__wbg_transceiver_bfa5e2559c444f77 = function(arg0) { + var ret = getObject(arg0).transceiver; + return addHeapObject(ret); + }; + imports.wbg.__wbg_iceConnectionState_905bab998d998769 = function(arg0) { + var ret = getObject(arg0).iceConnectionState; + return addHeapObject(ret); + }; + imports.wbg.__wbg_newwithconfiguration_87824e8779344883 = function() { return handleError(function (arg0) { + var ret = new RTCPeerConnection(getObject(arg0)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_addIceCandidate_eb9c65f70b127665 = function(arg0, arg1) { + var ret = getObject(arg0).addIceCandidate(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_addTransceiver_c03bd2fb6763b1cc = function(arg0, arg1, arg2, arg3) { + var ret = getObject(arg0).addTransceiver(getStringFromWasm0(arg1, arg2), getObject(arg3)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_close_48ba25e5ebb1d8bf = function(arg0) { + getObject(arg0).close(); + }; + imports.wbg.__wbg_createAnswer_673871c0d4e6a4f3 = function(arg0) { + var ret = getObject(arg0).createAnswer(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_createOffer_2a8707ae76e93186 = function(arg0, arg1) { + var ret = getObject(arg0).createOffer(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_getStats_8858e1503b9dabc1 = function(arg0) { + var ret = getObject(arg0).getStats(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_getTransceivers_13011ae8065e448b = function(arg0) { + var ret = getObject(arg0).getTransceivers(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_setLocalDescription_1370d7c0c79f7306 = function(arg0, arg1) { + var ret = getObject(arg0).setLocalDescription(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_setRemoteDescription_da4c3103aa5af9ee = function(arg0, arg1) { + var ret = getObject(arg0).setRemoteDescription(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_candidate_5b0dd80d3ef1a1e3 = function(arg0, arg1) { + var ret = getObject(arg1).candidate; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_sdpMid_82c3e29d17f56150 = function(arg0, arg1) { + var ret = getObject(arg1).sdpMid; + var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_sdpMLineIndex_6f7631be00101379 = function(arg0) { + var ret = getObject(arg0).sdpMLineIndex; + return isLikeNone(ret) ? 0xFFFFFF : ret; + }; + imports.wbg.__wbg_mid_fae704909c7ce546 = function(arg0, arg1) { + var ret = getObject(arg1).mid; + var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_sender_63914b57066a33ba = function(arg0) { + var ret = getObject(arg0).sender; + return addHeapObject(ret); + }; + imports.wbg.__wbg_stopped_ec912529e7200959 = function(arg0) { + var ret = getObject(arg0).stopped; + return ret; + }; + imports.wbg.__wbg_direction_8ae13585180ba106 = function(arg0) { + var ret = getObject(arg0).direction; + return addHeapObject(ret); + }; + imports.wbg.__wbg_setdirection_2beaa3d8705d6d3a = function(arg0, arg1) { + getObject(arg0).direction = takeObject(arg1); + }; + imports.wbg.__wbg_kind_f32d4772ec9c91fc = function(arg0, arg1) { + var ret = getObject(arg1).kind; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_id_782e594e28e7060b = function(arg0, arg1) { + var ret = getObject(arg1).id; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_setenabled_55036faf68730edb = function(arg0, arg1) { + getObject(arg0).enabled = arg1 !== 0; + }; + imports.wbg.__wbg_readyState_4138e1ec39790939 = function(arg0) { + var ret = getObject(arg0).readyState; + return addHeapObject(ret); + }; + imports.wbg.__wbg_clone_d718edad3bb5736f = function(arg0) { + var ret = getObject(arg0).clone(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_getSettings_51ce7f6edb2422d9 = function(arg0) { + var ret = getObject(arg0).getSettings(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_stop_01b2da0c36011d13 = function(arg0) { + getObject(arg0).stop(); + }; + imports.wbg.__wbg_sdp_e329f1196b04f3f4 = function(arg0, arg1) { + var ret = getObject(arg1).sdp; + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_getTracks_dce456ab4261063a = function(arg0) { + var ret = getObject(arg0).getTracks(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_mediaDevices_a3a23628770d1e2b = function() { return handleError(function (arg0) { + var ret = getObject(arg0).mediaDevices; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_addEventListener_52721772cc0a7f30 = function() { return handleError(function (arg0, arg1, arg2, arg3) { + getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3)); + }, arguments) }; + imports.wbg.__wbg_removeEventListener_f2adc9b2b318de99 = function() { return handleError(function (arg0, arg1, arg2, arg3) { + getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3)); + }, arguments) }; + imports.wbg.__wbg_new_982fe22cd93d67f7 = function() { return handleError(function (arg0, arg1) { + var ret = new WebSocket(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_close_0fba4b5df2a84fa1 = function() { return handleError(function (arg0, arg1, arg2, arg3) { + getObject(arg0).close(arg1, getStringFromWasm0(arg2, arg3)); + }, arguments) }; + imports.wbg.__wbg_send_503c2e7652e95bf5 = function() { return handleError(function (arg0, arg1, arg2) { + getObject(arg0).send(getStringFromWasm0(arg1, arg2)); + }, arguments) }; + imports.wbg.__wbg_get_67189fe0b323d288 = function(arg0, arg1) { + var ret = getObject(arg0)[arg1 >>> 0]; + return addHeapObject(ret); + }; + imports.wbg.__wbg_new_949bbc1147195c4e = function() { + var ret = new Array(); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_is_function = function(arg0) { + var ret = typeof(getObject(arg0)) === 'function'; + return ret; + }; + imports.wbg.__wbg_newnoargs_be86524d73f67598 = function(arg0, arg1) { + var ret = new Function(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_next_c4151d46d5fa7097 = function(arg0) { + var ret = getObject(arg0).next; + return addHeapObject(ret); + }; + imports.wbg.__wbg_next_7720502039b96d00 = function() { return handleError(function (arg0) { + var ret = getObject(arg0).next(); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_done_b06cf0578e89ff68 = function(arg0) { + var ret = getObject(arg0).done; + return ret; + }; + imports.wbg.__wbg_value_e74a542443d92451 = function(arg0) { + var ret = getObject(arg0).value; + return addHeapObject(ret); + }; + imports.wbg.__wbg_iterator_4fc4ce93e6b92958 = function() { + var ret = Symbol.iterator; + return addHeapObject(ret); + }; + imports.wbg.__wbg_get_4d0f21c2f823742e = function() { return handleError(function (arg0, arg1) { + var ret = Reflect.get(getObject(arg0), getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_call_888d259a5fefc347 = function() { return handleError(function (arg0, arg1) { + var ret = getObject(arg0).call(getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_new_0b83d3df67ecb33e = function() { + var ret = new Object(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_from_3a079295289ec0d1 = function(arg0) { + var ret = Array.from(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_push_284486ca27c6aa8b = function(arg0, arg1) { + var ret = getObject(arg0).push(getObject(arg1)); + return ret; + }; + imports.wbg.__wbg_values_364ae56c608e6824 = function(arg0) { + var ret = getObject(arg0).values(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_instanceof_Error_561efcb1265706d8 = function(arg0) { + var ret = getObject(arg0) instanceof Error; + return ret; + }; + imports.wbg.__wbg_new_342a24ca698edd87 = function(arg0, arg1) { + var ret = new Error(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_toString_0ef1ea57b966aed4 = function(arg0) { + var ret = getObject(arg0).toString(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_call_346669c262382ad7 = function() { return handleError(function (arg0, arg1, arg2) { + var ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_is_0f5efc7977a2c50b = function(arg0, arg1) { + var ret = Object.is(getObject(arg0), getObject(arg1)); + return ret; + }; + imports.wbg.__wbg_new_b1d61b5687f5e73a = function(arg0, arg1) { + try { + var state0 = {a: arg0, b: arg1}; + var cb0 = (arg0, arg1) => { + const a = state0.a; + state0.a = 0; + try { + return __wbg_adapter_342(a, state0.b, arg0, arg1); + } finally { + state0.a = a; + } + }; + var ret = new Promise(cb0); + return addHeapObject(ret); + } finally { + state0.a = state0.b = 0; + } + }; + imports.wbg.__wbg_resolve_d23068002f584f22 = function(arg0) { + var ret = Promise.resolve(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_then_2fcac196782070cc = function(arg0, arg1) { + var ret = getObject(arg0).then(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_then_8c2d62e8ae5978f7 = function(arg0, arg1, arg2) { + var ret = getObject(arg0).then(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_self_c6fbdfc2918d5e58 = function() { return handleError(function () { + var ret = self.self; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_window_baec038b5ab35c54 = function() { return handleError(function () { + var ret = window.window; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_globalThis_3f735a5746d41fbd = function() { return handleError(function () { + var ret = globalThis.globalThis; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_global_1bc0b39582740e95 = function() { return handleError(function () { + var ret = global.global; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_buffer_397eaa4d72ee94dd = function(arg0) { + var ret = getObject(arg0).buffer; + return addHeapObject(ret); + }; + imports.wbg.__wbg_new_a7ce447f15ff496f = function(arg0) { + var ret = new Uint8Array(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_set_969ad0a60e51d320 = function(arg0, arg1, arg2) { + getObject(arg0).set(getObject(arg1), arg2 >>> 0); + }; + imports.wbg.__wbg_length_1eb8fc608a0d4cdb = function(arg0) { + var ret = getObject(arg0).length; + return ret; + }; + imports.wbg.__wbg_newwithlength_929232475839a482 = function(arg0) { + var ret = new Uint8Array(arg0 >>> 0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_subarray_8b658422a224f479 = function(arg0, arg1, arg2) { + var ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0); + return addHeapObject(ret); + }; + imports.wbg.__wbg_set_82a4e8a85e31ac42 = function() { return handleError(function (arg0, arg1, arg2) { + var ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); + return ret; + }, arguments) }; + imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { + var ret = debugString(getObject(arg1)); + var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + imports.wbg.__wbindgen_rethrow = function(arg0) { + throw takeObject(arg0); + }; + imports.wbg.__wbindgen_memory = function() { + var ret = wasm.memory; + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper2326 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 659, __wbg_adapter_34); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper2327 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 659, __wbg_adapter_37); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper2330 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 659, __wbg_adapter_40); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper2332 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 659, __wbg_adapter_43); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper2334 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 659, __wbg_adapter_46); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper2556 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 760, __wbg_adapter_49); + return addHeapObject(ret); + }; + + if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) { + input = fetch(input); + } + + + + const { instance, module } = await load(await input, imports); + + wasm = instance.exports; + init.__wbindgen_wasm_module = module; + + return wasm; +} + +export default init; + diff --git a/flutter/assets/pkg/medea_jason_bg.wasm b/flutter/assets/pkg/medea_jason_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..93e8d40764435222923016385a1f1fe84625c17e GIT binary patch literal 1726630 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 z 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

j-T0sGKW<+3`;5fH={c9 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%0Dm3T#Ddf!CsGx8<$Iv=6kzo&bO? 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

  • D6FjTY&N$d@enIKZt!C}z^tdr#GMr8 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%0Aq(BzSS4IeV^@0Ie^sh)eCe?Vz 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

    O!Bx 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

    yjEOCI9 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

    #X4Sfpzg*M0s=3llMNz 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 z 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μ-(?PwLOG$H`ZXo^AcUYudKbSiJ-w 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

    ri-=o`-}&m1cJD>pZAoxeNy@BBN5fAjMc{-J6N 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 literal 0 HcmV?d00001 diff --git a/flutter/example/integration_test/jason.dart b/flutter/example/integration_test/jason.dart index 1c1577b33..b373f5a4e 100644 --- a/flutter/example/integration_test/jason.dart +++ b/flutter/example/integration_test/jason.dart @@ -3,21 +3,20 @@ import 'dart:ffi'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; -import 'package:medea_jason/audio_track_constraints.dart'; -import 'package:medea_jason/connection_handle.dart'; -import 'package:medea_jason/device_video_track_constraints.dart'; -import 'package:medea_jason/display_video_track_constraints.dart'; -import 'package:medea_jason/ffi/exceptions.dart'; -import 'package:medea_jason/ffi/foreign_value.dart'; -import 'package:medea_jason/ffi/result.dart'; -import 'package:medea_jason/input_device_info.dart'; -import 'package:medea_jason/jason.dart'; -import 'package:medea_jason/media_stream_settings.dart'; -import 'package:medea_jason/reconnect_handle.dart'; -import 'package:medea_jason/remote_media_track.dart'; -import 'package:medea_jason/room_close_reason.dart'; -import 'package:medea_jason/track_kinds.dart'; -import 'package:medea_jason/util/nullable_pointer.dart'; +import 'package:medea_jason/medea_jason.dart'; +import 'package:medea_jason/src/interface/track_kinds.dart'; +import 'package:medea_jason/src/native/audio_track_constraints.dart'; +import 'package:medea_jason/src/native/device_video_track_constraints.dart'; +import 'package:medea_jason/src/native/display_video_track_constraints.dart'; +import 'package:medea_jason/src/native/ffi/exceptions.dart'; +import 'package:medea_jason/src/native/ffi/foreign_value.dart'; +import 'package:medea_jason/src/native/ffi/nullable_pointer.dart'; +import 'package:medea_jason/src/native/ffi/result.dart'; +import 'package:medea_jason/src/native/input_device_info.dart'; +import 'package:medea_jason/src/native/jason.dart'; +import 'package:medea_jason/src/native/local_media_track.dart'; +import 'package:medea_jason/src/native/media_stream_settings.dart'; +import 'package:medea_jason/src/native/room_handle.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -54,10 +53,14 @@ void main() { expect(devices.length, equals(3)); expect(tracks.length, equals(3)); - expect(devices.first.ptr.getInnerPtr(), - isNot(equals(devices.last.ptr.getInnerPtr()))); - expect(tracks.first.ptr.getInnerPtr(), - isNot(equals(tracks.last.ptr.getInnerPtr()))); + expect( + (devices.first as NativeInputDeviceInfo).ptr.getInnerPtr(), + isNot( + equals((devices.last as NativeInputDeviceInfo).ptr.getInnerPtr()))); + expect( + (tracks.first as NativeLocalMediaTrack).ptr.getInnerPtr(), + isNot( + equals((tracks.last as NativeLocalMediaTrack).ptr.getInnerPtr()))); expect(devices.first.deviceId(), equals('InputDeviceInfo.device_id')); expect(devices.first.groupId(), equals('InputDeviceInfo.group_id')); @@ -236,10 +239,9 @@ void main() { expect( () => conn.getRemoteMemberId(), - throwsA(allOf( - isStateError, - predicate( - (e) => e.message == 'ConnectionHandle is in detached state')))); + throwsA(predicate((e) => + e is StateError && + e.message == 'ConnectionHandle is in detached state'))); var allFired = List.generate(2, (_) => Completer()); conn.onQualityScoreUpdate((score) { allFired[0].complete(score); @@ -325,8 +327,9 @@ void main() { } expect( stateErr, - allOf(isStateError, - predicate((e) => e.message == 'RoomHandle is in detached state'))); + allOf(predicate((e) => + e is StateError && + e.message == 'RoomHandle is in detached state'))); var formatExc; try { @@ -336,10 +339,9 @@ void main() { } expect( formatExc, - allOf( - isFormatException, - predicate( - (e) => e.message.contains('relative URL without a base')))); + allOf(predicate((e) => + e is FormatException && + e.message.contains('relative URL without a base')))); var localMediaErr = Completer(); room.onFailedLocalMedia((err) { @@ -448,7 +450,7 @@ void main() { dl.lookupFunction( 'returns_none'); final returnsHandlePtr = dl.lookupFunction('returns_handle_ptr'); + ForeignValue Function(Object?)>('returns_handle_ptr'); final returnsString = dl.lookupFunction( 'returns_string'); @@ -458,8 +460,8 @@ void main() { expect(returnsNone().toDart(), equals(null)); - var inputDevice = - InputDeviceInfo(NullablePointer(returnsInputDevicePtr().toDart())); + var inputDevice = NativeInputDeviceInfo( + NullablePointer(returnsInputDevicePtr().toDart())); expect(inputDevice.deviceId(), equals('InputDeviceInfo.device_id')); inputDevice.free(); @@ -509,7 +511,8 @@ void main() { var err; var arg = ForeignValue.fromInt(123); try { - await (_muteVideo(room.ptr.getInnerPtr(), arg.ref) as Future); + await (_muteVideo((room as NativeRoomHandle).ptr.getInnerPtr(), arg.ref) + as Future); } catch (e) { err = e as ArgumentError; } finally { diff --git a/flutter/example/lib/call.dart b/flutter/example/lib/call.dart new file mode 100644 index 000000000..4c049b089 --- /dev/null +++ b/flutter/example/lib/call.dart @@ -0,0 +1,80 @@ +import 'package:medea_jason/medea_jason.dart'; +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +const MEDEA_HOST = '127.0.0.1'; +const MEDEA_PORT = 8080; + +class Call { + final Jason _jason = Jason(); + late RoomHandle _room; + late Function(MediaStream) _onLocalStream; + List _tracks = []; + + Call() { + _room = _jason.initRoom(); + } + + Future start(String roomId, String memberId) async { + var constraints = MediaStreamSettings(); + constraints.audio(AudioTrackConstraints()); + constraints.deviceVideo(DeviceVideoTrackConstraints()); + + var tracks = await _jason.mediaManager().initLocalTracks(constraints); + _room.onFailedLocalMedia((e) { + print('onFailedLocalMedia'); + }); + _room.onConnectionLoss((e) { + print('onConnectionLoss'); + }); + await _room.setLocalMediaSettings(constraints, false, false); + _tracks = tracks; + + tracks.forEach((track) async { + if (track.kind() == MediaKind.Video) { + var localStream = await createLocalMediaStream('local'); + await localStream.addTrack(track.getTrack()); + _onLocalStream(localStream); + } + }); + + var url = 'ws://$MEDEA_HOST:$MEDEA_PORT/ws/$roomId/$memberId?token=test'; + await _room.join(url); + } + + void dispose() { + _tracks.forEach((t) => t.free()); + _jason.closeRoom(_room); + } + + void onLocalStream(Function(MediaStream) f) { + _onLocalStream = f; + } + + void onNewRemoteStream(Function(MediaStream) f) { + _room.onNewConnection((conn) { + var remoteMemberId = conn.getRemoteMemberId(); + conn.onRemoteTrackAdded((track) async { + var sysTrack = track.getTrack(); + var remoteStream = await createLocalMediaStream(remoteMemberId); + await remoteStream.addTrack(sysTrack); + f(remoteStream); + }); + }); + } + + Future toggleAudio(bool enabled) async { + if (enabled) { + await _room.unmuteAudio(); + } else { + await _room.muteAudio(); + } + } + + Future toggleVideo(bool enabled) async { + if (enabled) { + await _room.unmuteVideo(MediaSourceKind.Device); + } else { + await _room.muteVideo(MediaSourceKind.Device); + } + } +} diff --git a/flutter/example/lib/call_route.dart b/flutter/example/lib/call_route.dart new file mode 100644 index 000000000..1fe75de84 --- /dev/null +++ b/flutter/example/lib/call_route.dart @@ -0,0 +1,109 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +import 'call.dart'; + +class CallRoute extends StatefulWidget { + final String _roomId; + final String _memberId; + + CallRoute(this._roomId, this._memberId); + + @override + _CallState createState() => _CallState(_roomId, _memberId); +} + +class _CallState extends State { + bool _videoEnabled = true; + bool _audioEnabled = true; + final List _videos = List.empty(growable: true); + final Call _call = Call(); + late String _roomId; + late String _memberId; + + _CallState(String roomId, String memberId) { + _roomId = roomId; + _memberId = memberId; + } + + @override + void initState() { + _call.onNewRemoteStream((stream) async { + var renderer = RTCVideoRenderer(); + await renderer.initialize(); + renderer.srcObject = stream; + renderer.muted = false; + setState(() { + _videos.add(RTCVideoView(renderer)); + }); + }); + _call.onLocalStream((stream) async { + var renderer = RTCVideoRenderer(); + await renderer.initialize(); + renderer.srcObject = stream; + setState(() { + _videos.add(RTCVideoView(renderer, mirror: true)); + }); + }); + _call.start(_roomId, _memberId); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Medea call demo'), + ), + body: Center( + child: Container( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + child: Column( + children: + _videos.map((video) => Expanded(child: video)).toList(), + ))), + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + floatingActionButton: Padding( + padding: EdgeInsets.only(bottom: 50.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.only(right: 30.0), + child: FloatingActionButton( + onPressed: () async { + setState(() { + _audioEnabled = !_audioEnabled; + }); + await _call.toggleAudio(_audioEnabled); + }, + heroTag: null, + child: Icon(_audioEnabled ? Icons.mic_off : Icons.mic), + )), + Padding( + padding: EdgeInsets.only(right: 30.0), + child: FloatingActionButton( + onPressed: () async { + setState(() { + _videoEnabled = !_videoEnabled; + }); + await _call.toggleVideo(_videoEnabled); + }, + heroTag: null, + child: Icon( + _videoEnabled ? Icons.videocam_off : Icons.videocam), + )), + FloatingActionButton( + onPressed: () async { + _call.dispose(); + }, + heroTag: null, + backgroundColor: Colors.red, + child: Icon(Icons.call_end), + ), + ], + ))); + } +} diff --git a/flutter/example/lib/join_route.dart b/flutter/example/lib/join_route.dart new file mode 100644 index 000000000..344b7d3bc --- /dev/null +++ b/flutter/example/lib/join_route.dart @@ -0,0 +1,72 @@ +import 'package:flutter/material.dart'; + +import 'call_route.dart'; + +class JoinRoute extends StatefulWidget { + @override + _JoinRouteState createState() => _JoinRouteState(); +} + +const DEFAULT_ROOM_ID = 'pub-pub-video-call'; +const DEFAULT_MEMBER_ID = 'caller'; + +class _JoinRouteState extends State { + String _roomId = DEFAULT_ROOM_ID; + String _memberId = DEFAULT_MEMBER_ID; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Jason demo'), + ), + body: Center( + child: Container( + padding: EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Image.asset('assets/images/logo.png', height: 200), + TextFormField( + initialValue: DEFAULT_ROOM_ID, + onChanged: (text) { + setState(() { + _roomId = text; + }); + }, + decoration: InputDecoration( + hintText: 'Room ID', + ), + ), + TextFormField( + initialValue: DEFAULT_MEMBER_ID, + onChanged: (text) { + setState(() { + _memberId = text; + }); + }, + decoration: InputDecoration( + hintText: 'Member ID', + ), + ), + TextButton( + style: TextButton.styleFrom( + primary: Colors.white, + backgroundColor: Colors.blue, + onSurface: Colors.grey, + ), + onPressed: () { + print('RoomID: $_roomId and MemberID: $_memberId'); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + CallRoute(_roomId, _memberId))); + }, + child: Text('Join Room'), + ) + ], + ))), + ); + } +} diff --git a/flutter/example/lib/main.dart b/flutter/example/lib/main.dart index 4209104a3..8feec36e6 100644 --- a/flutter/example/lib/main.dart +++ b/flutter/example/lib/main.dart @@ -1,31 +1,12 @@ import 'package:flutter/material.dart'; +import 'join_route.dart'; void main() { - runApp(MyApp()); -} - -class MyApp extends StatefulWidget { - @override - _MyAppState createState() => _MyAppState(); -} - -class _MyAppState extends State { - @override - void initState() { - super.initState(); - } - - @override - Widget build(BuildContext context) { - return MaterialApp( - home: Scaffold( - appBar: AppBar( - title: const Text('Plugin example app'), - ), - body: Center( - child: Text(''), - ), - ), - ); - } + runApp(MaterialApp( + title: 'Medea demo', + initialRoute: '/', + routes: { + '/': (context) => JoinRoute(), + }, + )); } diff --git a/flutter/example/pubspec.lock b/flutter/example/pubspec.lock index 2b23c29a0..e205994b6 100644 --- a/flutter/example/pubspec.lock +++ b/flutter/example/pubspec.lock @@ -100,6 +100,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_webrtc: + dependency: transitive + description: + name: flutter_webrtc + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.8" fuchsia_remote_debug_protocol: dependency: transitive description: flutter @@ -110,6 +117,13 @@ packages: description: flutter source: sdk version: "0.0.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" matcher: dependency: transitive description: @@ -138,6 +152,41 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + path_provider: + dependency: transitive + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" pedantic: dependency: "direct dev" description: @@ -152,6 +201,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" process: dependency: transitive description: @@ -241,6 +297,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.0" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.14.0 <3.0.0" flutter: ">=2.0.0" diff --git a/flutter/example/pubspec.yaml b/flutter/example/pubspec.yaml index 61e8d2bf8..b9230a109 100644 --- a/flutter/example/pubspec.yaml +++ b/flutter/example/pubspec.yaml @@ -2,7 +2,8 @@ name: medea_jason_example description: Demonstrates how to use the medea_jason plugin. environment: - sdk: ">=2.7.0 <3.0.0" + sdk: ">=2.14.0 <3.0.0" + flutter: ">=2.0.0" dependencies: flutter: @@ -26,4 +27,6 @@ dev_dependencies: pedantic: ^1.9.0 flutter: + assets: + - assets/images/ uses-material-design: true diff --git a/flutter/example/web/favicon.png b/flutter/example/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/flutter/example/web/icons/Icon-192.png b/flutter/example/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/flutter/example/web/icons/Icon-512.png b/flutter/example/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/flutter/example/web/icons/Icon-maskable-192.png b/flutter/example/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/flutter/example/web/icons/Icon-maskable-512.png b/flutter/example/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/flutter/example/web/index.html b/flutter/example/web/index.html new file mode 100644 index 000000000..991857de2 --- /dev/null +++ b/flutter/example/web/index.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + Medea Jason demo + + + + + + + + diff --git a/flutter/example/web/manifest.json b/flutter/example/web/manifest.json new file mode 100644 index 000000000..40be58c1e --- /dev/null +++ b/flutter/example/web/manifest.json @@ -0,0 +1,30 @@ +{ + "name": "jason_example", + "short_name": "jason_example", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "Jason example", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [{ + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + }] +} diff --git a/flutter/lib/local_media_track.dart b/flutter/lib/local_media_track.dart deleted file mode 100644 index 6c2a2ae7a..000000000 --- a/flutter/lib/local_media_track.dart +++ /dev/null @@ -1,65 +0,0 @@ -import 'dart:ffi'; - -import 'jason.dart'; -import 'track_kinds.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; - -typedef _kind_C = Uint8 Function(Pointer); -typedef _kind_Dart = int Function(Pointer); - -typedef _mediaSourceKind_C = Uint8 Function(Pointer); -typedef _mediaSourceKind_Dart = int Function(Pointer); - -typedef _free_C = Void Function(Pointer); -typedef _free_Dart = void Function(Pointer); - -final _kind = dl.lookupFunction<_kind_C, _kind_Dart>('LocalMediaTrack__kind'); - -final _sourceKind = - dl.lookupFunction<_mediaSourceKind_C, _mediaSourceKind_Dart>( - 'LocalMediaTrack__media_source_kind'); - -final _free = dl.lookupFunction<_free_C, _free_Dart>('LocalMediaTrack__free'); - -/// Strongly referenced media track received from a -/// [`getUserMedia()`][1]/[`getDisplayMedia()`][2] request. -/// -/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia -/// [2]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia -class LocalMediaTrack { - /// [Pointer] to the Rust struct backing this object. - late NullablePointer ptr; - - /// Constructs a new [LocalMediaTrack] backed by the Rust struct behind the - /// provided [Pointer]. - LocalMediaTrack(this.ptr); - - /// Returns the [MediaKind.Audio] if this [LocalMediaTrack] represents an - /// audio track, or the [MediaKind.Video] if it represents a video track. - MediaKind kind() { - var index = _kind(ptr.getInnerPtr()); - return MediaKind.values[index]; - } - - /// Returns the [MediaSourceKind.Device] if this [LocalMediaTrack] is sourced - /// from some device (webcam/microphone), or the [MediaSourceKind.Display] - /// if it's captured via [`MediaDevices.getDisplayMedia()`][1]. - /// - /// [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia - MediaSourceKind mediaSourceKind() { - var index = _sourceKind(ptr.getInnerPtr()); - return MediaSourceKind.values[index]; - } - - /// Drops the associated Rust struct and nulls the local [Pointer] to it. - /// - /// Note, that this is a strong reference, so freeing it will stop underlying - /// track if there are no other strong references (i.e., not used in local - /// peer's senders). - @moveSemantics - void free() { - _free(ptr.getInnerPtr()); - ptr.free(); - } -} diff --git a/flutter/lib/medea_jason.dart b/flutter/lib/medea_jason.dart new file mode 100644 index 000000000..2f04a06c9 --- /dev/null +++ b/flutter/lib/medea_jason.dart @@ -0,0 +1,22 @@ +library medea_jason; + +export 'src/interface/connection_handle.dart'; +export 'src/interface/input_device_info.dart'; +export 'src/interface/remote_media_track.dart'; +export 'src/interface/media_manager.dart'; +export 'src/interface/reconnect_handle.dart'; +export 'src/interface/room_close_reason.dart'; +export 'src/interface/room_handle.dart'; +export 'src/interface/track_kinds.dart'; +export 'src/interface/local_media_track.dart'; +export 'src/interface/track_kinds.dart'; +export 'src/native/jason.dart' if (dart.library.html) 'src/web/jason.dart'; +export 'src/native/audio_track_constraints.dart' + if (dart.library.html) 'src/web/audio_track_constraints.dart'; +export 'src/interface/device_video_track_constraints.dart' show FacingMode; +export 'src/native/device_video_track_constraints.dart' + if (dart.library.html) 'src/web/device_video_track_constraints.dart'; +export 'src/native/display_video_track_constraints.dart' + if (dart.library.html) 'src/web/display_video_track_constraints.dart'; +export 'src/native/media_stream_settings.dart' + if (dart.library.html) 'src/web/media_stream_settings.dart'; diff --git a/flutter/lib/media_manager.dart b/flutter/lib/media_manager.dart deleted file mode 100644 index 5a28497c9..000000000 --- a/flutter/lib/media_manager.dart +++ /dev/null @@ -1,92 +0,0 @@ -import 'dart:ffi'; - -import 'ffi/ptrarray.dart'; -import 'input_device_info.dart'; -import 'jason.dart'; -import 'local_media_track.dart'; -import 'media_stream_settings.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; - -typedef _initLocalTracks_C = Handle Function(Pointer, Pointer); -typedef _initLocalTracks_Dart = Object Function(Pointer, Pointer); - -typedef _enumerateDevices_C = Handle Function(Pointer); -typedef _enumerateDevices_Dart = Object Function(Pointer); - -typedef _free_C = Void Function(Pointer); -typedef _free_Dart = void Function(Pointer); - -final _initLocalTracks = - dl.lookupFunction<_initLocalTracks_C, _initLocalTracks_Dart>( - 'MediaManagerHandle__init_local_tracks'); - -final _enumerateDevices = - dl.lookupFunction<_enumerateDevices_C, _enumerateDevices_Dart>( - 'MediaManagerHandle__enumerate_devices'); - -final _free = - dl.lookupFunction<_free_C, _free_Dart>('MediaManagerHandle__free'); - -/// External handle to a `MediaManager`. -/// -/// `MediaManager` performs all media acquisition requests -/// ([`getUserMedia()`][1]/[`getDisplayMedia()`][2]) and stores all received -/// tracks for further re-usage. -/// -/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia -/// [2]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia -class MediaManagerHandle { - /// [Pointer] to the Rust struct backing this object. - late NullablePointer ptr; - - /// Creates a new [MediaManagerHandle] backed by the Rust struct behind the - /// provided [Pointer]. - MediaManagerHandle(this.ptr); - - /// Obtains [LocalMediaTrack]s objects from local media devices (or screen - /// capture) basing on the provided [MediaStreamSettings]. - /// - /// Throws a [StateError] if an underlying object has been disposed, e.g. - /// [free] was called on this [MediaManagerHandle], or on a [Jason] that - /// implicitly owns native object behind this [MediaManagerHandle]. - /// - /// Throws a [LocalMediaInitException] if a request of platform media devices - /// access failed. - Future> initLocalTracks( - MediaStreamSettings caps) async { - Pointer tracks = - await (_initLocalTracks(ptr.getInnerPtr(), caps.ptr.getInnerPtr()) - as Future); - return tracks - .cast() - .intoPointerList() - .map((e) => LocalMediaTrack(NullablePointer(e))) - .toList(); - } - - /// Returns a list of [InputDeviceInfo] objects representing available media - /// input devices, such as microphones, cameras, and so forth. - /// - /// Throws a [StateError] if an underlying object has been disposed, e.g. - /// [free] was called on this [MediaManagerHandle], or on a [Jason] that - /// implicitly owns native object behind this [MediaManagerHandle]. - /// - /// Throws a [EnumerateDevicesException] if a request of platform media - /// devices access failed. - Future> enumerateDevices() async { - Pointer pointer = await (_enumerateDevices(ptr.getInnerPtr()) as Future); - return pointer - .cast() - .intoPointerList() - .map((e) => InputDeviceInfo(NullablePointer(e))) - .toList(); - } - - /// Drops the associated Rust struct and nulls the local [Pointer] to it. - @moveSemantics - void free() { - _free(ptr.getInnerPtr()); - ptr.free(); - } -} diff --git a/flutter/lib/src/interface/audio_track_constraints.dart b/flutter/lib/src/interface/audio_track_constraints.dart new file mode 100644 index 000000000..84bc6adb8 --- /dev/null +++ b/flutter/lib/src/interface/audio_track_constraints.dart @@ -0,0 +1,13 @@ +import '../util/move_semantic.dart'; + +/// Constraints applicable to audio tracks. +abstract class AudioTrackConstraints { + /// Sets an exact [`deviceId`][1] constraint. + /// + /// [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + void deviceId(String deviceId); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/connection_handle.dart b/flutter/lib/src/interface/connection_handle.dart new file mode 100644 index 000000000..e69ab83f5 --- /dev/null +++ b/flutter/lib/src/interface/connection_handle.dart @@ -0,0 +1,41 @@ +import 'remote_media_track.dart'; + +/// External handler to a `Connection` with a remote `Member`. +abstract class ConnectionHandle { + /// Returns ID of the remote `Member`. + /// + /// Throws a [StateError] if an underlying object has been disposed, e.g. + /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a + /// `RoomHandle` that implicitly owns native object behind this + /// [ConnectionHandle]. + String getRemoteMemberId(); + + /// Sets callback, invoked when this `Connection` is closed. + /// + /// Throws a [StateError] if an underlying object has been disposed, e.g. + /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a + /// `RoomHandle` that implicitly owns native object behind this + /// [ConnectionHandle]. + void onClose(void Function() f); + + /// Sets callback, invoked when a new [RemoteMediaTrack] is added to this + /// `Connection`. + /// + /// Throws a [StateError] if an underlying object has been disposed, e.g. + /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a + /// `RoomHandle` that implicitly owns native object behind this + /// [ConnectionHandle]. + void onRemoteTrackAdded(void Function(RemoteMediaTrack) f); + + /// Sets callback, invoked when a connection quality score is updated by a + /// server. + /// + /// Throws a [StateError] if an underlying object has been disposed, e.g. + /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a + /// `RoomHandle` that implicitly owns native object behind this + /// [ConnectionHandle]. + void onQualityScoreUpdate(void Function(int) f); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + void free(); +} diff --git a/flutter/lib/src/interface/device_video_track_constraints.dart b/flutter/lib/src/interface/device_video_track_constraints.dart new file mode 100644 index 000000000..9490c8758 --- /dev/null +++ b/flutter/lib/src/interface/device_video_track_constraints.dart @@ -0,0 +1,90 @@ +import '../util/move_semantic.dart'; + +/// Describes the directions that the camera can face, as seen from a user's +/// perspective. +/// +/// Representation of the [`VideoFacingModeEnum`][1]. +/// +/// [1]: https://w3.org/TR/mediacapture-streams#dom-videofacingmodeenum +enum FacingMode { + /// Facing towards the user (a self-view camera). + User, + + /// Facing away from the user (viewing an environment). + Environment, + + /// Facing to the left of the user. + Left, + + /// Facing to the right of the user. + Right, +} + +abstract class DeviceVideoTrackConstraints { + /// Sets an exact [`deviceId`][1] constraint. + /// + /// [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + void deviceId(String deviceId); + + /// Sets an exact [`facingMode`][1] constraint. + /// + /// [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring + void exactFacingMode(FacingMode facingMode); + + /// Sets an ideal [`facingMode`][1] constraint. + /// + /// [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring + void idealFacingMode(FacingMode facingMode); + + /// Sets an exact [`height`][1] constraint. + /// + /// Converts the provided [height] into an `u32`. Throws an [ArgumentError] if + /// conversion fails. + /// + /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + void exactHeight(int height); + + /// Sets an ideal [`height`][1] constraint. + /// + /// Converts the provided [height] into an `u32`. Throws an [ArgumentError] if + /// conversion fails. + /// + /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + void idealHeight(int height); + + /// Sets a range of a [`height`][1] constraint. + /// + /// Converts the provided [min] and [max] into an `u32`. Throws an + /// [ArgumentError] if conversion fails. + /// + /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + void heightInRange(int min, int max); + + /// Sets an exact [`width`][1] constraint. + /// + /// Converts the provided [width] into an `u32`. Throws an [ArgumentError] if + /// conversion fails. + /// + /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + void exactWidth(int width); + + /// Sets an ideal [`width`][1] constraint. + /// + /// Converts the provided [width] into an `u32`. Throws an [ArgumentError] if + /// conversion fails. + /// + /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + void idealWidth(int width); + + /// Sets a range of a [`width`][1] constraint. + /// + /// Converts the provided [min] and [max] into an `u32`. Throws an + /// [ArgumentError] if conversion fails. + /// + /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + void widthInRange(int min, int max); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/display_video_track_constraints.dart b/flutter/lib/src/interface/display_video_track_constraints.dart new file mode 100644 index 000000000..4f6abcba7 --- /dev/null +++ b/flutter/lib/src/interface/display_video_track_constraints.dart @@ -0,0 +1,8 @@ +import '../util/move_semantic.dart'; + +/// Constraints applicable to video tracks sourced from a screen capturing. +abstract class DisplayVideoTrackConstraints { + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/input_device_info.dart b/flutter/lib/src/interface/input_device_info.dart new file mode 100644 index 000000000..93b42ad98 --- /dev/null +++ b/flutter/lib/src/interface/input_device_info.dart @@ -0,0 +1,37 @@ +import '../util/move_semantic.dart'; +import 'track_kinds.dart'; + +/// [`MediaDeviceInfo`][1] interface. +/// +/// [1]: https://w3.org/TR/mediacapture-streams/#device-info +abstract class InputDeviceInfo { + /// Returns an unique identifier of the represented device. + String deviceId(); + + /// Returns label describing the represented device (for example "External USB + /// Webcam"). + /// + /// If the device has no associated label, then returns an empty string. + String label(); + + /// Returns kind of the represented device. + /// + /// This representation of a [`MediaDeviceInfo`][1] is ONLY for input devices. + /// + /// [1]: https://w3.org/TR/mediacapture-streams/#device-info + MediaKind kind(); + + /// Returns a group identifier of the represented device. + /// + /// Two devices have the same group identifier if they belong to the same + /// physical device. For example, the audio input and output devices + /// representing the speaker and microphone of the same headset have the + /// same [`groupId`][1]. + /// + /// [1]: https://w3.org/TR/mediacapture-streams/#dom-mediadeviceinfo-groupid + String groupId(); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/jason.dart b/flutter/lib/src/interface/jason.dart new file mode 100644 index 000000000..a2c9014bd --- /dev/null +++ b/flutter/lib/src/interface/jason.dart @@ -0,0 +1,22 @@ +import '../util/move_semantic.dart'; +import 'media_manager.dart'; +import 'room_handle.dart'; + +/// General library interface. +/// +/// Responsible for managing shared transports, local media and room +/// initialization. +abstract class Jason { + /// Returns a [MediaManagerHandle] to the `MediaManager` of this [Jason]. + MediaManagerHandle mediaManager(); + + /// Creates a new `Room` and returns its [RoomHandle]. + RoomHandle initRoom(); + + /// Closes the `Room` by the provided [RoomHandle]. + void closeRoom(@moveSemantics RoomHandle room); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/local_media_track.dart b/flutter/lib/src/interface/local_media_track.dart new file mode 100644 index 000000000..a7aa0026c --- /dev/null +++ b/flutter/lib/src/interface/local_media_track.dart @@ -0,0 +1,33 @@ +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +import '../util/move_semantic.dart'; +import 'track_kinds.dart'; + +/// Strongly referenced media track received from a +/// [`getUserMedia()`][1]/[`getDisplayMedia()`][2] request. +/// +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia +/// [2]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia +abstract class LocalMediaTrack { + /// Returns the [MediaKind.Audio] if this [LocalMediaTrack] represents an + /// audio track, or the [MediaKind.Video] if it represents a video track. + MediaKind kind(); + + /// Returns the [MediaSourceKind.Device] if this [LocalMediaTrack] is sourced + /// from some device (webcam/microphone), or the [MediaSourceKind.Display] + /// if it's captured via [`MediaDevices.getDisplayMedia()`][1]. + /// + /// [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia + MediaSourceKind mediaSourceKind(); + + /// Returns underlying [MediaStreamTrack] of this [LocalMediaTrack]. + MediaStreamTrack getTrack(); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + /// + /// Note, that this is a strong reference, so freeing it will stop underlying + /// track if there are no other strong references (i.e., not used in local + /// peer's senders). + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/media_manager.dart b/flutter/lib/src/interface/media_manager.dart new file mode 100644 index 000000000..6c8f71a13 --- /dev/null +++ b/flutter/lib/src/interface/media_manager.dart @@ -0,0 +1,40 @@ +import 'input_device_info.dart'; +import 'local_media_track.dart'; +import 'media_stream_settings.dart'; +import '../util/move_semantic.dart'; + +/// External handle to a `MediaManager`. +/// +/// `MediaManager` performs all media acquisition requests +/// ([`getUserMedia()`][1]/[`getDisplayMedia()`][2]) and stores all received +/// tracks for further re-usage. +/// +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia +/// [2]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia +abstract class MediaManagerHandle { + /// Obtains [LocalMediaTrack]s objects from local media devices (or screen + /// capture) basing on the provided [MediaStreamSettings]. + /// + /// Throws a [StateError] if an underlying object has been disposed, e.g. + /// [free] was called on this [MediaManagerHandle], or on a [Jason] that + /// implicitly owns native object behind this [MediaManagerHandle]. + /// + /// Throws a [LocalMediaInitException] if a request of platform media devices + /// access failed. + Future> initLocalTracks(MediaStreamSettings caps); + + /// Returns a list of [InputDeviceInfo] objects representing available media + /// input devices, such as microphones, cameras, and so forth. + /// + /// Throws a [StateError] if an underlying object has been disposed, e.g. + /// [free] was called on this [MediaManagerHandle], or on a [Jason] that + /// implicitly owns native object behind this [MediaManagerHandle]. + /// + /// Throws a [EnumerateDevicesException] if a request of platform media + /// devices access failed. + Future> enumerateDevices(); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/media_stream_settings.dart b/flutter/lib/src/interface/media_stream_settings.dart new file mode 100644 index 000000000..bda1f040b --- /dev/null +++ b/flutter/lib/src/interface/media_stream_settings.dart @@ -0,0 +1,22 @@ +import '../util/move_semantic.dart'; +import 'audio_track_constraints.dart'; +import 'display_video_track_constraints.dart'; +import 'device_video_track_constraints.dart'; + +/// Representation of [`MediaStreamConstraints`][1]. +/// +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamconstraints +abstract class MediaStreamSettings { + /// Specifies a nature and settings of the audio `LocalMediaTrack`. + void audio(@moveSemantics AudioTrackConstraints constraints); + + /// Sets constraints for obtaining a local video, sourced from a media device. + void deviceVideo(@moveSemantics DeviceVideoTrackConstraints constraints); + + /// Set constraints for capturing a local video from user's display. + void displayVideo(@moveSemantics DisplayVideoTrackConstraints constraints); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/reconnect_handle.dart b/flutter/lib/src/interface/reconnect_handle.dart similarity index 54% rename from flutter/lib/reconnect_handle.dart rename to flutter/lib/src/interface/reconnect_handle.dart index 692343dc1..28d97bd71 100644 --- a/flutter/lib/reconnect_handle.dart +++ b/flutter/lib/src/interface/reconnect_handle.dart @@ -1,42 +1,9 @@ -import 'dart:ffi'; - -import 'ffi/foreign_value.dart'; -import 'jason.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; - -typedef _free_C = Void Function(Pointer); -typedef _free_Dart = void Function(Pointer); - -typedef _reconnect_with_delay_C = Handle Function(Pointer, Int64); -typedef _reconnect_with_delay_Dart = Object Function(Pointer, int); - -typedef _reconnect_with_backoff_C = Handle Function( - Pointer, Int64, Double, Int64, ForeignValue); -typedef _reconnect_with_backoff_Dart = Object Function( - Pointer, int, double, int, ForeignValue); - -final _free = dl.lookupFunction<_free_C, _free_Dart>('ReconnectHandle__free'); - -final _reconnect_with_delay = - dl.lookupFunction<_reconnect_with_delay_C, _reconnect_with_delay_Dart>( - 'ReconnectHandle__reconnect_with_delay'); - -final _reconnect_with_backoff = - dl.lookupFunction<_reconnect_with_backoff_C, _reconnect_with_backoff_Dart>( - 'ReconnectHandle__reconnect_with_backoff'); +import '../util/move_semantic.dart'; /// External handle used to reconnect to a media server when connection is lost. /// /// This handle is passed to the `RoomHandle.onConnectionLoss()` callback. -class ReconnectHandle { - /// [Pointer] to the Rust struct backing this object. - late NullablePointer ptr; - - /// Constructs a new [ReconnectHandle] backed by the Rust struct behind the - /// provided [Pointer]. - ReconnectHandle(this.ptr); - +abstract class ReconnectHandle { /// Tries to reconnect a `Room` after the provided delay in milliseconds. /// /// If the `Room` is already reconnecting then new reconnection attempt won't @@ -49,9 +16,7 @@ class ReconnectHandle { /// /// Converts the provided [delayMs] into an `u32`. Throws an [ArgumentError] /// if conversion fails. - Future reconnectWithDelay(int delayMs) async { - await (_reconnect_with_delay(ptr.getInnerPtr(), delayMs) as Future); - } + Future reconnectWithDelay(int delayMs); /// Tries to reconnect a `Room` in a loop with a growing backoff delay. /// @@ -81,19 +46,9 @@ class ReconnectHandle { /// into an `u32`s. Throws an [ArgumentError] if any conversion fails. Future reconnectWithBackoff( int startingDelayMs, double multiplier, int maxDelay, - [int? maxElapsedTimeMs]) async { - var maxElapsedTimeMs_arg = maxElapsedTimeMs == null - ? ForeignValue.none() - : ForeignValue.fromInt(maxElapsedTimeMs); - - await (_reconnect_with_backoff(ptr.getInnerPtr(), startingDelayMs, - multiplier, maxDelay, maxElapsedTimeMs_arg.ref) as Future); - } + [int? maxElapsedTimeMs]); /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics - void free() { - _free(ptr.getInnerPtr()); - ptr.free(); - } + void free(); } diff --git a/flutter/lib/src/interface/remote_media_track.dart b/flutter/lib/src/interface/remote_media_track.dart new file mode 100644 index 000000000..cc876a599 --- /dev/null +++ b/flutter/lib/src/interface/remote_media_track.dart @@ -0,0 +1,43 @@ +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +import '../util/move_semantic.dart'; +import 'track_kinds.dart'; + +/// Representation of a received remote [`MediaStreamTrack`][1]. +/// +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack +abstract class RemoteMediaTrack { + /// Indicates whether this [RemoteMediaTrack] is enabled. + bool enabled(); + + /// Indicate whether this [RemoteMediaTrack] is muted. + bool muted(); + + /// Returns this [RemoteMediaTrack]'s kind (audio/video). + MediaKind kind(); + + /// Returns this [RemoteMediaTrack]'s media source kind (device/display). + MediaSourceKind mediaSourceKind(); + + /// Returns underlying [MediaStreamTrack] of this [LocalMediaTrack]. + MediaStreamTrack getTrack(); + + /// Sets callback, invoked when this [RemoteMediaTrack] is enabled. + void onEnabled(void Function() f); + + /// Sets callback, invoked when this [RemoteMediaTrack] is disabled. + void onDisabled(void Function() f); + + /// Sets callback to invoke when this [RemoteMediaTrack] is muted. + void onMuted(void Function() f); + + /// Sets callback to invoke when this [RemoteMediaTrack] is unmuted. + void onUnmuted(void Function() f); + + /// Sets callback to invoke when this [RemoteMediaTrack] is stopped. + void onStopped(void Function() f); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/room_close_reason.dart b/flutter/lib/src/interface/room_close_reason.dart new file mode 100644 index 000000000..458ab54e8 --- /dev/null +++ b/flutter/lib/src/interface/room_close_reason.dart @@ -0,0 +1,19 @@ +import '../util/move_semantic.dart'; + +/// Reason of why a `Room` has been closed. +/// +/// This struct is passed into the `RoomHandle.onClose()` callback. +abstract class RoomCloseReason { + /// Returns a close reason of the `Room`. + String reason(); + + /// Indicates whether the `Room` was closed by server. + bool isClosedByServer(); + + /// Indicates whether the `Room`'s close reason is considered as an error. + bool isErr(); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/src/interface/room_handle.dart b/flutter/lib/src/interface/room_handle.dart new file mode 100644 index 000000000..340deffee --- /dev/null +++ b/flutter/lib/src/interface/room_handle.dart @@ -0,0 +1,217 @@ +import '../util/move_semantic.dart'; +import 'connection_handle.dart'; +import 'local_media_track.dart'; +import 'media_stream_settings.dart'; +import 'reconnect_handle.dart'; +import 'room_close_reason.dart'; +import 'track_kinds.dart'; + +/// External handle to a `Room`. +abstract class RoomHandle { + /// Connects to a media server and joins the `Room` with the provided + /// authorization [token]. + /// + /// Authorization token has a fixed format: + /// `{{ Host URL }}/{{ Room ID }}/{{ Member ID }}?token={{ Auth Token }}` + /// (e.g. `wss://medea.com/MyConf1/Alice?token=777`). + /// + /// Throws [StateError] if the underlying [Pointer] has been freed or if some + /// mandatory callback is not set. These callbacks are: + /// [RoomHandle.onConnectionLoss] and [RoomHandle.onFailedLocalMedia]. + /// + /// Throws [FormatException] if the provided [token] string has bad format. + /// + /// Throws `RpcClientException` if could not connect to media server. + Future join(String token); + + /// Updates this `Room`'s [MediaStreamSettings]. This affects all the + /// `PeerConnection`s in this `Room`. If [MediaStreamSettings] are configured + /// for some `Room`, then this `Room` can only send media tracks that + /// correspond to these settings. [MediaStreamSettings] update will change + /// media tracks in all sending peers, so that might cause a new + /// [getUserMedia()][1] request to happen. + /// + /// Media obtaining/injection errors are additionally fired to + /// [RoomHandle.onFailedLocalMedia()] callback. + /// + /// If [stop_first] set to `true` then affected local [LocalMediaTrack]s will + /// be dropped before new [MediaStreamSettings] are applied. This is usually + /// required when changing video source device due to hardware limitations, + /// e.g. having an active track sourced from device `A` may hinder + /// [getUserMedia()][1] requests to device `B`. + /// + /// [rollback_on_fail] option configures [MediaStreamSettings] update request + /// to automatically rollback to previous settings if new settings cannot be + /// applied. + /// + /// If recovering from fail state isn't possible then affected media types + /// will be disabled. + /// + /// Throws a [MediaSettingsUpdateException] if settings could not be updated. + /// + /// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia + Future setLocalMediaSettings( + MediaStreamSettings settings, bool stopFirst, bool rollbackOnFail); + + /// Mutes outbound audio in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.unmuteAudio] was + /// called while muting or a media server didn't approve this state + /// transition. + Future muteAudio(); + + /// Unmutes outbound audio in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.muteAudio] was + /// called while unmuting or a media server didn't approve this state + /// transition. + Future unmuteAudio(); + + /// Enables outbound audio in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.disableAudio] was + /// called while enabling or a media server didn't approve this state + /// transition. + /// + /// Throws a `LocalMediaInitException` if a request of platform media devices + /// access failed. + Future enableAudio(); + + /// Disables outbound audio in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.enableAudio] was + /// called while disabling or a media server didn't approve this state + /// transition. + Future disableAudio(); + + /// Mutes outbound video in this `Room`. + /// + /// Affects only video with specific [MediaSourceKind] if specified. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.unmuteVideo] was + /// called while muting or a media server didn't approve this state + /// transition. + Future muteVideo([MediaSourceKind? kind]); + + /// Unmutes outbound video in this `Room`. + /// + /// Affects only video with specific [MediaSourceKind] if specified. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.muteVideo] was + /// called while unmuting or a media server didn't approve this state + /// transition. + Future unmuteVideo([MediaSourceKind? kind]); + + /// Enables outbound video. + /// + /// Affects only video with specific [MediaSourceKind] if specified. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.disableVideo] was + /// called while enabling or a media server didn't approve this state + /// transition. + /// + /// Throws a `LocalMediaInitException` if a request of platform media devices + /// access failed. + Future enableVideo([MediaSourceKind? kind]); + + /// Disables outbound video. + /// + /// Affects only video with specific [MediaSourceKind] if specified. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.enableVideo] was + /// called while disabling or a media server didn't approve this state + /// transition. + Future disableVideo([MediaSourceKind? kind]); + + /// Enables inbound audio in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if + /// [RoomHandle.disableRemoteAudio] was called while enabling or a media + /// server didn't approve this state transition. + Future enableRemoteAudio(); + + /// Disables inbound audio in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if [RoomHandle.enableRemoteAudio] + /// was called while disabling or a media server didn't approve this state + /// transition. + Future disableRemoteAudio(); + + /// Enables inbound video in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if + /// [RoomHandle.disableRemoteVideo] was called while enabling or a media + /// server didn't approve this state transition. + Future enableRemoteVideo(); + + /// Disables inbound video in this `Room`. + /// + /// Throws a [StateError] if the underlying [Pointer] has been freed. + /// + /// Throws a `MediaStateTransitionException` if + /// [RoomHandle.enableRemoteVideo] was called while disabling or a media + /// server didn't approve this state transition. + Future disableRemoteVideo(); + + /// Sets callback, invoked when a new `Connection` with some remote `Peer` + /// is established. + /// + /// Throws [StateError] if the underlying [Pointer] has been freed. + void onNewConnection(void Function(ConnectionHandle) f); + + /// Sets callback, invoked when this `Room` is closed, providing a + /// [RoomCloseReason]. + /// + /// Throws [StateError] if the underlying [Pointer] has been freed. + void onClose(void Function(RoomCloseReason) f); + + /// Sets callback, invoked when a new [LocalMediaTrack] is added to this + /// `Room`. + /// + /// This might happen in the following cases: + /// 1. Media server initiates a media request. + /// 2. [RoomHandle.enableAudio] or [RoomHandle.enableVideo] call resulted in + /// new media track acquisition. + /// 3. [MediaStreamSettings] were updated via + /// [RoomHandle.setLocalMediaSettings] method. + /// + /// Throws [StateError] if the underlying [Pointer] has been freed. + void onLocalTrack(void Function(LocalMediaTrack) f); + + /// Sets callback, invoked when a connection with a media server is lost, + /// providing a [ReconnectHandle]. + /// + /// Throws [StateError] if the underlying [Pointer] has been freed. + void onConnectionLoss(void Function(ReconnectHandle) f); + + /// Sets callback, invoked on a local media acquisition failures. + /// + /// Throws [StateError] if the underlying [Pointer] has been freed. + void onFailedLocalMedia(void Function(Object) f); + + /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @moveSemantics + void free(); +} diff --git a/flutter/lib/track_kinds.dart b/flutter/lib/src/interface/track_kinds.dart similarity index 100% rename from flutter/lib/track_kinds.dart rename to flutter/lib/src/interface/track_kinds.dart diff --git a/flutter/lib/audio_track_constraints.dart b/flutter/lib/src/native/audio_track_constraints.dart similarity index 82% rename from flutter/lib/audio_track_constraints.dart rename to flutter/lib/src/native/audio_track_constraints.dart index 9122a925e..cfe3a5ea8 100644 --- a/flutter/lib/audio_track_constraints.dart +++ b/flutter/lib/src/native/audio_track_constraints.dart @@ -2,9 +2,10 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart'; +import '../interface/audio_track_constraints.dart' as base; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; import 'jason.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; // TODO: Typedefs should have names that are not bound to concrete methods and // moved to shared lib, so they can be reused and won't pollute things. @@ -25,14 +26,11 @@ final _deviceId = dl.lookupFunction<_deviceId_C, _deviceId_Dart>( final _free = dl.lookupFunction<_free_C, _free_Dart>('AudioTrackConstraints__free'); -/// Constraints applicable to audio tracks. -class AudioTrackConstraints { +class AudioTrackConstraints extends base.AudioTrackConstraints { /// [Pointer] to the Rust struct backing this object. final NullablePointer ptr = NullablePointer(_new()); - /// Sets an exact [`deviceId`][1] constraint. - /// - /// [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + @override void deviceId(String deviceId) { var deviceIdPtr = deviceId.toNativeUtf8(); try { @@ -44,6 +42,7 @@ class AudioTrackConstraints { /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/connection_handle.dart b/flutter/lib/src/native/connection_handle.dart similarity index 56% rename from flutter/lib/connection_handle.dart rename to flutter/lib/src/native/connection_handle.dart index b10159268..7d6868cd6 100644 --- a/flutter/lib/connection_handle.dart +++ b/flutter/lib/src/native/connection_handle.dart @@ -1,10 +1,12 @@ import 'dart:ffi'; +import '../interface/connection_handle.dart'; +import '../interface/remote_media_track.dart'; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; import 'ffi/result.dart'; import 'jason.dart'; import 'remote_media_track.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _getRemoteMemberId_C = Result Function(Pointer); typedef _getRemoteMemberId_Dart = Result Function(Pointer); @@ -40,61 +42,38 @@ final _onQualityScoreUpdate = dl.lookupFunction<_onQualityScoreUpdate_C, _onQualityScoreUpdate_Dart>( 'ConnectionHandle__on_quality_score_update'); -/// External handler to a `Connection` with a remote `Member`. -class ConnectionHandle { +class NativeConnectionHandle extends ConnectionHandle { /// [Pointer] to the Rust struct backing this object. late NullablePointer ptr; /// Constructs a new [ConnectionHandle] backed by a Rust struct behind the /// provided [Pointer]. - ConnectionHandle(this.ptr); - - /// Returns ID of the remote `Member`. - /// - /// Throws a [StateError] if an underlying object has been disposed, e.g. - /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a - /// `RoomHandle` that implicitly owns native object behind this - /// [ConnectionHandle]. + NativeConnectionHandle(this.ptr); + + @override String getRemoteMemberId() { return _getRemoteMemberId(ptr.getInnerPtr()).unwrap(); } - /// Sets callback, invoked when this `Connection` is closed. - /// - /// Throws a [StateError] if an underlying object has been disposed, e.g. - /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a - /// `RoomHandle` that implicitly owns native object behind this - /// [ConnectionHandle]. + @override void onClose(void Function() f) { _onClose(ptr.getInnerPtr(), f).unwrap(); } - /// Sets callback, invoked when a new [RemoteMediaTrack] is added to this - /// `Connection`. - /// - /// Throws a [StateError] if an underlying object has been disposed, e.g. - /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a - /// `RoomHandle` that implicitly owns native object behind this - /// [ConnectionHandle]. + @override void onRemoteTrackAdded(void Function(RemoteMediaTrack) f) { _onRemoteTrackAdded(ptr.getInnerPtr(), (t) { - f(RemoteMediaTrack(NullablePointer(t))); + f(NativeRemoteMediaTrack(NullablePointer(t))); }).unwrap(); } - /// Sets callback, invoked when a connection quality score is updated by a - /// server. - /// - /// Throws a [StateError] if an underlying object has been disposed, e.g. - /// [free] was called on this [ConnectionHandle], or on a [Jason], or on a - /// `RoomHandle` that implicitly owns native object behind this - /// [ConnectionHandle]. + @override void onQualityScoreUpdate(void Function(int) f) { _onQualityScoreUpdate(ptr.getInnerPtr(), f).unwrap(); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/device_video_track_constraints.dart b/flutter/lib/src/native/device_video_track_constraints.dart similarity index 59% rename from flutter/lib/device_video_track_constraints.dart rename to flutter/lib/src/native/device_video_track_constraints.dart index 201d68c87..6fce1423f 100644 --- a/flutter/lib/device_video_track_constraints.dart +++ b/flutter/lib/src/native/device_video_track_constraints.dart @@ -2,10 +2,11 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart'; +import '../interface/device_video_track_constraints.dart' as base; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; import 'ffi/result.dart'; import 'jason.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _new_C = Pointer Function(); typedef _new_Dart = Pointer Function(); @@ -75,34 +76,11 @@ final _widthInRange = dl.lookupFunction<_widthInRange_C, _widthInRange_Dart>( final _free = dl.lookupFunction<_free_C, _free_Dart>('DeviceVideoTrackConstraints__free'); -/// Describes the directions that the camera can face, as seen from a user's -/// perspective. -/// -/// Representation of the [`VideoFacingModeEnum`][1]. -/// -/// [1]: https://w3.org/TR/mediacapture-streams#dom-videofacingmodeenum -enum FacingMode { - /// Facing towards the user (a self-view camera). - User, - - /// Facing away from the user (viewing an environment). - Environment, - - /// Facing to the left of the user. - Left, - - /// Facing to the right of the user. - Right, -} - -/// Constraints applicable to video tracks sourced from some media device. -class DeviceVideoTrackConstraints { +class DeviceVideoTrackConstraints extends base.DeviceVideoTrackConstraints { /// [Pointer] to the Rust struct backing this object. final NullablePointer ptr = NullablePointer(_new()); - /// Sets an exact [`deviceId`][1] constraint. - /// - /// [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + @override void deviceId(String deviceId) { var deviceIdPtr = deviceId.toNativeUtf8(); try { @@ -112,82 +90,48 @@ class DeviceVideoTrackConstraints { } } - /// Sets an exact [`facingMode`][1] constraint. - /// - /// [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring - void exactFacingMode(FacingMode facingMode) { + @override + void exactFacingMode(base.FacingMode facingMode) { _exactFacingMode(ptr.getInnerPtr(), facingMode.index); } - /// Sets an ideal [`facingMode`][1] constraint. - /// - /// [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring - void idealFacingMode(FacingMode facingMode) { + @override + void idealFacingMode(base.FacingMode facingMode) { _idealFacingMode(ptr.getInnerPtr(), facingMode.index); } - /// Sets an exact [`height`][1] constraint. - /// - /// Converts the provided [height] into an `u32`. Throws an [ArgumentError] if - /// conversion fails. - /// - /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + @override void exactHeight(int height) { _exactHeight(ptr.getInnerPtr(), height).unwrap(); } - /// Sets an ideal [`height`][1] constraint. - /// - /// Converts the provided [height] into an `u32`. Throws an [ArgumentError] if - /// conversion fails. - /// - /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + @override void idealHeight(int height) { _idealHeight(ptr.getInnerPtr(), height).unwrap(); } - /// Sets a range of a [`height`][1] constraint. - /// - /// Converts the provided [min] and [max] into an `u32`. Throws an - /// [ArgumentError] if conversion fails. - /// - /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + @override void heightInRange(int min, int max) { _heightInRange(ptr.getInnerPtr(), min, max).unwrap(); } - /// Sets an exact [`width`][1] constraint. - /// - /// Converts the provided [width] into an `u32`. Throws an [ArgumentError] if - /// conversion fails. - /// - /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + @override void exactWidth(int width) { _exactWidth(ptr.getInnerPtr(), width).unwrap(); } - /// Sets an ideal [`width`][1] constraint. - /// - /// Converts the provided [width] into an `u32`. Throws an [ArgumentError] if - /// conversion fails. - /// - /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + @override void idealWidth(int width) { _idealWidth(ptr.getInnerPtr(), width).unwrap(); } - /// Sets a range of a [`width`][1] constraint. - /// - /// Converts the provided [min] and [max] into an `u32`. Throws an - /// [ArgumentError] if conversion fails. - /// - /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + @override void widthInRange(int min, int max) { _widthInRange(ptr.getInnerPtr(), min, max).unwrap(); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/display_video_track_constraints.dart b/flutter/lib/src/native/display_video_track_constraints.dart similarity index 70% rename from flutter/lib/display_video_track_constraints.dart rename to flutter/lib/src/native/display_video_track_constraints.dart index 2d8322867..6e1b45c29 100644 --- a/flutter/lib/display_video_track_constraints.dart +++ b/flutter/lib/src/native/display_video_track_constraints.dart @@ -1,8 +1,9 @@ import 'dart:ffi'; +import '../interface/display_video_track_constraints.dart' as base; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; import 'jason.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _new_C = Pointer Function(); typedef _new_Dart = Pointer Function(); @@ -16,13 +17,12 @@ final _new = final _free_Dart _free = dl .lookupFunction<_free_C, _free_Dart>('DisplayVideoTrackConstraints__free'); -/// Constraints applicable to video tracks sourced from a screen capturing. -class DisplayVideoTrackConstraints { +class DisplayVideoTrackConstraints extends base.DisplayVideoTrackConstraints { /// [Pointer] to the Rust struct backing this object. final NullablePointer ptr = NullablePointer(_new()); - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/ffi/callback.dart b/flutter/lib/src/native/ffi/callback.dart similarity index 100% rename from flutter/lib/ffi/callback.dart rename to flutter/lib/src/native/ffi/callback.dart diff --git a/flutter/lib/ffi/completer.dart b/flutter/lib/src/native/ffi/completer.dart similarity index 100% rename from flutter/lib/ffi/completer.dart rename to flutter/lib/src/native/ffi/completer.dart diff --git a/flutter/lib/ffi/exceptions.dart b/flutter/lib/src/native/ffi/exceptions.dart similarity index 100% rename from flutter/lib/ffi/exceptions.dart rename to flutter/lib/src/native/ffi/exceptions.dart diff --git a/flutter/lib/ffi/executor.dart b/flutter/lib/src/native/ffi/executor.dart similarity index 100% rename from flutter/lib/ffi/executor.dart rename to flutter/lib/src/native/ffi/executor.dart diff --git a/flutter/lib/ffi/foreign_value.dart b/flutter/lib/src/native/ffi/foreign_value.dart similarity index 97% rename from flutter/lib/ffi/foreign_value.dart rename to flutter/lib/src/native/ffi/foreign_value.dart index 4e82456d0..2a9c0894b 100644 --- a/flutter/lib/ffi/foreign_value.dart +++ b/flutter/lib/src/native/ffi/foreign_value.dart @@ -2,9 +2,9 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart'; -import '../util/move_semantic.dart'; -import '../util/nullable_pointer.dart'; +import '../../util/move_semantic.dart'; import 'native_string.dart'; +import 'nullable_pointer.dart'; import 'unbox_handle.dart'; /// Type-erased value that can be transferred via FFI boundaries to/from Rust. diff --git a/flutter/lib/ffi/native_string.dart b/flutter/lib/src/native/ffi/native_string.dart similarity index 93% rename from flutter/lib/ffi/native_string.dart rename to flutter/lib/src/native/ffi/native_string.dart index c05773de6..be9c4add2 100644 --- a/flutter/lib/ffi/native_string.dart +++ b/flutter/lib/src/native/ffi/native_string.dart @@ -3,7 +3,7 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart'; import '../jason.dart'; -import '../util/move_semantic.dart'; +import '../../util/move_semantic.dart'; typedef _free_C = Void Function(Pointer); typedef _free_Dart = void Function(Pointer); diff --git a/flutter/lib/util/nullable_pointer.dart b/flutter/lib/src/native/ffi/nullable_pointer.dart similarity index 100% rename from flutter/lib/util/nullable_pointer.dart rename to flutter/lib/src/native/ffi/nullable_pointer.dart diff --git a/flutter/lib/ffi/ptrarray.dart b/flutter/lib/src/native/ffi/ptrarray.dart similarity index 83% rename from flutter/lib/ffi/ptrarray.dart rename to flutter/lib/src/native/ffi/ptrarray.dart index 78397f463..39989ab97 100644 --- a/flutter/lib/ffi/ptrarray.dart +++ b/flutter/lib/src/native/ffi/ptrarray.dart @@ -1,7 +1,7 @@ import 'dart:ffi'; import '../jason.dart'; -import '../util/move_semantic.dart'; +import '../../util/move_semantic.dart'; typedef _free_C = Void Function(Pointer); typedef _free_Dart = void Function(Pointer); @@ -27,7 +27,9 @@ extension PtrArrayToList on Pointer { try { var out = List.empty(growable: true); for (var i = 0; i < ref._len; i++) { - out.add(ref._ptr.elementAt(i)); + // ignore: omit_local_variable_types + Pointer el = ref._ptr.elementAt(i); + out.add(el.value); } return out; } finally { diff --git a/flutter/lib/ffi/result.dart b/flutter/lib/src/native/ffi/result.dart similarity index 100% rename from flutter/lib/ffi/result.dart rename to flutter/lib/src/native/ffi/result.dart diff --git a/flutter/lib/ffi/unbox_handle.dart b/flutter/lib/src/native/ffi/unbox_handle.dart similarity index 100% rename from flutter/lib/ffi/unbox_handle.dart rename to flutter/lib/src/native/ffi/unbox_handle.dart diff --git a/flutter/lib/input_device_info.dart b/flutter/lib/src/native/input_device_info.dart similarity index 59% rename from flutter/lib/input_device_info.dart rename to flutter/lib/src/native/input_device_info.dart index d0a019add..53539a3f1 100644 --- a/flutter/lib/input_device_info.dart +++ b/flutter/lib/src/native/input_device_info.dart @@ -2,11 +2,12 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart'; +import '../interface/input_device_info.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; import 'ffi/native_string.dart'; +import 'ffi/nullable_pointer.dart'; import 'jason.dart'; -import 'track_kinds.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _deviceId_C = Pointer Function(Pointer); typedef _deviceId_Dart = Pointer Function(Pointer); @@ -36,54 +37,37 @@ final _deviceId = dl final _free = dl.lookupFunction<_free_C, _free_Dart>('InputDeviceInfo__free'); -/// [`MediaDeviceInfo`][1] interface. -/// -/// [1]: https://w3.org/TR/mediacapture-streams/#device-info -class InputDeviceInfo { +class NativeInputDeviceInfo extends InputDeviceInfo { /// [Pointer] to the Rust struct backing this object. late NullablePointer ptr; /// Constructs a new [InputDeviceInfo] backed by a Rust struct behind the /// provided [Pointer]. - InputDeviceInfo(this.ptr); + NativeInputDeviceInfo(this.ptr); - /// Returns an unique identifier of the represented device. + @override String deviceId() { return _deviceId(ptr.getInnerPtr()).nativeStringToDartString(); } - /// Returns label describing the represented device (for example "External USB - /// Webcam"). - /// - /// If the device has no associated label, then returns an empty string. + @override String label() { return _label(ptr.getInnerPtr()).nativeStringToDartString(); } - /// Returns kind of the represented device. - /// - /// This representation of a [`MediaDeviceInfo`][1] is ONLY for input devices. - /// - /// [1]: https://w3.org/TR/mediacapture-streams/#device-info + @override MediaKind kind() { var index = _kind(ptr.getInnerPtr()); return MediaKind.values[index]; } - /// Returns a group identifier of the represented device. - /// - /// Two devices have the same group identifier if they belong to the same - /// physical device. For example, the audio input and output devices - /// representing the speaker and microphone of the same headset have the - /// same [`groupId`][1]. - /// - /// [1]: https://w3.org/TR/mediacapture-streams/#dom-mediadeviceinfo-groupid + @override String groupId() { return _nativeGroupId(ptr.getInnerPtr()).nativeStringToDartString(); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/jason.dart b/flutter/lib/src/native/jason.dart similarity index 80% rename from flutter/lib/jason.dart rename to flutter/lib/src/native/jason.dart index d32c1547b..1b5066c4f 100644 --- a/flutter/lib/jason.dart +++ b/flutter/lib/src/native/jason.dart @@ -3,14 +3,17 @@ library jason; import 'dart:ffi'; import 'dart:io'; +import '../interface/jason.dart' as base; +import '../interface/media_manager.dart'; +import '../interface/room_handle.dart'; +import '../util/move_semantic.dart'; import 'ffi/callback.dart' as callback; import 'ffi/completer.dart' as completer; import 'ffi/exceptions.dart' as exceptions; import 'ffi/executor.dart'; +import 'ffi/nullable_pointer.dart'; import 'media_manager.dart'; import 'room_handle.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _new_C = Pointer Function(); typedef _new_Dart = Pointer Function(); @@ -78,32 +81,29 @@ DynamicLibrary _dl_load() { return dl; } -/// General library interface. -/// -/// Responsible for managing shared transports, local media and room -/// initialization. -class Jason { +class Jason extends base.Jason { /// [Pointer] to the Rust struct backing this object. final NullablePointer ptr = NullablePointer(_new()); - /// Returns a [MediaManagerHandle] to the `MediaManager` of this [Jason]. + @override MediaManagerHandle mediaManager() { - return MediaManagerHandle( + return NativeMediaManagerHandle( NullablePointer(_media_manager(ptr.getInnerPtr()))); } - /// Creates a new `Room` and returns its [RoomHandle]. + @override RoomHandle initRoom() { - return RoomHandle(NullablePointer(_initRoom(ptr.getInnerPtr()))); + return NativeRoomHandle(NullablePointer(_initRoom(ptr.getInnerPtr()))); } - /// Closes the `Room` by the provided [RoomHandle]. + @override void closeRoom(@moveSemantics RoomHandle room) { - _close_room(ptr.getInnerPtr(), room.ptr.getInnerPtr()); + _close_room( + ptr.getInnerPtr(), (room as NativeRoomHandle).ptr.getInnerPtr()); room.ptr.free(); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. + @override @moveSemantics void free() { _free(ptr.getInnerPtr()); diff --git a/flutter/lib/src/native/local_media_track.dart b/flutter/lib/src/native/local_media_track.dart new file mode 100644 index 000000000..faea73bc5 --- /dev/null +++ b/flutter/lib/src/native/local_media_track.dart @@ -0,0 +1,65 @@ +import 'dart:ffi'; + +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +import '../interface/local_media_track.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; +import 'jason.dart'; + +typedef _kind_C = Uint8 Function(Pointer); +typedef _kind_Dart = int Function(Pointer); + +typedef _mediaSourceKind_C = Uint8 Function(Pointer); +typedef _mediaSourceKind_Dart = int Function(Pointer); + +typedef _getTrack_C = Handle Function(Pointer); +typedef _getTrack_Dart = Object Function(Pointer); + +typedef _free_C = Void Function(Pointer); +typedef _free_Dart = void Function(Pointer); + +final _kind = dl.lookupFunction<_kind_C, _kind_Dart>('LocalMediaTrack__kind'); + +final _sourceKind = + dl.lookupFunction<_mediaSourceKind_C, _mediaSourceKind_Dart>( + 'LocalMediaTrack__media_source_kind'); + +final _getTrack = dl + .lookupFunction<_getTrack_C, _getTrack_Dart>('LocalMediaTrack__get_track'); + +final _free = dl.lookupFunction<_free_C, _free_Dart>('LocalMediaTrack__free'); + +class NativeLocalMediaTrack extends LocalMediaTrack { + /// [Pointer] to the Rust struct backing this object. + late NullablePointer ptr; + + /// Constructs a new [LocalMediaTrack] backed by the Rust struct behind the + /// provided [Pointer]. + NativeLocalMediaTrack(this.ptr); + + @override + MediaKind kind() { + var index = _kind(ptr.getInnerPtr()); + return MediaKind.values[index]; + } + + @override + MediaSourceKind mediaSourceKind() { + var index = _sourceKind(ptr.getInnerPtr()); + return MediaSourceKind.values[index]; + } + + @override + MediaStreamTrack getTrack() { + return _getTrack(ptr.getInnerPtr()) as MediaStreamTrack; + } + + @moveSemantics + @override + void free() { + _free(ptr.getInnerPtr()); + ptr.free(); + } +} diff --git a/flutter/lib/src/native/media_manager.dart b/flutter/lib/src/native/media_manager.dart new file mode 100644 index 000000000..e4fd97246 --- /dev/null +++ b/flutter/lib/src/native/media_manager.dart @@ -0,0 +1,72 @@ +import 'dart:ffi'; + +import '../interface/input_device_info.dart'; +import '../interface/local_media_track.dart'; +import '../interface/media_manager.dart'; +import '../interface/media_stream_settings.dart' as base_settings; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; +import 'ffi/ptrarray.dart'; +import 'input_device_info.dart'; +import 'jason.dart'; +import 'local_media_track.dart'; +import 'media_stream_settings.dart'; + +typedef _initLocalTracks_C = Handle Function(Pointer, Pointer); +typedef _initLocalTracks_Dart = Object Function(Pointer, Pointer); + +typedef _enumerateDevices_C = Handle Function(Pointer); +typedef _enumerateDevices_Dart = Object Function(Pointer); + +typedef _free_C = Void Function(Pointer); +typedef _free_Dart = void Function(Pointer); + +final _initLocalTracks = + dl.lookupFunction<_initLocalTracks_C, _initLocalTracks_Dart>( + 'MediaManagerHandle__init_local_tracks'); + +final _enumerateDevices = + dl.lookupFunction<_enumerateDevices_C, _enumerateDevices_Dart>( + 'MediaManagerHandle__enumerate_devices'); + +final _free = + dl.lookupFunction<_free_C, _free_Dart>('MediaManagerHandle__free'); + +class NativeMediaManagerHandle extends MediaManagerHandle { + /// [Pointer] to the Rust struct backing this object. + late NullablePointer ptr; + + /// Creates a new [MediaManagerHandle] backed by the Rust struct behind the + /// provided [Pointer]. + NativeMediaManagerHandle(this.ptr); + + @override + Future> initLocalTracks( + base_settings.MediaStreamSettings caps) async { + Pointer tracks = await (_initLocalTracks( + ptr.getInnerPtr(), (caps as MediaStreamSettings).ptr.getInnerPtr()) + as Future); + return tracks + .cast() + .intoPointerList() + .map((e) => NativeLocalMediaTrack(NullablePointer(e))) + .toList(); + } + + @override + Future> enumerateDevices() async { + Pointer pointer = await (_enumerateDevices(ptr.getInnerPtr()) as Future); + return pointer + .cast() + .intoPointerList() + .map((e) => NativeInputDeviceInfo(NullablePointer(e))) + .toList(); + } + + @moveSemantics + @override + void free() { + _free(ptr.getInnerPtr()); + ptr.free(); + } +} diff --git a/flutter/lib/media_stream_settings.dart b/flutter/lib/src/native/media_stream_settings.dart similarity index 57% rename from flutter/lib/media_stream_settings.dart rename to flutter/lib/src/native/media_stream_settings.dart index 868e7d5c7..092cbe522 100644 --- a/flutter/lib/media_stream_settings.dart +++ b/flutter/lib/src/native/media_stream_settings.dart @@ -1,11 +1,16 @@ import 'dart:ffi'; +import '../interface/audio_track_constraints.dart' as base_audio; +import '../interface/device_video_track_constraints.dart' as base_device_video; +import '../interface/display_video_track_constraints.dart' + as base_display_video; +import '../interface/media_stream_settings.dart' as base; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; import 'audio_track_constraints.dart'; import 'device_video_track_constraints.dart'; import 'display_video_track_constraints.dart'; import 'jason.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _new_C = Pointer Function(); typedef _new_Dart = Pointer Function(); @@ -36,33 +41,37 @@ final _displayVideo = dl.lookupFunction<_displayVideo_C, _displayVideo_Dart>( final _free = dl.lookupFunction<_free_C, _free_Dart>('MediaStreamSettings__free'); -/// Representation of [`MediaStreamConstraints`][1]. -/// -/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamconstraints -class MediaStreamSettings { +class MediaStreamSettings extends base.MediaStreamSettings { /// [Pointer] to the Rust struct backing this object. final NullablePointer ptr = NullablePointer(_new()); - /// Specifies a nature and settings of the audio `LocalMediaTrack`. - void audio(@moveSemantics AudioTrackConstraints constraints) { - _audio(ptr.getInnerPtr(), constraints.ptr.getInnerPtr()); + @override + void audio(@moveSemantics base_audio.AudioTrackConstraints constraints) { + _audio(ptr.getInnerPtr(), + (constraints as AudioTrackConstraints).ptr.getInnerPtr()); constraints.ptr.free(); } - /// Sets constraints for obtaining a local video, sourced from a media device. - void deviceVideo(@moveSemantics DeviceVideoTrackConstraints constraints) { - _deviceVideo(ptr.getInnerPtr(), constraints.ptr.getInnerPtr()); + @override + void deviceVideo( + @moveSemantics + base_device_video.DeviceVideoTrackConstraints constraints) { + _deviceVideo(ptr.getInnerPtr(), + (constraints as DeviceVideoTrackConstraints).ptr.getInnerPtr()); constraints.ptr.free(); } - /// Set constraints for capturing a local video from user's display. - void displayVideo(@moveSemantics DisplayVideoTrackConstraints constraints) { - _displayVideo(ptr.getInnerPtr(), constraints.ptr.getInnerPtr()); + @override + void displayVideo( + @moveSemantics + base_display_video.DisplayVideoTrackConstraints constraints) { + _displayVideo(ptr.getInnerPtr(), + (constraints as DisplayVideoTrackConstraints).ptr.getInnerPtr()); constraints.ptr.free(); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/src/native/reconnect_handle.dart b/flutter/lib/src/native/reconnect_handle.dart new file mode 100644 index 000000000..19c9363e1 --- /dev/null +++ b/flutter/lib/src/native/reconnect_handle.dart @@ -0,0 +1,61 @@ +import 'dart:ffi'; + +import '../interface/reconnect_handle.dart'; +import '../util/move_semantic.dart'; +import 'ffi/foreign_value.dart'; +import 'ffi/nullable_pointer.dart'; +import 'jason.dart'; + +typedef _free_C = Void Function(Pointer); +typedef _free_Dart = void Function(Pointer); + +typedef _reconnect_with_delay_C = Handle Function(Pointer, Int64); +typedef _reconnect_with_delay_Dart = Object Function(Pointer, int); + +typedef _reconnect_with_backoff_C = Handle Function( + Pointer, Int64, Double, Int64, ForeignValue); +typedef _reconnect_with_backoff_Dart = Object Function( + Pointer, int, double, int, ForeignValue); + +final _free = dl.lookupFunction<_free_C, _free_Dart>('ReconnectHandle__free'); + +final _reconnect_with_delay = + dl.lookupFunction<_reconnect_with_delay_C, _reconnect_with_delay_Dart>( + 'ReconnectHandle__reconnect_with_delay'); + +final _reconnect_with_backoff = + dl.lookupFunction<_reconnect_with_backoff_C, _reconnect_with_backoff_Dart>( + 'ReconnectHandle__reconnect_with_backoff'); + +class NativeReconnectHandle extends ReconnectHandle { + /// [Pointer] to the Rust struct backing this object. + late NullablePointer ptr; + + /// Constructs a new [ReconnectHandle] backed by the Rust struct behind the + /// provided [Pointer]. + NativeReconnectHandle(this.ptr); + + @override + Future reconnectWithDelay(int delayMs) async { + await (_reconnect_with_delay(ptr.getInnerPtr(), delayMs) as Future); + } + + @override + Future reconnectWithBackoff( + int startingDelayMs, double multiplier, int maxDelay, + [int? maxElapsedTimeMs]) async { + var maxElapsedTimeMs_arg = maxElapsedTimeMs == null + ? ForeignValue.none() + : ForeignValue.fromInt(maxElapsedTimeMs); + + await (_reconnect_with_backoff(ptr.getInnerPtr(), startingDelayMs, + multiplier, maxDelay, maxElapsedTimeMs_arg.ref) as Future); + } + + @moveSemantics + @override + void free() { + _free(ptr.getInnerPtr()); + ptr.free(); + } +} diff --git a/flutter/lib/remote_media_track.dart b/flutter/lib/src/native/remote_media_track.dart similarity index 76% rename from flutter/lib/remote_media_track.dart rename to flutter/lib/src/native/remote_media_track.dart index 718cc8bb0..3175ba36e 100644 --- a/flutter/lib/remote_media_track.dart +++ b/flutter/lib/src/native/remote_media_track.dart @@ -1,9 +1,12 @@ import 'dart:ffi'; +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +import '../interface/remote_media_track.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; +import 'ffi/nullable_pointer.dart'; import 'jason.dart'; -import 'track_kinds.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _enabled_C = Uint8 Function(Pointer); typedef _enabled_Dart = int Function(Pointer); @@ -35,6 +38,9 @@ typedef _onUnmuted_Dart = void Function(Pointer, void Function()); typedef _onStopped_C = Void Function(Pointer, Handle); typedef _onStopped_Dart = void Function(Pointer, void Function()); +typedef _getTrack_C = Handle Function(Pointer); +typedef _getTrack_Dart = Object Function(Pointer); + final _enabled = dl.lookupFunction<_enabled_C, _enabled_Dart>('RemoteMediaTrack__enabled'); @@ -62,68 +68,73 @@ final _onUnmuted = dl.lookupFunction<_onUnmuted_C, _onUnmuted_Dart>( final _onStopped = dl.lookupFunction<_onStopped_C, _onStopped_Dart>( 'RemoteMediaTrack__on_stopped'); +final _getTrack = dl + .lookupFunction<_getTrack_C, _getTrack_Dart>('RemoteMediaTrack__get_track'); + final _free = dl.lookupFunction<_free_C, _free_Dart>('RemoteMediaTrack__free'); -/// Representation of a received remote [`MediaStreamTrack`][1]. -/// -/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack -class RemoteMediaTrack { +class NativeRemoteMediaTrack extends RemoteMediaTrack { /// [Pointer] to the Rust struct that backing this object. late NullablePointer ptr; /// Constructs a new [RemoteMediaTrack] backed by the Rust struct behind the /// provided [Pointer]. - RemoteMediaTrack(this.ptr); + NativeRemoteMediaTrack(this.ptr); - /// Indicates whether this [RemoteMediaTrack] is enabled. + @override bool enabled() { return _enabled(ptr.getInnerPtr()) > 0; } - /// Indicate whether this [RemoteMediaTrack] is muted. + @override bool muted() { return _muted(ptr.getInnerPtr()) > 0; } - /// Returns this [RemoteMediaTrack]'s kind (audio/video). + @override MediaKind kind() { var index = _kind(ptr.getInnerPtr()); return MediaKind.values[index]; } - /// Returns this [RemoteMediaTrack]'s media source kind (device/display). + @override MediaSourceKind mediaSourceKind() { var index = _mediaSourceKind(ptr.getInnerPtr()); return MediaSourceKind.values[index]; } - /// Sets callback, invoked when this [RemoteMediaTrack] is enabled. + @override + MediaStreamTrack getTrack() { + return _getTrack(ptr.getInnerPtr()) as MediaStreamTrack; + } + + @override void onEnabled(void Function() f) { _onEnabled(ptr.getInnerPtr(), f); } - /// Sets callback, invoked when this [RemoteMediaTrack] is disabled. + @override void onDisabled(void Function() f) { _onDisabled(ptr.getInnerPtr(), f); } - /// Sets callback to invoke when this [RemoteMediaTrack] is muted. + @override void onMuted(void Function() f) { _onMuted(ptr.getInnerPtr(), f); } - /// Sets callback to invoke when this [RemoteMediaTrack] is unmuted. + @override void onUnmuted(void Function() f) { _onUnmuted(ptr.getInnerPtr(), f); } - /// Sets callback to invoke when this [RemoteMediaTrack] is stopped. + @override void onStopped(void Function() f) { _onStopped(ptr.getInnerPtr(), f); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/room_close_reason.dart b/flutter/lib/src/native/room_close_reason.dart similarity index 74% rename from flutter/lib/room_close_reason.dart rename to flutter/lib/src/native/room_close_reason.dart index 3022659d5..cfcf6b8cd 100644 --- a/flutter/lib/room_close_reason.dart +++ b/flutter/lib/src/native/room_close_reason.dart @@ -1,10 +1,12 @@ import 'dart:ffi'; + import 'package:ffi/ffi.dart'; +import '../interface/room_close_reason.dart'; +import '../util/move_semantic.dart'; import 'ffi/native_string.dart'; +import 'ffi/nullable_pointer.dart'; import 'jason.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _reason_C = Pointer Function(Pointer); typedef _reason_Dart = Pointer Function(Pointer); @@ -30,34 +32,31 @@ final _isErr = final _free = dl.lookupFunction<_free_C, _free_Dart>('RoomCloseReason__free'); -/// Reason of why a `Room` has been closed. -/// -/// This struct is passed into the `RoomHandle.onClose()` callback. -class RoomCloseReason { +class NativeRoomCloseReason extends RoomCloseReason { /// [Pointer] to the Rust struct that backing this object. late NullablePointer ptr; /// Constructs a new [RoomCloseReason] backed by the Rust struct behind the /// provided [Pointer]. - RoomCloseReason(this.ptr); + NativeRoomCloseReason(this.ptr); - /// Returns a close reason of the `Room`. + @override String reason() { return _reason(ptr.getInnerPtr()).nativeStringToDartString(); } - /// Indicates whether the `Room` was closed by server. + @override bool isClosedByServer() { return _isClosedByServer(ptr.getInnerPtr()) > 0; } - /// Indicates whether the `Room`'s close reason is considered as an error. + @override bool isErr() { return _isErr(ptr.getInnerPtr()) > 0; } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/room_handle.dart b/flutter/lib/src/native/room_handle.dart similarity index 51% rename from flutter/lib/room_handle.dart rename to flutter/lib/src/native/room_handle.dart index 8e69f2b5f..fd54b6727 100644 --- a/flutter/lib/room_handle.dart +++ b/flutter/lib/src/native/room_handle.dart @@ -2,17 +2,23 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart'; +import '../interface/connection_handle.dart'; +import '../interface/local_media_track.dart'; +import '../interface/media_stream_settings.dart' as base_settings; +import '../interface/reconnect_handle.dart'; +import '../interface/room_close_reason.dart'; +import '../interface/room_handle.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; import 'connection_handle.dart'; import 'ffi/foreign_value.dart'; +import 'ffi/nullable_pointer.dart'; import 'ffi/result.dart'; import 'jason.dart'; import 'local_media_track.dart'; import 'media_stream_settings.dart'; import 'reconnect_handle.dart'; import 'room_close_reason.dart'; -import 'track_kinds.dart'; -import 'util/move_semantic.dart'; -import 'util/nullable_pointer.dart'; typedef _free_C = Void Function(Pointer); typedef _free_Dart = void Function(Pointer); @@ -145,29 +151,15 @@ final _enableRemoteVideo = dl.lookupFunction<_enableRemoteVideo_C, _enableRemoteVideo_Dart>( 'RoomHandle__enable_remote_video'); -/// External handle to a `Room`. -class RoomHandle { +class NativeRoomHandle extends RoomHandle { /// [Pointer] to the Rust struct that backing this object. late NullablePointer ptr; /// Constructs a new [RoomHandle] backed by the Rust struct behind the /// provided [Pointer]. - RoomHandle(this.ptr); - - /// Connects to a media server and joins the `Room` with the provided - /// authorization [token]. - /// - /// Authorization token has a fixed format: - /// `{{ Host URL }}/{{ Room ID }}/{{ Member ID }}?token={{ Auth Token }}` - /// (e.g. `wss://medea.com/MyConf1/Alice?token=777`). - /// - /// Throws [StateError] if the underlying [Pointer] has been freed or if some - /// mandatory callback is not set. These callbacks are: - /// [RoomHandle.onConnectionLoss] and [RoomHandle.onFailedLocalMedia]. - /// - /// Throws [FormatException] if the provided [token] string has bad format. - /// - /// Throws `RpcClientException` if could not connect to media server. + NativeRoomHandle(this.ptr); + + @override Future join(String token) async { var tokenPtr = token.toNativeUtf8(); try { @@ -177,94 +169,37 @@ class RoomHandle { } } - /// Updates this `Room`'s [MediaStreamSettings]. This affects all the - /// `PeerConnection`s in this `Room`. If [MediaStreamSettings] are configured - /// for some `Room`, then this `Room` can only send media tracks that - /// correspond to these settings. [MediaStreamSettings] update will change - /// media tracks in all sending peers, so that might cause a new - /// [getUserMedia()][1] request to happen. - /// - /// Media obtaining/injection errors are additionally fired to - /// [RoomHandle.onFailedLocalMedia()] callback. - /// - /// If [stop_first] set to `true` then affected local [LocalMediaTrack]s will - /// be dropped before new [MediaStreamSettings] are applied. This is usually - /// required when changing video source device due to hardware limitations, - /// e.g. having an active track sourced from device `A` may hinder - /// [getUserMedia()][1] requests to device `B`. - /// - /// [rollback_on_fail] option configures [MediaStreamSettings] update request - /// to automatically rollback to previous settings if new settings cannot be - /// applied. - /// - /// If recovering from fail state isn't possible then affected media types - /// will be disabled. - /// - /// Throws a [MediaSettingsUpdateException] if settings could not be updated. - /// - /// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia - Future setLocalMediaSettings( - MediaStreamSettings settings, bool stopFirst, bool rollbackOnFail) async { - await (_setLocalMediaSettings(ptr.getInnerPtr(), settings.ptr.getInnerPtr(), - stopFirst ? 1 : 0, rollbackOnFail ? 1 : 0) as Future); + @override + Future setLocalMediaSettings(base_settings.MediaStreamSettings settings, + bool stopFirst, bool rollbackOnFail) async { + await (_setLocalMediaSettings( + ptr.getInnerPtr(), + (settings as MediaStreamSettings).ptr.getInnerPtr(), + stopFirst ? 1 : 0, + rollbackOnFail ? 1 : 0) as Future); } - /// Mutes outbound audio in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.unmuteAudio] was - /// called while muting or a media server didn't approve this state - /// transition. + @override Future muteAudio() async { await (_muteAudio(ptr.getInnerPtr()) as Future); } - /// Unmutes outbound audio in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.muteAudio] was - /// called while unmuting or a media server didn't approve this state - /// transition. + @override Future unmuteAudio() async { await (_unmuteAudio(ptr.getInnerPtr()) as Future); } - /// Enables outbound audio in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.disableAudio] was - /// called while enabling or a media server didn't approve this state - /// transition. - /// - /// Throws a `LocalMediaInitException` if a request of platform media devices - /// access failed. + @override Future enableAudio() async { await (_enableAudio(ptr.getInnerPtr()) as Future); } - /// Disables outbound audio in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.enableAudio] was - /// called while disabling or a media server didn't approve this state - /// transition. + @override Future disableAudio() async { await (_disableAudio(ptr.getInnerPtr()) as Future); } - /// Mutes outbound video in this `Room`. - /// - /// Affects only video with specific [MediaSourceKind] if specified. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.unmuteVideo] was - /// called while muting or a media server didn't approve this state - /// transition. + @override Future muteVideo([MediaSourceKind? kind]) async { var kind_arg = kind == null ? ForeignValue.none() : ForeignValue.fromInt(kind.index); @@ -275,15 +210,7 @@ class RoomHandle { } } - /// Unmutes outbound video in this `Room`. - /// - /// Affects only video with specific [MediaSourceKind] if specified. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.muteVideo] was - /// called while unmuting or a media server didn't approve this state - /// transition. + @override Future unmuteVideo([MediaSourceKind? kind]) async { var kind_arg = kind == null ? ForeignValue.none() : ForeignValue.fromInt(kind.index); @@ -294,18 +221,7 @@ class RoomHandle { } } - /// Enables outbound video. - /// - /// Affects only video with specific [MediaSourceKind] if specified. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.disableVideo] was - /// called while enabling or a media server didn't approve this state - /// transition. - /// - /// Throws a `LocalMediaInitException` if a request of platform media devices - /// access failed. + @override Future enableVideo([MediaSourceKind? kind]) async { var kind_arg = kind == null ? ForeignValue.none() : ForeignValue.fromInt(kind.index); @@ -316,15 +232,7 @@ class RoomHandle { } } - /// Disables outbound video. - /// - /// Affects only video with specific [MediaSourceKind] if specified. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.enableVideo] was - /// called while disabling or a media server didn't approve this state - /// transition. + @override Future disableVideo([MediaSourceKind? kind]) async { var kind_arg = kind == null ? ForeignValue.none() : ForeignValue.fromInt(kind.index); @@ -335,108 +243,63 @@ class RoomHandle { } } - /// Enables inbound audio in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if - /// [RoomHandle.disableRemoteAudio] was called while enabling or a media - /// server didn't approve this state transition. + @override Future enableRemoteAudio() async { await (_enableRemoteAudio(ptr.getInnerPtr()) as Future); } - /// Disables inbound audio in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if [RoomHandle.enableRemoteAudio] - /// was called while disabling or a media server didn't approve this state - /// transition. + @override Future disableRemoteAudio() async { await (_disableRemoteAudio(ptr.getInnerPtr()) as Future); } - /// Enables inbound video in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if - /// [RoomHandle.disableRemoteVideo] was called while enabling or a media - /// server didn't approve this state transition. + @override Future enableRemoteVideo() async { await (_enableRemoteVideo(ptr.getInnerPtr()) as Future); } - /// Disables inbound video in this `Room`. - /// - /// Throws a [StateError] if the underlying [Pointer] has been freed. - /// - /// Throws a `MediaStateTransitionException` if - /// [RoomHandle.enableRemoteVideo] was called while disabling or a media - /// server didn't approve this state transition. + @override Future disableRemoteVideo() async { await (_disableRemoteVideo(ptr.getInnerPtr()) as Future); } - /// Sets callback, invoked when a new `Connection` with some remote `Peer` - /// is established. - /// - /// Throws [StateError] if the underlying [Pointer] has been freed. + @override void onNewConnection(void Function(ConnectionHandle) f) { _onNewConnection(ptr.getInnerPtr(), (t) { - f(ConnectionHandle(NullablePointer(t))); + f(NativeConnectionHandle(NullablePointer(t))); }).unwrap(); } - /// Sets callback, invoked when this `Room` is closed, providing a - /// [RoomCloseReason]. - /// - /// Throws [StateError] if the underlying [Pointer] has been freed. + @override void onClose(void Function(RoomCloseReason) f) { _onClose(ptr.getInnerPtr(), (t) { - f(RoomCloseReason(NullablePointer(t))); + f(NativeRoomCloseReason(NullablePointer(t))); }).unwrap(); } - /// Sets callback, invoked when a new [LocalMediaTrack] is added to this - /// `Room`. - /// - /// This might happen in the following cases: - /// 1. Media server initiates a media request. - /// 2. [RoomHandle.enableAudio] or [RoomHandle.enableVideo] call resulted in - /// new media track acquisition. - /// 3. [MediaStreamSettings] were updated via - /// [RoomHandle.setLocalMediaSettings] method. - /// - /// Throws [StateError] if the underlying [Pointer] has been freed. + @override void onLocalTrack(void Function(LocalMediaTrack) f) { _onLocalTrack(ptr.getInnerPtr(), (t) { - f(LocalMediaTrack(NullablePointer(t))); + f(NativeLocalMediaTrack(NullablePointer(t))); }).unwrap(); } - /// Sets callback, invoked when a connection with a media server is lost, - /// providing a [ReconnectHandle]. - /// - /// Throws [StateError] if the underlying [Pointer] has been freed. + @override void onConnectionLoss(void Function(ReconnectHandle) f) { _onConnectionLoss(ptr.getInnerPtr(), (t) { - f(ReconnectHandle(NullablePointer(t))); + f(NativeReconnectHandle(NullablePointer(t))); }).unwrap(); } - /// Sets callback, invoked on a local media acquisition failures. - /// - /// Throws [StateError] if the underlying [Pointer] has been freed. + @override void onFailedLocalMedia(void Function(Object) f) { _onFailedLocalMedia(ptr.getInnerPtr(), (err) { f(err); }).unwrap(); } - /// Drops the associated Rust struct and nulls the local [Pointer] to it. @moveSemantics + @override void free() { _free(ptr.getInnerPtr()); ptr.free(); diff --git a/flutter/lib/util/move_semantic.dart b/flutter/lib/src/util/move_semantic.dart similarity index 100% rename from flutter/lib/util/move_semantic.dart rename to flutter/lib/src/util/move_semantic.dart diff --git a/flutter/lib/src/web/audio_track_constraints.dart b/flutter/lib/src/web/audio_track_constraints.dart new file mode 100644 index 000000000..5ba40cb64 --- /dev/null +++ b/flutter/lib/src/web/audio_track_constraints.dart @@ -0,0 +1,18 @@ +import '../interface/audio_track_constraints.dart' as base; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class AudioTrackConstraints extends base.AudioTrackConstraints { + final wasm.AudioTrackConstraints obj = wasm.AudioTrackConstraints(); + + @override + void deviceId(String deviceId) { + obj.device_id(deviceId); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/connection_handle.dart b/flutter/lib/src/web/connection_handle.dart new file mode 100644 index 000000000..3b409881b --- /dev/null +++ b/flutter/lib/src/web/connection_handle.dart @@ -0,0 +1,43 @@ +import 'dart:js'; + +import 'package:js/js.dart'; + +import '../interface/connection_handle.dart'; +import '../interface/remote_media_track.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; +import 'remote_media_track.dart'; + +class WebConnectionHandle extends ConnectionHandle { + late wasm.ConnectionHandle obj; + + WebConnectionHandle(this.obj); + + @override + String getRemoteMemberId() { + return obj.get_remote_member_id(); + } + + @override + void onClose(void Function() f) { + obj.on_close(allowInterop(f)); + } + + @override + void onRemoteTrackAdded(void Function(RemoteMediaTrack) f) { + obj.on_remote_track_added(allowInterop((track) { + f(WebRemoteMediaTrack(track)); + })); + } + + @override + void onQualityScoreUpdate(void Function(int) f) { + obj.on_quality_score_update(allowInterop(f)); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/device_video_track_constraints.dart b/flutter/lib/src/web/device_video_track_constraints.dart new file mode 100644 index 000000000..c2537f413 --- /dev/null +++ b/flutter/lib/src/web/device_video_track_constraints.dart @@ -0,0 +1,59 @@ +import '../interface/device_video_track_constraints.dart' as base; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class DeviceVideoTrackConstraints extends base.DeviceVideoTrackConstraints { + final wasm.DeviceVideoTrackConstraints obj = + wasm.DeviceVideoTrackConstraints(); + + @override + void deviceId(String deviceId) { + obj.device_id(deviceId); + } + + @override + void exactFacingMode(base.FacingMode facingMode) { + obj.exact_facing_mode(facingMode.index); + } + + @override + void idealFacingMode(base.FacingMode facingMode) { + obj.ideal_facing_mode(facingMode.index); + } + + @override + void exactHeight(int height) { + obj.exact_height(height); + } + + @override + void idealHeight(int height) { + obj.ideal_height(height); + } + + @override + void heightInRange(int min, int max) { + obj.height_in_range(min, max); + } + + @override + void exactWidth(int width) { + obj.exact_width(width); + } + + @override + void idealWidth(int width) { + obj.ideal_width(width); + } + + @override + void widthInRange(int min, int max) { + obj.width_in_range(min, max); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/display_video_track_constraints.dart b/flutter/lib/src/web/display_video_track_constraints.dart new file mode 100644 index 000000000..7331b59a1 --- /dev/null +++ b/flutter/lib/src/web/display_video_track_constraints.dart @@ -0,0 +1,14 @@ +import '../interface/display_video_track_constraints.dart' as base; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class DisplayVideoTrackConstraints extends base.DisplayVideoTrackConstraints { + final wasm.DisplayVideoTrackConstraints obj = + wasm.DisplayVideoTrackConstraints(); + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/input_device_info.dart b/flutter/lib/src/web/input_device_info.dart new file mode 100644 index 000000000..60d098ad9 --- /dev/null +++ b/flutter/lib/src/web/input_device_info.dart @@ -0,0 +1,36 @@ +import '../interface/input_device_info.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class WebInputDeviceInfo extends InputDeviceInfo { + late wasm.InputDeviceInfo obj; + + WebInputDeviceInfo(this.obj); + + @override + String deviceId() { + return obj.device_id(); + } + + @override + String label() { + return obj.label(); + } + + @override + MediaKind kind() { + return MediaKind.values[obj.kind().toInt()]; + } + + @override + String groupId() { + return obj.group_id(); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/jason.dart b/flutter/lib/src/web/jason.dart new file mode 100644 index 000000000..937914896 --- /dev/null +++ b/flutter/lib/src/web/jason.dart @@ -0,0 +1,32 @@ +import '../interface/jason.dart' as base; +import '../interface/media_manager.dart'; +import '../interface/room_handle.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; +import 'media_manager.dart'; +import 'room_handle.dart'; + +class Jason extends base.Jason { + final wasm.Jason obj = wasm.Jason(); + + @override + MediaManagerHandle mediaManager() { + return WebMediaManagerHandle(obj.media_manager()); + } + + @override + RoomHandle initRoom() { + return WebRoomHandle(obj.init_room()); + } + + @override + void closeRoom(@moveSemantics RoomHandle room) { + obj.close_room((room as WebRoomHandle).obj); + } + + @override + @moveSemantics + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/jason_wasm.dart b/flutter/lib/src/web/jason_wasm.dart new file mode 100644 index 000000000..56eb8fc45 --- /dev/null +++ b/flutter/lib/src/web/jason_wasm.dart @@ -0,0 +1,816 @@ +@JS() +library medea_jason; + +import 'package:js/js.dart'; +import 'package:js/js_util.dart' show promiseToFuture; + +import 'dart:html' as html; + +/// tslint:disable +/// eslint-disable +/// Describes directions that a camera can face, as seen from a user's +/// perspective. Representation of a [VideoFacingModeEnum][1]. +/// [1]: https://w3.org/TR/mediacapture-streams#dom-videofacingmodeenum +@JS() +class FacingMode { + /// Facing towards a user (a self-view camera). + external static num get User; + + /// Facing away from a user (viewing the environment). + external static num get Environment; + + /// Facing to the left of a user. + external static num get Left; + + /// Facing to the right of a user. + external static num get Right; +} + +/// Media source type. +@JS() +class MediaSourceKind { + /// Media is sourced from some media device (webcam or microphone). + external static num get Device; + + /// Media is obtained via screen capturing. + external static num get Display; +} + +/// [MediaStreamTrack.kind][1] representation. +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack-kind +@JS() +class MediaKind { + /// Audio track. + external static num get Audio; + + /// Video track. + external static num get Video; +} + +/// Possible error kinds of a [`LocalMediaInitException`]. +@JS() +class LocalMediaInitExceptionKind { + /// Occurs if the [getUserMedia()][1] request failed. + /// [1]: https://tinyurl.com/w3-streams#dom-mediadevices-getusermedia + external static num get GetUserMediaFailed; + + /// Occurs if the [getDisplayMedia()][1] request failed. + /// [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia + external static num get GetDisplayMediaFailed; + + /// Occurs when local track is [`ended`][1] right after [getUserMedia()][2] + /// or [getDisplayMedia()][3] request. + /// [1]: https://tinyurl.com/w3-streams#idl-def-MediaStreamTrackState.ended + /// [2]: https://tinyurl.com/rnxcavf + /// [3]: https://w3.org/TR/screen-capture#dom-mediadevices-getdisplaymedia + external static num get LocalTrackIsEnded; +} + +/// Possible error kinds of a [`RpcClientException`]. +@JS() +class RpcClientExceptionKind { + /// Connection with a server was lost. + /// This usually means that some transport error occurred, so a client can + /// continue performing reconnecting attempts. + external static num get ConnectionLost; + + /// Could not authorize an RPC session. + /// This usually means that authentication data a client provides is + /// obsolete. + external static num get AuthorizationFailed; + + /// RPC session has been finished. This is a terminal state. + external static num get SessionFinished; +} + +/// Constraints applicable to audio tracks. +@JS() +class AudioTrackConstraints { + external void free(); + + /// Creates new [`AudioTrackConstraints`] with none constraints configured. + external factory AudioTrackConstraints(); + + /// Sets an exact [deviceId][1] constraint. + /// [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + external void device_id(String device_id); +} + +/// Connection with a specific remote `Member`, that is used on JS side. +/// Like all the handles it contains a weak reference to the object that is +/// managed by Rust, so its methods will fail if a weak reference could not be +/// upgraded. +@JS() +class ConnectionHandle { + external void free(); + + /// Sets callback, invoked when this [`Connection`] is closed. + /// [`Connection`]: connection::Connection + external void on_close(Function cb); + + /// Returns ID of the remote `Member`. + external String get_remote_member_id(); + + /// Sets callback, invoked when a new [`RemoteMediaTrack`] is added to this + /// [`Connection`]. + /// [`Connection`]: connection::Connection + /// [`RemoteMediaTrack`]: crate::api::RemoteMediaTrack + external void on_remote_track_added(Function cb); + + /// Sets callback, invoked when connection quality score is updated by a + /// server. + external void on_quality_score_update(Function cb); +} + +/// Constraints applicable to video tracks that are sourced from some media +/// device. +@JS() +class DeviceVideoTrackConstraints { + external void free(); + + /// Creates new [`DeviceVideoTrackConstraints`] with none constraints + /// configured. + external factory DeviceVideoTrackConstraints(); + + /// Sets an exact [deviceId][1] constraint. + /// [1]: https://w3.org/TR/mediacapture-streams#def-constraint-deviceId + external void device_id(String device_id); + + /// Sets an exact [facingMode][1] constraint. + /// [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring + external void exact_facing_mode(num facing_mode); + + /// Sets an ideal [facingMode][1] constraint. + /// [1]: https://w3.org/TR/mediacapture-streams#dom-constraindomstring + external void ideal_facing_mode(num facing_mode); + + /// Sets an exact [`height`][1] constraint. + /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + external void exact_height(num height); + + /// Sets an ideal [`height`][1] constraint. + /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + external void ideal_height(num height); + + /// Sets a range of a [`height`][1] constraint. + /// [1]: https://tinyurl.com/w3-streams#def-constraint-height + external void height_in_range(num min, num max); + + /// Sets an exact [`width`][1] constraint. + /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + external void exact_width(num width); + + /// Sets an ideal [`width`][1] constraint. + /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + external void ideal_width(num width); + + /// Sets a range of a [`width`][1] constraint. + /// [1]: https://tinyurl.com/w3-streams#def-constraint-width + external void width_in_range(num min, num max); +} + +/// Constraints applicable to video tracks sourced from a screen capturing. +@JS() +class DisplayVideoTrackConstraints { + external void free(); + + /// Creates new [`DisplayVideoTrackConstraints`] with none constraints + /// configured. + external factory DisplayVideoTrackConstraints(); +} + +/// Exception thrown when cannot get info of available media devices. +@JS() +class EnumerateDevicesException { + external void free(); + + /// Returns [`platform::Error`] that caused this + /// [`EnumerateDevicesException`]. + external Error cause(); + + /// Returns stacktrace of this [`EnumerateDevicesException`]. + external String trace(); +} + +/// Exception thrown when a string or some other data doesn't have an expected +/// format and cannot be parsed or processed. +@JS() +class FormatException { + external void free(); + + /// Returns describing of the problem. + external String message(); +} + +/// Representation of a [MediaDeviceInfo][1]. +/// [1]: https://w3.org/TR/mediacapture-streams#device-info +@JS() +class InputDeviceInfo { + external void free(); + + /// Returns a unique identifier for the represented device. + external String device_id(); + + /// Returns a kind of the represented device. + /// This representation of [MediaDeviceInfo][1] is for input device ONLY. + /// [1]: https://w3.org/TR/mediacapture-streams#device-info + external num kind(); + + /// Returns label describing the represented device (for example "External + /// USB Webcam"). + /// If the device has no associated label, then returns an empty string. + external String label(); + + /// Returns a group identifier of the represented device. + /// Two devices have the same group identifier if they belong to the same + /// physical device. For example, the audio input and output devices + /// representing the speaker and microphone of the same headset have the + /// same [groupId][1]. + /// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadeviceinfo-groupid + external String group_id(); +} + +/// Jason's internal exception. +/// This is either a programmatic error or some unexpected platform component +/// failure that cannot be handled in any way. +@JS() +class InternalException { + external void free(); + + /// Returns error message describing the problem. + external String message(); + + /// Returns [`platform::Error`] that caused this [`RpcClientException`]. + external dynamic /*Error|dynamic*/ cause(); + + /// Returns stacktrace of this [`InternalException`]. + external String trace(); +} + +/// General JS side library interface. +/// Responsible for managing shared transports, local media and room +/// initialization. +@JS() +class Jason { + external void free(); + + /// Instantiates a new [`Jason`] interface to interact with this library. + external factory Jason(); + + /// Creates a new `Room` and returns its [`RoomHandle`]. + external RoomHandle init_room(); + + /// Returns a [`MediaManagerHandle`]. + external MediaManagerHandle media_manager(); + + /// Closes the provided [`RoomHandle`]. + external void close_room(RoomHandle room_to_delete); + + /// Drops [`Jason`] API object, so all the related objects (rooms, + /// connections, streams etc.) respectively. All objects related to this + /// [`Jason`] API object will be detached (you will still hold them, but + /// unable to use). + external void dispose(); +} + +/// Exception thrown when accessing media devices. +@JS() +class LocalMediaInitException { + external void free(); + + /// Returns concrete error kind of this [`LocalMediaInitException`]. + external num kind(); + + /// Returns error message describing the problem. + external String message(); + + /// Returns [`platform::Error`] that caused this + /// [`LocalMediaInitException`]. + external dynamic /*Error|dynamic*/ cause(); + + /// Returns stacktrace of this [`LocalMediaInitException`]. + external String trace(); +} + +/// Wrapper around a local [MediaStreamTrack][1]. +/// Backed by a strong reference to the actual track implementing auto stop on +/// dropping. Can be manually dropped with a `free()` call. +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack +@JS() +class LocalMediaTrack { + external void free(); + + /// Returns the underlying [MediaStreamTrack][1]. + /// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamtrack + external html.MediaStreamTrack get_track(); + + /// Returns a [`MediaKind::Audio`] if this [`LocalMediaTrack`] represents an + /// audio track, or a [`MediaKind::Video`] if it represents a video track. + external num kind(); + + /// Returns a [`MediaSourceKind::Device`] if this [`LocalMediaTrack`] is + /// sourced from some device (webcam/microphone), or a + /// [`MediaSourceKind::Display`] if it's captured via + /// [MediaDevices.getDisplayMedia()][1]. + /// [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia + external num media_source_kind(); +} + +/// [`MediaManagerHandle`] is a weak reference to a [`MediaManager`]. +/// [`MediaManager`] performs all the media acquisition requests +/// ([getUserMedia()][1]/[getDisplayMedia()][2]) and stores all the received +/// tracks for further re-usage. +/// [`MediaManager`] stores weak references to [`LocalMediaTrack`]s, so if there +/// are no strong references to some track, then this track is stopped and +/// removed from [`MediaManager`]. +/// Like all the handles it contains a weak reference to the object that is +/// managed by Rust, so its methods will fail if a weak reference could not be +/// upgraded. +/// [`MediaManager`]: media::MediaManager +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediadevices-getusermedia +/// [2]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia +@JS() +class MediaManagerHandle { + external void free(); +} + +@JS('MediaManagerHandle') +abstract class _MediaManagerHandle { + /// Returns a list of [`InputDeviceInfo`] objects representing available + /// media input and output devices, such as microphones, cameras, and so + /// forth. + external Promise> enumerate_devices(); + + /// Returns [`LocalMediaTrack`]s objects, built from the provided + /// [`MediaStreamSettings`]. + external Promise> init_local_tracks(MediaStreamSettings caps); +} + +extension MediaManagerHandleExtensions on MediaManagerHandle { + Future> enumerate_devices() { + final tt = this as _MediaManagerHandle; + return promiseToFuture(tt.enumerate_devices()); + } + + Future> init_local_tracks(MediaStreamSettings caps) { + final tt = this as _MediaManagerHandle; + return promiseToFuture(tt.init_local_tracks(caps)); + } +} + +/// Errors occurring in [`RoomHandle::set_local_media_settings()`][1] method. +/// [1]: crate::api::RoomHandle::set_local_media_settings +@JS() +class MediaSettingsUpdateException { + external void free(); + + /// Returns error message describing the problem. + external String message(); + + /// Returns original [`ChangeMediaStateError`] that was encountered while + /// updating local media settings. + external dynamic cause(); + + /// Returns whether media settings were successfully rolled back after new + /// settings application failed. + external bool rolled_back(); +} + +/// Exception thrown when the requested media state transition could not be +/// performed. +@JS() +class MediaStateTransitionException { + external void free(); + + /// Returns error message describing the problem. + external String message(); + + /// Returns stacktrace of this [`MediaStateTransitionException`]. + external String trace(); +} + +/// [MediaStreamConstraints][1] wrapper. +/// [1]: https://w3.org/TR/mediacapture-streams#dom-mediastreamconstraints +@JS() +class MediaStreamSettings { + external void free(); + + /// Creates new [`MediaStreamSettings`] with none constraints configured. + external factory MediaStreamSettings(); + + /// Specifies the nature and settings of an audio [MediaStreamTrack][1]. + /// [1]: https://w3.org/TR/mediacapture-streams#mediastreamtrack + external void audio(AudioTrackConstraints constraints); + + /// Set constraints that will be used to obtain a local video sourced from + /// a media device. + external void device_video(DeviceVideoTrackConstraints constraints); + + /// Set constraints that will be used to capture a local video from a user's + /// display. + external void display_video(DisplayVideoTrackConstraints constraints); +} + +/// Handle that JS side can reconnect to a media server with when a connection +/// is lost. +/// This handle is passed into a [`RoomHandle.on_connection_loss`] callback. +/// Like all the handles it contains a weak reference to the object that is +/// managed by Rust, so its methods will fail if a weak reference could not be +/// upgraded. +/// [`RoomHandle.on_connection_loss`]: crate::api::RoomHandle.on_connection_loss +@JS() +class ReconnectHandle { + external void free(); +} + +@JS('ReconnectHandle') +abstract class _ReconnectHandle { + /// Tries to reconnect after the provided delay in milliseconds. + /// If [`RpcSession`] is already reconnecting then a new reconnection + /// attempt won't be performed. Instead, it will wait for the first + /// reconnection attempt result and use it. + /// [`RpcSession`]: rpc::RpcSession + external Promise reconnect_with_delay(num delay_ms); + + /// Tries to reconnect a [`RpcSession`] in a loop with a growing backoff + /// delay. + /// The first attempt will be performed immediately, and the second attempt + /// will be performed after `starting_delay_ms`. + /// Delay between reconnection attempts won't be greater than + /// `max_delay_ms`. + /// After each reconnection attempt, delay between reconnections will be + /// multiplied by the given `multiplier` until it reaches `max_delay_ms`. + /// If `multiplier` is a negative number then it will be considered as + /// `0.0`. This might cause a busy loop, so it's not recommended. + /// Max elapsed time can be limited with an optional `max_elapsed_time_ms` + /// argument. + /// If [`RpcSession`] is already reconnecting then new reconnection attempt + /// won't be performed. Instead, it will wait for the first reconnection + /// attempt result and use it here. + /// [`RpcSession`]: rpc::RpcSession + external Promise reconnect_with_backoff(num starting_delay_ms, + num multiplier, num max_delay, num? max_elapsed_time_ms); +} + +extension ReconnectHandleExtensions on ReconnectHandle { + Future reconnect_with_delay(num delay_ms) { + final tt = this as _ReconnectHandle; + return promiseToFuture(tt.reconnect_with_delay(delay_ms)); + } + + Future reconnect_with_backoff(num starting_delay_ms, num multiplier, + num max_delay, num? max_elapsed_time_ms) { + final tt = this as _ReconnectHandle; + return promiseToFuture(tt.reconnect_with_backoff( + starting_delay_ms, multiplier, max_delay, max_elapsed_time_ms)); + } +} + +/// Wrapper around a received remote [MediaStreamTrack][1]. +/// [1]: https://w3.org/TR/mediacapture-streams/#dom-mediastreamtrack +@JS() +class RemoteMediaTrack { + external void free(); + + /// Returns the underlying [MediaStreamTrack][1]. + /// [1]: https://w3.org/TR/mediacapture-streams/#dom-mediastreamtrack + external html.MediaStreamTrack get_track(); + + /// Indicates whether this [`RemoteMediaTrack`] is enabled. + external bool enabled(); + + /// Indicates whether this [`RemoteMediaTrack`] is muted. + external bool muted(); + + /// Sets callback, invoked when this [`RemoteMediaTrack`] is enabled. + external void on_enabled(Function cb); + + /// Sets callback, invoked when this [`RemoteMediaTrack`] is disabled. + external void on_disabled(Function cb); + + /// Sets callback to invoke when this [`RemoteMediaTrack`] is muted. + external void on_muted(Function cb); + + /// Sets callback to invoke when this [`RemoteMediaTrack`] is unmuted. + external void on_unmuted(Function cb); + + /// Sets callback to invoke when this [`RemoteMediaTrack`] is stopped. + external void on_stopped(Function cb); + + /// Returns a [`MediaKind::Audio`] if this [`RemoteMediaTrack`] represents + /// an audio track, or a [`MediaKind::Video`] if it represents a video + /// track. + external num kind(); + + /// Returns a [`MediaSourceKind::Device`] if this [`RemoteMediaTrack`] is + /// sourced from some device (webcam/microphone), or a + /// [`MediaSourceKind::Display`] if it's captured via + /// [MediaDevices.getDisplayMedia()][1]. + /// [1]: https://w3.org/TR/screen-capture/#dom-mediadevices-getdisplaymedia + external num media_source_kind(); +} + +/// Reason of why a [`Room`] is closed. +/// This struct is passed to a [`RoomHandle::on_close`] JS side callback. +/// [`Room`]: room::Room +/// [`RoomHandle::on_close`]: crate::api::RoomHandle::on_close +@JS() +class RoomCloseReason { + external void free(); + + /// Returns the [`Room`]'s close reason. + /// [`Room`]: room::Room + external String reason(); + + /// Indicates whether the [`Room`] was closed by server. + /// [`Room`]: room::Room + external bool is_closed_by_server(); + + /// Indicates whether the [`Room`] close reason is considered as an error. + /// [`Room`]: room::Room + external bool is_err(); +} + +/// JS side handle to a [`Room`] where all the media happens. +/// Like all handles it contains a weak reference to the object that is managed +/// by Rust, so its methods will fail if a weak reference could not be upgraded. +/// [`Room`]: room::Room +@JS() +class RoomHandle { + external void free(); + + /// Sets callback, invoked when a new [`Connection`] with some remote + /// `Member` is established. + /// [`Connection`]: crate::connection::Connection + external void on_new_connection(Function cb); + + /// Sets `on_close` callback, invoked when this [`Room`] is closed, + /// providing a [`RoomCloseReason`]. + /// [`Room`]: room::Room + /// [`RoomCloseReason`]: room::RoomCloseReason + external void on_close(Function cb); + + /// Sets callback, invoked when a new [`LocalMediaTrack`] is added to this + /// [`Room`]. + /// This might happen in such cases: + /// 1. Media server initiates a media request. + /// 2. `enable_audio`/`enable_video` is called. + /// 3. [`MediaStreamSettings`] is updated via `set_local_media_settings`. + /// [`Room`]: room::Room + /// [`LocalMediaTrack`]: crate::api::LocalMediaTrack + external void on_local_track(Function cb); + + /// Sets `on_failed_local_media` callback, invoked on local media + /// acquisition failures. + external void on_failed_local_media(Function cb); + + /// Sets `on_connection_loss` callback, invoked when a connection with a + /// server is lost. + external void on_connection_loss(Function cb); +} + +@JS('RoomHandle') +abstract class _RoomHandle { + external Promise join(String token); + + /// Updates this [`Room`]s [`MediaStreamSettings`]. This affects all + /// [`PeerConnection`]s in this [`Room`]. If [`MediaStreamSettings`] is + /// configured for some [`Room`], then this [`Room`] can only send media + /// tracks that correspond to this settings. [`MediaStreamSettings`] + /// update will change media tracks in all sending peers, so that might + /// cause new [getUserMedia()][1] request. + /// Media obtaining/injection errors are additionally fired to + /// `on_failed_local_media` callback. + /// If `stop_first` set to `true` then affected [`LocalMediaTrack`]s will be + /// dropped before new [`MediaStreamSettings`] is applied. This is usually + /// required when changing video source device due to hardware limitations, + /// e.g. having an active track sourced from device `A` may hinder + /// [getUserMedia()][1] requests to device `B`. + /// `rollback_on_fail` option configures [`MediaStreamSettings`] update + /// request to automatically rollback to previous settings if new settings + /// cannot be applied. + /// If recovering from fail state isn't possible then affected media types + /// will be disabled. + /// [`Room`]: room::Room + /// [`PeerConnection`]: crate::peer::PeerConnection + /// [`LocalMediaTrack`]: crate::api::LocalMediaTrack + /// [1]: https://tinyurl.com/w3-streams#dom-mediadevices-getusermedia + external Promise set_local_media_settings( + MediaStreamSettings settings, bool stop_first, bool rollback_on_fail); + + /// Mutes outbound audio in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if [`RoomHandle::unmute_audio()`] was + /// called while muting or a media server didn't approve this state + /// transition. + /// [`Room`]: room::Room + external Promise mute_audio(); + + /// Unmutes outbound audio in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if [`RoomHandle::mute_audio()`] was + /// called while unmuting or a media server didn't approve this state + /// transition. + /// [`Room`]: room::Room + external Promise unmute_audio(); + + /// Mutes outbound video in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if [`RoomHandle::unmute_video()`] was + /// called while muting or a media server didn't approve this state + /// transition. + /// [`Room`]: room::Room + external Promise mute_video(num? source_kind); + + /// Unmutes outbound video in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if [`RoomHandle::mute_video()`] was + /// called while unmuting or a media server didn't approve this state + /// transition. + /// [`Room`]: room::Room + external Promise unmute_video(num? source_kind); + + /// Disables outbound audio in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if the target sender is configured as + /// `required` by a media server or [`RoomHandle::enable_audio()`] was + /// called while disabling or a media server didn't approve this state + /// transition. + /// [`Room`]: room::Room + external Promise disable_audio(); + + /// Enables outbound audio in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if [`RoomHandle::disable_audio()`] was + /// called while enabling or a media server didn't approve this state + /// transition. + /// With `name = 'MediaManagerError'` if media acquisition request to User + /// Agent failed. + /// [`Room`]: room::Room + external Promise enable_audio(); + + /// Disables outbound video. + /// Affects only video with a specific [`MediaSourceKind`] if specified. + /// # Errors + /// With `name = 'MediaConnections'` if the target sender is configured as + /// `required` by a media server or [`RoomHandle::enable_video()`] was + /// called while disabling or a media server didn't approve this state + /// transition. + external Promise disable_video(num? source_kind); + + /// Enables outbound video. + /// Affects only video with a specific [`MediaSourceKind`] if specified. + /// # Errors + /// With `name = 'MediaConnections'` if [`RoomHandle::disable_video()`] was + /// called while enabling or a media server didn't approve this state + /// transition. + /// With `name = 'MediaManagerError'` if media acquisition request to User + /// Agent failed. + external Promise enable_video(num? source_kind); + + /// Disables inbound audio in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if + /// [`RoomHandle::enable_remote_audio()`] was called while disabling or a + /// media server didn't approve this state transition. + /// [`Room`]: room::Room + external Promise disable_remote_audio(); + + /// Disables inbound video in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if + /// [`RoomHandle::enable_remote_video()`] was called while disabling or + /// a media server didn't approve this state transition. + /// [`Room`]: room::Room + external Promise disable_remote_video(); + + /// Enables inbound audio in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if + /// [`RoomHandle::disable_remote_audio()`] was called while enabling or a + /// media server didn't approve this state transition. + /// [`Room`]: room::Room + external Promise enable_remote_audio(); + + /// Enables inbound video in this [`Room`]. + /// # Errors + /// With `name = 'MediaConnections'` if + /// [`RoomHandle::disable_remote_video()`] was called while enabling or a + /// media server didn't approve this state transition. + /// [`Room`]: room::Room + external Promise enable_remote_video(); +} + +extension RoomHandleExtensions on RoomHandle { + Future join(String token) { + final tt = this as _RoomHandle; + return promiseToFuture(tt.join(token)); + } + + Future set_local_media_settings( + MediaStreamSettings settings, bool stop_first, bool rollback_on_fail) { + final tt = this as _RoomHandle; + return promiseToFuture( + tt.set_local_media_settings(settings, stop_first, rollback_on_fail)); + } + + Future mute_audio() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.mute_audio()); + } + + Future unmute_audio() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.unmute_audio()); + } + + Future mute_video(num? source_kind) { + final tt = this as _RoomHandle; + return promiseToFuture(tt.mute_video(source_kind)); + } + + Future unmute_video(num? source_kind) { + final tt = this as _RoomHandle; + return promiseToFuture(tt.unmute_video(source_kind)); + } + + Future disable_audio() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.disable_audio()); + } + + Future enable_audio() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.enable_audio()); + } + + Future disable_video(num? source_kind) { + final tt = this as _RoomHandle; + return promiseToFuture(tt.disable_video(source_kind)); + } + + Future enable_video(num? source_kind) { + final tt = this as _RoomHandle; + return promiseToFuture(tt.enable_video(source_kind)); + } + + Future disable_remote_audio() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.disable_remote_audio()); + } + + Future disable_remote_video() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.disable_remote_video()); + } + + Future enable_remote_audio() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.enable_remote_audio()); + } + + Future enable_remote_video() { + final tt = this as _RoomHandle; + return promiseToFuture(tt.enable_remote_video()); + } +} + +/// Exceptions thrown from an RPC client that implements messaging with media +/// server. +@JS() +class RpcClientException { + external void free(); + + /// Returns concrete error kind of this [`RpcClientException`]. + external num kind(); + + /// Returns error message describing the problem. + external String message(); + + /// Returns [`platform::Error`] that caused this [`RpcClientException`]. + external dynamic cause(); + + /// Returns stacktrace of this [`RpcClientException`]. + external String trace(); +} + +/// Error thrown when the operation wasn't allowed by the current state of the +/// object. +@JS() +class StateError { + external void free(); + + /// Returns message describing the problem. + external String message(); + + /// Returns native stacktrace of this [`StateError`]. + external String trace(); +} + +@JS() +abstract class Promise { + external factory Promise( + void Function(void Function(T result) resolve, Function reject) executor); + external Promise then(void Function(T result) onFulfilled, + [Function onRejected]); +} diff --git a/flutter/lib/src/web/local_media_track.dart b/flutter/lib/src/web/local_media_track.dart new file mode 100644 index 000000000..1cea78d16 --- /dev/null +++ b/flutter/lib/src/web/local_media_track.dart @@ -0,0 +1,34 @@ +import 'package:flutter_webrtc/src/web/media_stream_track_impl.dart'; +import 'package:flutter_webrtc/flutter_webrtc.dart'; + +import '../interface/local_media_track.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class WebLocalMediaTrack extends LocalMediaTrack { + late wasm.LocalMediaTrack obj; + + WebLocalMediaTrack(this.obj); + + @override + MediaKind kind() { + return MediaKind.values[obj.kind().toInt()]; + } + + @override + MediaSourceKind mediaSourceKind() { + return MediaSourceKind.values[obj.media_source_kind().toInt()]; + } + + @override + MediaStreamTrack getTrack() { + return MediaStreamTrackWeb(obj.get_track()); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/media_manager.dart b/flutter/lib/src/web/media_manager.dart new file mode 100644 index 000000000..d33d68194 --- /dev/null +++ b/flutter/lib/src/web/media_manager.dart @@ -0,0 +1,34 @@ +import '../interface/input_device_info.dart'; +import '../interface/local_media_track.dart'; +import '../interface/media_manager.dart'; +import '../interface/media_stream_settings.dart' as base_settings; +import '../util/move_semantic.dart'; +import 'input_device_info.dart'; +import 'jason_wasm.dart' as wasm; +import 'local_media_track.dart'; +import 'media_stream_settings.dart'; + +class WebMediaManagerHandle extends MediaManagerHandle { + late wasm.MediaManagerHandle obj; + + WebMediaManagerHandle(this.obj); + + @override + Future> initLocalTracks( + base_settings.MediaStreamSettings caps) async { + var tracks = await obj.init_local_tracks((caps as MediaStreamSettings).obj); + return tracks.map((t) => WebLocalMediaTrack(t)).toList(); + } + + @override + Future> enumerateDevices() async { + var tracks = await obj.enumerate_devices(); + return tracks.map((t) => WebInputDeviceInfo(t)).toList(); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/media_stream_settings.dart b/flutter/lib/src/web/media_stream_settings.dart new file mode 100644 index 000000000..8b1b06458 --- /dev/null +++ b/flutter/lib/src/web/media_stream_settings.dart @@ -0,0 +1,39 @@ +import '../interface/audio_track_constraints.dart' as base_audio; +import '../interface/device_video_track_constraints.dart' as base_device_video; +import '../interface/display_video_track_constraints.dart' + as base_display_video; +import '../interface/media_stream_settings.dart' as base; +import '../util/move_semantic.dart'; +import 'audio_track_constraints.dart'; +import 'device_video_track_constraints.dart'; +import 'display_video_track_constraints.dart'; +import 'jason_wasm.dart' as wasm; + +class MediaStreamSettings extends base.MediaStreamSettings { + final wasm.MediaStreamSettings obj = wasm.MediaStreamSettings(); + + @override + void audio(@moveSemantics base_audio.AudioTrackConstraints constraints) { + obj.audio((constraints as AudioTrackConstraints).obj); + } + + @override + void deviceVideo( + @moveSemantics + base_device_video.DeviceVideoTrackConstraints constraints) { + obj.device_video((constraints as DeviceVideoTrackConstraints).obj); + } + + @override + void displayVideo( + @moveSemantics + base_display_video.DisplayVideoTrackConstraints constraints) { + obj.display_video((constraints as DisplayVideoTrackConstraints).obj); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/reconnect_handle.dart b/flutter/lib/src/web/reconnect_handle.dart new file mode 100644 index 000000000..5cdcf6e94 --- /dev/null +++ b/flutter/lib/src/web/reconnect_handle.dart @@ -0,0 +1,28 @@ +import '../interface/reconnect_handle.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class WebReconnectHandle extends ReconnectHandle { + late wasm.ReconnectHandle obj; + + WebReconnectHandle(this.obj); + + @override + Future reconnectWithDelay(int delayMs) async { + await obj.reconnect_with_delay(delayMs); + } + + @override + Future reconnectWithBackoff( + int startingDelayMs, double multiplier, int maxDelay, + [int? maxElapsedTimeMs]) async { + await obj.reconnect_with_backoff( + startingDelayMs, multiplier, maxDelay, maxElapsedTimeMs); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/remote_media_track.dart b/flutter/lib/src/web/remote_media_track.dart new file mode 100644 index 000000000..b18e31228 --- /dev/null +++ b/flutter/lib/src/web/remote_media_track.dart @@ -0,0 +1,70 @@ +import 'package:flutter_webrtc/flutter_webrtc.dart'; +import 'package:flutter_webrtc/src/web/media_stream_track_impl.dart'; +import 'package:js/js.dart'; + +import '../interface/remote_media_track.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class WebRemoteMediaTrack extends RemoteMediaTrack { + late wasm.RemoteMediaTrack obj; + + WebRemoteMediaTrack(this.obj); + + @override + bool enabled() { + return obj.enabled(); + } + + @override + bool muted() { + return obj.muted(); + } + + @override + MediaKind kind() { + return MediaKind.values[obj.kind().toInt()]; + } + + @override + MediaSourceKind mediaSourceKind() { + return MediaSourceKind.values[obj.media_source_kind().toInt()]; + } + + @override + MediaStreamTrack getTrack() { + return MediaStreamTrackWeb(obj.get_track()); + } + + @override + void onEnabled(void Function() f) { + obj.on_enabled(allowInterop(f)); + } + + @override + void onDisabled(void Function() f) { + obj.on_disabled(allowInterop(f)); + } + + @override + void onMuted(void Function() f) { + obj.on_muted(allowInterop(f)); + } + + @override + void onUnmuted(void Function() f) { + obj.on_unmuted(allowInterop(f)); + } + + @override + void onStopped(void Function() f) { + obj.on_stopped(allowInterop(f)); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/room_close_reason.dart b/flutter/lib/src/web/room_close_reason.dart new file mode 100644 index 000000000..4c1f3d60d --- /dev/null +++ b/flutter/lib/src/web/room_close_reason.dart @@ -0,0 +1,30 @@ +import '../interface/room_close_reason.dart'; +import '../util/move_semantic.dart'; +import 'jason_wasm.dart' as wasm; + +class WebRoomCloseReason extends RoomCloseReason { + late wasm.RoomCloseReason obj; + + WebRoomCloseReason(this.obj); + + @override + String reason() { + return obj.reason(); + } + + @override + bool isClosedByServer() { + return obj.is_closed_by_server(); + } + + @override + bool isErr() { + return obj.is_err(); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/lib/src/web/room_handle.dart b/flutter/lib/src/web/room_handle.dart new file mode 100644 index 000000000..1313a8a0a --- /dev/null +++ b/flutter/lib/src/web/room_handle.dart @@ -0,0 +1,133 @@ +import 'package:js/js.dart'; + +import '../interface/connection_handle.dart'; +import '../interface/local_media_track.dart'; +import '../interface/media_stream_settings.dart' as base_settings; +import '../interface/reconnect_handle.dart'; +import '../interface/room_close_reason.dart'; +import '../interface/room_handle.dart'; +import '../interface/track_kinds.dart'; +import '../util/move_semantic.dart'; +import 'connection_handle.dart'; +import 'jason_wasm.dart' as wasm; +import 'local_media_track.dart'; +import 'media_stream_settings.dart'; +import 'reconnect_handle.dart'; +import 'room_close_reason.dart'; + +class WebRoomHandle extends RoomHandle { + late wasm.RoomHandle obj; + + WebRoomHandle(this.obj); + + @override + Future join(String token) async { + await obj.join(token); + } + + @override + Future setLocalMediaSettings(base_settings.MediaStreamSettings settings, + bool stopFirst, bool rollbackOnFail) async { + await obj.set_local_media_settings( + (settings as MediaStreamSettings).obj, stopFirst, rollbackOnFail); + } + + @override + Future muteAudio() async { + await obj.mute_audio(); + } + + @override + Future unmuteAudio() async { + await obj.unmute_audio(); + } + + @override + Future enableAudio() async { + await obj.enable_audio(); + } + + @override + Future disableAudio() async { + await obj.disable_audio(); + } + + @override + Future muteVideo([MediaSourceKind? kind]) async { + await obj.mute_video(kind?.index); + } + + @override + Future unmuteVideo([MediaSourceKind? kind]) async { + await obj.unmute_video(kind?.index); + } + + @override + Future enableVideo([MediaSourceKind? kind]) async { + await obj.enable_video(kind?.index); + } + + @override + Future disableVideo([MediaSourceKind? kind]) async { + await obj.disable_video(kind?.index); + } + + @override + Future enableRemoteAudio() async { + await obj.enable_remote_audio(); + } + + @override + Future disableRemoteAudio() async { + await obj.disable_remote_audio(); + } + + @override + Future enableRemoteVideo() async { + await obj.enable_remote_video(); + } + + @override + Future disableRemoteVideo() async { + await obj.disable_remote_video(); + } + + @override + void onNewConnection(void Function(ConnectionHandle) f) { + obj.on_new_connection(allowInterop((handle) { + f(WebConnectionHandle(handle)); + })); + } + + @override + void onClose(void Function(RoomCloseReason) f) { + obj.on_close(allowInterop((reason) { + f(WebRoomCloseReason(reason)); + })); + } + + @override + void onLocalTrack(void Function(LocalMediaTrack) f) { + obj.on_local_track(allowInterop((track) { + f(WebLocalMediaTrack(track)); + })); + } + + @override + void onConnectionLoss(void Function(ReconnectHandle) f) { + obj.on_connection_loss(allowInterop((handle) { + f(WebReconnectHandle(handle)); + })); + } + + @override + void onFailedLocalMedia(void Function(Object) f) { + obj.on_failed_local_media(allowInterop(f)); + } + + @moveSemantics + @override + void free() { + obj.free(); + } +} diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index c7edb3574..1d09a6430 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -2,6 +2,7 @@ name: medea_jason description: Cross-platform client library of Medea media server for Flutter. version: 0.3.0-dev homepage: https://github.com/instrumentisto/medea-jason +publish_to: none environment: sdk: ">=2.12.0 <3.0.0" @@ -11,6 +12,8 @@ dependencies: flutter: sdk: flutter ffi: ^1.0.0 + flutter_webrtc: ^0.6.8 + js: ^0.6.3 dev_dependencies: pedantic: ^1.9.0 @@ -21,3 +24,5 @@ flutter: android: package: com.medea.jason pluginClass: JasonPlugin + assets: + - assets/pkg/ diff --git a/src/api/dart/connection_handle.rs b/src/api/dart/connection_handle.rs index 321717e59..2d15a1f5e 100644 --- a/src/api/dart/connection_handle.rs +++ b/src/api/dart/connection_handle.rs @@ -93,11 +93,11 @@ mod mock { platform, }; - pub struct ConnectionHandle; + pub struct ConnectionHandle(pub u8); impl From for ConnectionHandle { fn from(_: CoreConnectionHandle) -> Self { - Self + Self(0) } } @@ -120,7 +120,7 @@ mod mock { &self, f: platform::Function, ) -> Result<(), Traced> { - f.call1(RemoteMediaTrack); + f.call1(RemoteMediaTrack(0)); Ok(()) } diff --git a/src/api/dart/input_device_info.rs b/src/api/dart/input_device_info.rs index 1257c3470..0303b6c08 100644 --- a/src/api/dart/input_device_info.rs +++ b/src/api/dart/input_device_info.rs @@ -74,7 +74,7 @@ pub unsafe extern "C" fn InputDeviceInfo__free( mod mock { use crate::media::MediaKind; - pub struct InputDeviceInfo; + pub struct InputDeviceInfo(pub u8); impl InputDeviceInfo { pub fn device_id(&self) -> String { diff --git a/src/api/dart/jason.rs b/src/api/dart/jason.rs index 2f1f42d9a..46fe06e20 100644 --- a/src/api/dart/jason.rs +++ b/src/api/dart/jason.rs @@ -61,20 +61,20 @@ pub unsafe extern "C" fn Jason__free(this: ptr::NonNull) { mod mock { use crate::api::{MediaManagerHandle, RoomHandle}; - pub struct Jason; + pub struct Jason(u8); impl Jason { pub fn new() -> Self { crate::platform::init_logger(); - Self + Self(0) } pub fn init_room(&self) -> RoomHandle { - RoomHandle + RoomHandle(0) } pub fn media_manager(&self) -> MediaManagerHandle { - MediaManagerHandle + MediaManagerHandle(0) } pub fn close_room(&self, _: RoomHandle) {} diff --git a/src/api/dart/local_media_track.rs b/src/api/dart/local_media_track.rs index 25247fbcd..05dfbe16c 100644 --- a/src/api/dart/local_media_track.rs +++ b/src/api/dart/local_media_track.rs @@ -58,11 +58,11 @@ mod mock { MediaSourceKind, }; - pub struct LocalMediaTrack; + pub struct LocalMediaTrack(pub u8); impl From for LocalMediaTrack { fn from(_: CoreLocalMediaTrack) -> Self { - Self + Self(0) } } diff --git a/src/api/dart/media_manager_handle.rs b/src/api/dart/media_manager_handle.rs index efab5a25b..476817335 100644 --- a/src/api/dart/media_manager_handle.rs +++ b/src/api/dart/media_manager_handle.rs @@ -82,7 +82,7 @@ mod mock { }; #[derive(Clone)] - pub struct MediaManagerHandle; + pub struct MediaManagerHandle(pub u8); #[allow(clippy::missing_errors_doc)] impl MediaManagerHandle { @@ -91,9 +91,9 @@ mod mock { ) -> Result, Traced> { Ok(vec![ - InputDeviceInfo {}, - InputDeviceInfo {}, - InputDeviceInfo {}, + InputDeviceInfo(0), + InputDeviceInfo(0), + InputDeviceInfo(0), ]) } @@ -103,9 +103,9 @@ mod mock { ) -> Result, Traced> { Ok(vec![ - LocalMediaTrack {}, - LocalMediaTrack {}, - LocalMediaTrack {}, + LocalMediaTrack(0), + LocalMediaTrack(0), + LocalMediaTrack(0), ]) } } diff --git a/src/api/dart/mod.rs b/src/api/dart/mod.rs index ace70551c..a61c7131b 100644 --- a/src/api/dart/mod.rs +++ b/src/api/dart/mod.rs @@ -402,7 +402,7 @@ mod dart_value_extern_tests_helpers { #[no_mangle] pub unsafe extern "C" fn returns_input_device_info_ptr( ) -> DartValueArg { - DartValueArg::from(InputDeviceInfo) + DartValueArg::from(InputDeviceInfo(0)) } #[no_mangle] diff --git a/src/api/dart/reconnect_handle.rs b/src/api/dart/reconnect_handle.rs index 9b849e7ad..903a0e1cc 100644 --- a/src/api/dart/reconnect_handle.rs +++ b/src/api/dart/reconnect_handle.rs @@ -142,11 +142,11 @@ mod mock { }; #[derive(Clone)] - pub struct ReconnectHandle; + pub struct ReconnectHandle(pub u8); impl From for ReconnectHandle { fn from(_: CoreReconnectHandle) -> Self { - Self + Self(0) } } diff --git a/src/api/dart/remote_media_track.rs b/src/api/dart/remote_media_track.rs index c08c32cf9..edf9eba3e 100644 --- a/src/api/dart/remote_media_track.rs +++ b/src/api/dart/remote_media_track.rs @@ -116,11 +116,11 @@ mod mock { platform, }; - pub struct RemoteMediaTrack; + pub struct RemoteMediaTrack(pub u8); impl From for RemoteMediaTrack { fn from(_: CoreRemoteMediaTrack) -> Self { - Self + Self(0) } } diff --git a/src/api/dart/room_handle.rs b/src/api/dart/room_handle.rs index 10043f1ef..053363885 100644 --- a/src/api/dart/room_handle.rs +++ b/src/api/dart/room_handle.rs @@ -434,7 +434,7 @@ mod mock { }; #[derive(Clone)] - pub struct RoomHandle; + pub struct RoomHandle(pub u8); #[allow(clippy::missing_errors_doc)] impl RoomHandle { @@ -442,7 +442,7 @@ mod mock { &self, cb: platform::Function, ) -> Result<(), Traced> { - cb.call1(ConnectionHandle); + cb.call1(ConnectionHandle(0)); Ok(()) } @@ -461,7 +461,7 @@ mod mock { &self, cb: platform::Function, ) -> Result<(), Traced> { - cb.call1(LocalMediaTrack); + cb.call1(LocalMediaTrack(0)); Ok(()) } @@ -469,7 +469,7 @@ mod mock { &self, cb: platform::Function, ) -> Result<(), Traced> { - cb.call1(ReconnectHandle); + cb.call1(ReconnectHandle(0)); Ok(()) } diff --git a/src/media/track/remote.rs b/src/media/track/remote.rs index b7bdba64d..f550159d5 100644 --- a/src/media/track/remote.rs +++ b/src/media/track/remote.rs @@ -99,10 +99,7 @@ impl Track { track.0.track.on_ended({ let weak_inner = Rc::downgrade(&track.0); Some(move || { - // Not supposed to ever happen, but call `on_stopped` just - // in case. if let Some(inner) = weak_inner.upgrade() { - log::error!("Unexpected track stop: {}", inner.track.id()); inner.on_stopped.call0(); } })

    (XzK5ddI(6wOtM9q$Mvts|^U!aE| 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