platform: esp32: drop buggy and slow i2s implementation
This commit is contained in:
parent
3a850105a8
commit
a237bb7dc8
@ -39,61 +39,6 @@ use crate::task::FixedSizeScheduler;
|
|||||||
use crate::task::Task;
|
use crate::task::Task;
|
||||||
use crate::time::Periodically;
|
use crate::time::Periodically;
|
||||||
|
|
||||||
pub mod i2s {
|
|
||||||
use esp_idf_svc::hal::i2s::*;
|
|
||||||
use rgb::ComponentBytes;
|
|
||||||
use rgb::Rgb;
|
|
||||||
|
|
||||||
use crate::mappings::*;
|
|
||||||
use crate::buffers::Pixbuf;
|
|
||||||
use crate::render::Output;
|
|
||||||
use crate::render::Sample;
|
|
||||||
|
|
||||||
pub struct I2SOutput<'d> {
|
|
||||||
driver: I2sDriver<'d, I2sTx>,
|
|
||||||
pixbuf: [Rgb<u8>; 310],
|
|
||||||
pixmap: StrideMapping,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'d> I2SOutput<'d> {
|
|
||||||
fn new(driver: I2sDriver<'d, I2sTx>) -> Self {
|
|
||||||
I2SOutput {
|
|
||||||
driver,
|
|
||||||
pixbuf: Pixbuf::new(),
|
|
||||||
pixmap: StrideMapping::new_jar()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'d> Output for I2SOutput<'d> {
|
|
||||||
fn on_event(&mut self, event: &crate::events::Event) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fn blank(&mut self) {
|
|
||||||
self.pixbuf.blank();
|
|
||||||
}
|
|
||||||
|
|
||||||
fn commit(&mut self) {
|
|
||||||
let bytes = self.pixbuf.as_bytes();
|
|
||||||
let mut written = self.driver.preload_data(bytes).unwrap();
|
|
||||||
self.driver.tx_enable().unwrap();
|
|
||||||
while written < bytes.len() {
|
|
||||||
let next = &bytes[written..];
|
|
||||||
written += self.driver.write(next, 0).unwrap();
|
|
||||||
}
|
|
||||||
self.driver.tx_disable().unwrap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'d> Sample for I2SOutput<'d> {
|
|
||||||
type Pixel = Rgb<u8>;
|
|
||||||
fn sample(&mut self, rect: &crate::geometry::Rectangle<crate::geometry::Virtual>) -> impl crate::render::PixelView<Pixel = Self::Pixel> {
|
|
||||||
StrideSampler::new(&mut self.pixbuf, self.pixmap.select(rect))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct Esp32Board {
|
pub struct Esp32Board {
|
||||||
sys_loop: EspSystemEventLoop,
|
sys_loop: EspSystemEventLoop,
|
||||||
modem: Option<Modem>,
|
modem: Option<Modem>,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user