From 29e525ae35a92a898cd0f1d58a88b4eb3766d5b5 Mon Sep 17 00:00:00 2001
From: Asaril <pub@asaril.de>
Date: Wed, 19 Mar 2025 01:48:48 +0100
Subject: [PATCH] cfg tests

---
 src/main.rs | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 7a7e550..7d8b1ff 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -286,9 +286,10 @@ impl LedEffect for LedEffectBassSparks {
 
         bass_color.decrease(3, 5, 5, 0);
 
-        if true /*processed.floating_max > 10100000
-            && (processed.current_powers[1] > 1.35 * processed.avg_powers[1])
-            && (processed.current_powers[2] > 1.35 * processed.avg_powers[2])*/
+        if true
+        /*processed.floating_max > 10100000
+        && (processed.current_powers[1] > 1.35 * processed.avg_powers[1])
+        && (processed.current_powers[2] > 1.35 * processed.avg_powers[2])*/
         {
             for _ in 0..10 {
                 let led_index = random_at_most(LED_COUNT as u32 - 1) as usize;
@@ -331,16 +332,23 @@ fn main() -> anyhow::Result<()> {
     let mic_i2s_std_cfg = i2s::config::StdConfig::new(
         i2s::config::Config::new().role(i2s::config::Role::Controller),
         i2s::config::StdClkConfig::new(
-            24.kHz().into(),
+            24000,
             i2s::config::ClockSource::default(),
             i2s::config::MclkMultiple::M256,
         ),
         i2s::config::StdSlotConfig::msb_slot_default(
             i2s::config::DataBitWidth::Bits32,
-            i2s::config::SlotMode::Mono,
+            i2s::config::SlotMode::Stereo,
         )
+        .data_bit_width(i2s::config::DataBitWidth::Bits32)
         .slot_bit_width(i2s::config::SlotBitWidth::Bits32)
-        .slot_mode_mask(i2s::config::SlotMode::Mono, i2s::config::StdSlotMask::Left),
+        .slot_mode_mask(i2s::config::SlotMode::Stereo, i2s::config::StdSlotMask::Both)
+        .ws_width(32)
+        .ws_polarity(false)
+        .bit_shift(true)
+        .left_align(true)
+        .big_endian(false)
+        .bit_order_lsb(false),
         i2s::config::StdGpioConfig::new(false, false, false),
     );
     let mut mic_drv = i2s::I2sDriver::new_std_rx(
@@ -390,18 +398,23 @@ fn main() -> anyhow::Result<()> {
     mic_drv.rx_enable()?;
     loop {
         // let buffer: &mut [u8; AUDIO_SAMPLES_PER_BUF*4] = cast_slice_mut(&mut audio[next_audio_buf]);
-        let buffer = bytes_of_mut(&mut audio[next_audio_buf]);
-        let num_bytes_read = mic_drv.read(buffer, TickType_t::MAX)?;
+        // let buffer = bytes_of_mut(&mut audio[next_audio_buf]);
+        let mut buffer:[u8;AUDIO_SAMPLES_PER_BUF*4] = [0;AUDIO_SAMPLES_PER_BUF*4];
+        let num_bytes_read = mic_drv.read(buffer.as_mut_slice(), TickType_t::MAX)?;
 
         if num_bytes_read != AUDIO_SAMPLES_PER_BUF * 4 {
             log::error!("buffer underflow");
         }
 
+        for i in 0..AUDIO_SAMPLES_PER_BUF {
+            let sample:&[u8;4] = &buffer[i*4..i*4+4].try_into().expect("bla");
+            audio[next_audio_buf][i] = i32::from_be_bytes(*sample);
+        }
+
         // log::info!("a: {:08x}", audio[next_audio_buf][0]);
 
         let current_fft_buf = processor.process(&audio[next_audio_buf]);
 
-
         effect.render(&processor, current_fft_buf, &leds.leds);
 
         let output_buffer = bytes_of(&leds);