1pub struct SampleBuffer<T> {
3 pub data: Vec<T>,
5 pub right: Option<Vec<T>>,
7 pub sample_rate: f32,
9 pub channels: u16,
11 pub name: String,
13}
14
15impl<T> SampleBuffer<T> {
16 pub fn mono(data: Vec<T>, sample_rate: f32, name: impl Into<String>) -> Self {
18 let channels = 1;
19 Self {
20 data,
21 right: None,
22 sample_rate,
23 channels,
24 name: name.into(),
25 }
26 }
27
28 pub fn stereo(left: Vec<T>, right: Vec<T>, sample_rate: f32, name: impl Into<String>) -> Self {
30 let channels = 2;
31 Self {
32 data: left,
33 right: Some(right),
34 sample_rate,
35 channels,
36 name: name.into(),
37 }
38 }
39
40 pub fn len(&self) -> usize {
42 self.data.len()
43 }
44
45 pub fn is_empty(&self) -> bool {
47 self.data.is_empty()
48 }
49}