3 Commits

Author SHA1 Message Date
sam 6b6e81a21d working mumble web tui
Build Mumble Web 2 / macos_build (push) Successful in 1m5s
Build Mumble Web 2 / windows_build (push) Successful in 2m49s
Build Mumble Web 2 / linux_build (push) Successful in 1m15s
Build Mumble Web 2 / android_build (push) Successful in 4m40s
Assisted-by: Claude:claude-opus-4-7
2026-05-05 00:35:33 -06:00
sam 801a182e7c make reactivity system pluggable 2026-05-05 00:35:33 -06:00
sam bc20cf825d fix version reporting after refactor (#34)
Build Mumble Web 2 / macos_build (push) Successful in 59s
Build Mumble Web 2 / linux_build (push) Successful in 1m20s
Build Mumble Web 2 / windows_build (push) Successful in 3m0s
Build Mumble Web 2 / android_build (push) Successful in 4m42s
Reviewed-on: #34
Reviewed-by: restitux <restitux@ohea.xyz>
Co-authored-by: Sam Sartor <me@samsartor.com>
Co-committed-by: Sam Sartor <me@samsartor.com>
2026-05-05 05:30:18 +00:00
4 changed files with 17 additions and 11 deletions
+11 -4
View File
@@ -10,18 +10,25 @@ 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?;
let bytes = dioxus_asset_resolver::read_asset_bytes(&DF_MODEL.to_string())
.await
.map_err(|err| eyre!("could not read denoising model: {err}"))?;
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
@@ -60,7 +67,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!("could not read denoising model: {e:?}");
error!("{e}");
return;
}
};
+1 -1
View File
@@ -443,7 +443,7 @@ pub async fn network_connect(
username: String,
event_rx: &mut UnboundedReceiver<Command>,
overrides: &ProxyOverrides,
state: SharedState,
state: SharedState<impl Reactivity>,
) -> Result<(), Error> {
info!("connecting");
+2
View File
@@ -9,3 +9,5 @@ pub use imp::*;
pub use mainloop::*;
pub use mime_guess;
pub use reqwest;
pub const VERSION: Option<&str> = option_env!("MUMBLE_WEB2_VERSION");
+3 -6
View File
@@ -3,12 +3,10 @@
use dioxus::prelude::*;
use mumble_web2_client::{
network_entrypoint, reqwest, AudioSettings, ChannelId, Command, ConfigSystem,
ConfigSystemInterface as _, ConnectionState, Platform, PlatformInterface as _, ServerState,
UserId, UserState,
ConfigSystemInterface as _, ConnectionState, Platform, PlatformInterface as _, UserId,
UserState, VERSION,
};
use mumble_web2_common::{ProxyOverrides, ServerStatus};
use std::collections::{HashMap, HashSet};
use std::{fmt, sync::Arc};
use Command::*;
use ConnectionState::*;
@@ -595,13 +593,12 @@ 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!(),
}