From bdd8c21fcfff8041ea94a972903ce42e58c2a5c2 Mon Sep 17 00:00:00 2001 From: ozpv <39195175+ozpv@users.noreply.github.com> Date: Sat, 29 Aug 2026 23:04:49 -0500 Subject: add retain --- Core/Inc/cs4272.h | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'Core/Inc/cs4272.h') diff --git a/Core/Inc/cs4272.h b/Core/Inc/cs4272.h index 423b7c0..4e22263 100755 --- a/Core/Inc/cs4272.h +++ b/Core/Inc/cs4272.h @@ -26,16 +26,27 @@ #define CS4272_I2C_ADDR (0b0010000 << 1) #define SAMPLE_RATE 48000 -#define BUFFER_SIZE 512 +#define BUFFER_SIZE 1024 -extern volatile int32_t rx_buffer[BUFFER_SIZE]; -extern volatile int32_t tx_buffer[BUFFER_SIZE]; -extern volatile float samples[BUFFER_SIZE]; +typedef enum Channel { + LEFT = 0, + RIGHT = 1, + MONO = 0, +} Channel; + +extern int32_t rx_buffer[BUFFER_SIZE]; +extern int32_t tx_buffer[BUFFER_SIZE]; extern const uint8_t CS4272_CONFIG[7]; uint8_t CS4272_Init(void); -#define INT24_MAX 0x7FFFFF +static inline __attribute__((always_inline)) float int24_t_to_f32(const int32_t in) { + return ((float)(in << 8)) / ((float)INT32_MAX); +} + +static inline __attribute__((always_inline)) int32_t f32_to_int24_t(const float in) { + return ((int32_t)(in * ((float)INT32_MAX))) >> 8; +} #endif /* INC_CS4272_H_ */ -- cgit v1.2.3