2 Commits

Author SHA1 Message Date
sam 0f8f294265 working mumble web tui
Build Mumble Web 2 / macos_build (push) Successful in 1m2s
Build Mumble Web 2 / windows_build (push) Successful in 3m11s
Build Mumble Web 2 / linux_build (push) Failing after 44s
Build Mumble Web 2 / android_build (push) Successful in 4m42s
Assisted-by: Claude:claude-opus-4-7
2026-05-05 00:20:15 -06:00
sam d5a70cf078 make reactivity system pluggable 2026-05-05 00:20:15 -06:00
3 changed files with 10 additions and 16 deletions
+4 -11
View File
@@ -10,25 +10,18 @@ use crate::imp::SpawnHandle;
#[cfg(not(feature = "embed-denoiser"))]
async fn denoiser_model_bytes() -> color_eyre::Result<Cow<'static, [u8]>> {
use color_eyre::eyre::eyre;
use manganis::{asset, Asset};
static DF_MODEL: Asset = asset!("/assets/DeepFilterNet3_ll_onnx.tar.gz");
let bytes = dioxus_asset_resolver::read_asset_bytes(&DF_MODEL.to_string())
.await
.map_err(|err| eyre!("could not read denoising model: {err}"))?;
let bytes = dioxus_asset_resolver::read_asset_bytes(&DF_MODEL.to_string()).await?;
Ok(Cow::Owned(bytes))
}
#[cfg(feature = "embed-denoiser")]
async fn denoiser_model_bytes() -> color_eyre::Result<Cow<'static, [u8]>> {
static DF_MODEL: &[u8] = include_bytes!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/assets/DeepFilterNet3_ll_onnx.tar.gz"
));
static DF_MODEL: &[u8] =
include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/DeepFilterNet3_ll_onnx.tar.gz"));
Ok(Cow::Borrowed(DF_MODEL))
}
// TODO: make this user configurable.
static DEFAULT_NOISE_FLOOR: f32 = 0.001;
// 200ms hold at 48kHz sample rate
@@ -67,7 +60,7 @@ fn with_denoising_model<O>(spawn: &SpawnHandle, func: impl FnOnce(&mut DfTract)
let model_bytes = match denoiser_model_bytes().await {
Ok(b) => b,
Err(e) => {
error!("{e}");
error!("could not read denoising model: {e:?}");
return;
}
};
-2
View File
@@ -9,5 +9,3 @@ pub use imp::*;
pub use mainloop::*;
pub use mime_guess;
pub use reqwest;
pub const VERSION: Option<&str> = option_env!("MUMBLE_WEB2_VERSION");
+6 -3
View File
@@ -3,10 +3,12 @@
use dioxus::prelude::*;
use mumble_web2_client::{
network_entrypoint, reqwest, AudioSettings, ChannelId, Command, ConfigSystem,
ConfigSystemInterface as _, ConnectionState, Platform, PlatformInterface as _, UserId,
UserState, VERSION,
ConfigSystemInterface as _, ConnectionState, Platform, PlatformInterface as _, ServerState,
UserId, UserState,
};
use mumble_web2_common::{ProxyOverrides, ServerStatus};
use std::collections::{HashMap, HashSet};
use std::{fmt, sync::Arc};
use Command::*;
use ConnectionState::*;
@@ -593,12 +595,13 @@ pub fn LoginView(overrides: Resource<ProxyOverrides>) -> Element {
),
Connected => unreachable!(),
};
let version = option_env!("MUMBLE_WEB2_VERSION");
rsx!(
div {
class: "login",
h1 {
"Mumble Web"
match VERSION {
match version {
Some(v) => rsx!(" " span { class: "login_version", "({v})" }),
None => rsx!(),
}