#[cfg(all(not(doc), not(feature = "host")))]
use crate::audio_player;
#[cfg(all(not(doc), not(feature = "host")))]
audio_player! {
pub AudioPlayerGenerated {
data_pin: PIN_8,
bit_clock_pin: PIN_9,
word_select_pin: PIN_10,
sample_rate_hz: crate::audio_player::VOICE_22050_HZ,
}
}
#[cfg(doc)]
pub struct AudioPlayerGenerated;
#[cfg(doc)]
pub type AudioPlayerGeneratedPlayable = dyn Playable<VOICE_22050_HZ>;
#[cfg(doc)]
use crate::Result;
#[cfg(doc)]
use crate::audio_player::{AtEnd, AudioPlayer, Playable, VOICE_22050_HZ, Volume};
#[cfg(doc)]
impl AudioPlayerGenerated {
pub const SAMPLE_RATE_HZ: u32 = VOICE_22050_HZ;
pub const MAX_CLIPS: usize = 16;
pub const INITIAL_VOLUME: Volume = Volume::MAX;
pub const MAX_VOLUME: Volume = Volume::MAX;
pub fn new(
data_pin: embassy_rp::Peri<'static, embassy_rp::peripherals::PIN_8>,
bit_clock_pin: embassy_rp::Peri<'static, embassy_rp::peripherals::PIN_9>,
word_select_pin: embassy_rp::Peri<'static, embassy_rp::peripherals::PIN_10>,
pio: embassy_rp::Peri<'static, embassy_rp::peripherals::PIO1>,
dma: embassy_rp::Peri<'static, embassy_rp::peripherals::DMA_CH0>,
spawner: embassy_executor::Spawner,
) -> Result<&'static Self> {
static INSTANCE: AudioPlayerGenerated = AudioPlayerGenerated;
let _ = (data_pin, bit_clock_pin, word_select_pin, pio, dma, spawner);
Ok(&INSTANCE)
}
}
#[cfg(doc)]
impl AudioPlayer<VOICE_22050_HZ> for AudioPlayerGenerated {
const SAMPLE_RATE_HZ: u32 = VOICE_22050_HZ;
const MAX_CLIPS: usize = 16;
const INITIAL_VOLUME: Volume = Volume::MAX;
const MAX_VOLUME: Volume = Volume::MAX;
fn play<I>(&self, audio_clips: I, at_end: AtEnd)
where
I: IntoIterator<Item = &'static dyn Playable<VOICE_22050_HZ>>,
{
let _ = (audio_clips, at_end);
}
fn stop(&self) {}
async fn wait_until_stopped(&self) {}
fn set_volume(&self, volume: Volume) {
let _ = volume;
}
fn volume(&self) -> Volume {
Volume::MAX
}
}