#[cfg(feature = "driver")]
use discortp::rtp::RtpType;
#[cfg(feature = "driver")]
use opus2::Bitrate;
use std::time::Duration;
#[cfg(feature = "driver")]
pub const VOICE_GATEWAY_VERSION: u8 = crate::model::constants::GATEWAY_VERSION;
#[cfg(feature = "driver")]
pub const SAMPLE_RATE: u32 = 48000;
pub const SAMPLE_RATE_RAW: usize = 48_000;
pub const AUDIO_FRAME_RATE: usize = 50;
pub const TIMESTEP_LENGTH: Duration = Duration::from_millis(1000 / AUDIO_FRAME_RATE as u64);
#[cfg(feature = "driver")]
pub const DEFAULT_BITRATE: Bitrate = Bitrate::Bits(128_000);
pub(crate) const RESAMPLE_OUTPUT_FRAME_SIZE: usize = MONO_FRAME_SIZE / 2;
pub(crate) const OPUS_PASSTHROUGH_STRIKE_LIMIT: u8 = 3;
pub const MONO_FRAME_SIZE: usize = SAMPLE_RATE_RAW / AUDIO_FRAME_RATE;
pub const STEREO_FRAME_SIZE: usize = 2 * MONO_FRAME_SIZE;
pub const MONO_FRAME_BYTE_SIZE: usize = MONO_FRAME_SIZE * std::mem::size_of::<f32>();
pub const STEREO_FRAME_BYTE_SIZE: usize = STEREO_FRAME_SIZE * std::mem::size_of::<f32>();
pub const FRAME_LEN_MS: usize = 1000 / AUDIO_FRAME_RATE;
pub const CHILD_BUFFER_LEN: usize = AUDIO_FRAME_RATE / 2;
pub const VOICE_PACKET_MAX: usize = 1460;
pub const UDP_KEEPALIVE_GAP_MS: u64 = 5_000;
pub const UDP_KEEPALIVE_GAP: Duration = Duration::from_millis(UDP_KEEPALIVE_GAP_MS);
pub const SILENT_FRAME: [u8; 3] = [0xf8, 0xff, 0xfe];
pub const RTP_VERSION: u8 = 2;
#[cfg(feature = "driver")]
pub const RTP_PROFILE_TYPE: RtpType = RtpType::Dynamic(120);
#[cfg(feature = "receive")]
pub const DAVE_MAGIC_MARKER: [u8; 2] = [0xfa, 0xfa];
#[cfg(test)]
#[allow(clippy::doc_markdown, missing_docs)]
pub mod test_data {
pub const YTDL_TARGET: &str = "https://cloudkicker.bandcamp.com/track/94-days";
pub const YTDL_PLAYLIST_TARGET: &str =
"https://www.youtube.com/watch?v=KSgEFfWZ-W0&list=OLAK5uy_l2x81ffbpevMSjUn7NniL_rNLulWM3n6g&index=7";
pub const HTTP_TARGET: &str = "https://github.com/FelixMcFelix/songbird/raw/symphonia/resources/Cloudkicker%20-%202011%2007.mp3";
pub const HTTP_OPUS_TARGET: &str = "https://github.com/FelixMcFelix/songbird/raw/symphonia/resources/Cloudkicker%20-%20Making%20Will%20Mad.opus";
pub const HTTP_WEBM_TARGET: &str = "https://github.com/FelixMcFelix/songbird/raw/symphonia/resources/Cloudkicker%20-%20Making%20Will%20Mad.webm";
pub const FILE_DCA_TARGET: &str = "resources/Cloudkicker - 2011 07.dca1";
pub const FILE_WEBM_TARGET: &str = "resources/Cloudkicker - Making Will Mad.webm";
pub const FILE_WAV_TARGET: &str = "resources/loop.wav";
pub const FILE_SHORT_MP3_TARGET: &str = "resources/ting.mp3";
pub const FILE_VID_TARGET: &str = "resources/ting-vid.mp4";
}