Rodio audio (#37786)

Adds input to the experimental rodio_audio pipeline.

Enable with:
```json
"audio": {
  "experimental.rodio_audio": true
}
```

Additionally enables automatic volume 
control for incoming audio:
```json
"audio": {
  "experimental.control_output_volume": true
}
```

Release Notes:

- N/A
This commit is contained in:
David Kleingeld
2025-09-10 22:48:33 +02:00
committed by GitHub
parent 14de161d06
commit 95ccce3095
21 changed files with 1274 additions and 139 deletions
+12 -1
View File
@@ -9,6 +9,7 @@ use client::{
proto::{self, PeerId},
};
use collections::{BTreeMap, HashMap, HashSet};
use feature_flags::FeatureFlagAppExt;
use fs::Fs;
use futures::StreamExt;
use gpui::{
@@ -1322,8 +1323,18 @@ impl Room {
return Task::ready(Err(anyhow!("live-kit was not initialized")));
};
let is_staff = cx.is_staff();
let user_name = self
.user_store
.read(cx)
.current_user()
.and_then(|user| user.name.clone())
.unwrap_or_else(|| "unknown".to_string());
cx.spawn(async move |this, cx| {
let publication = room.publish_local_microphone_track(cx).await;
let publication = room
.publish_local_microphone_track(user_name, is_staff, cx)
.await;
this.update(cx, |this, cx| {
let live_kit = this
.live_kit