soundkit 0.12.2

Audio format optimised for low-latency audio.
Documentation
use frame_header::{EncodingFlag, Endianness};

pub enum PcmData {
    I16(Vec<Vec<i16>>),
    I32(Vec<Vec<i32>>),
    F32(Vec<Vec<f32>>),
}

#[derive(Debug)]
pub struct AudioData {
    bits_per_sample: u8,
    channel_count: u8,
    data: Vec<u8>,
    sampling_rate: u32,
    audio_format: EncodingFlag,
    endianness: Endianness,
}

impl AudioData {
    pub fn new(
        bits_per_sample: u8,
        channel_count: u8,
        sampling_rate: u32,
        data: Vec<u8>,
        audio_format: EncodingFlag,
        endianness: Endianness,
    ) -> Self {
        AudioData {
            bits_per_sample,
            channel_count,
            sampling_rate,
            data,
            audio_format,
            endianness,
        }
    }

    pub fn bits_per_sample(&self) -> u8 {
        self.bits_per_sample
    }

    pub fn channel_count(&self) -> u8 {
        self.channel_count
    }

    pub fn sampling_rate(&self) -> u32 {
        self.sampling_rate
    }

    pub fn data(&self) -> &Vec<u8> {
        &self.data
    }

    pub fn audio_format(&self) -> EncodingFlag {
        self.audio_format
    }

    pub fn endianness(&self) -> Endianness {
        self.endianness
    }
}