feat: support reading recordings, address some warnings

This commit is contained in:
2026-05-27 01:56:47 -04:00
parent e72633f26a
commit 23f86ace3b
6 changed files with 97 additions and 79 deletions

View File

@@ -1,20 +1,17 @@
use crate::{
OneToManyUniqueBTreeMap, UserDataManager,
option_ext::OptionExt as _,
recording_data::{Clip, Recording, RecordingDataManager},
recording_data::{Clip, Recording, RecordingData, RecordingDataManager},
user_capnp::user::Consent,
user_data::RECORD_IF_CONSENT_UNSPECIFIED,
};
use async_trait::async_trait;
use futures::FutureExt;
use hound::{SampleFormat, WavSpec};
use opendal::Operator;
use songbird::{
CoreEvent, Event, EventContext, EventHandler, Songbird,
driver::{Channels, SampleRate},
};
use std::{
io::Cursor,
sync::{Arc, Mutex},
time::Instant,
};
@@ -137,11 +134,17 @@ impl EventHandler for Handler {
tracing::info!("going to write the audio shortly");
let recording_data_manager = self.recording_data_manager.clone();
let pcm = pcm.clone();
let samples = pcm.clone();
let recording_data = RecordingData {
channels,
sample_rate,
samples,
};
tokio::spawn(async move {
recording_data_manager
.write(&recording, &pcm, sample_rate, channels)
.write(&recording, recording_data)
.await
.expect("TODO");
tracing::info!(?recording, "successfully wrote the audio!");