Загрузка данных


#ifndef ZEPHYR_I2S_DEV_H_
#define ZEPHYR_I2S_DEV_H_

#include <stdint.h>

/* Максимальные лимиты памяти (например, под 32кГц или 16кГц) */
#define MAX_SAMPLE_FREQUENCY    32000 
#define NUMBER_OF_CHANNELS      1
#define SAMPLE_BIT_WIDTH        16
#define BYTES_PER_SAMPLE        2 

#define ZEPHYR_AUDIO_INITIAL_BLOCKS 2
#define NUM_BLOCK_COUNT             16
#define ZEPHYR_AUDIO_BLOCK_COUNT    (ZEPHYR_AUDIO_INITIAL_BLOCKS + NUM_BLOCK_COUNT)

/* Слэб нарезается по максимальному размеру фрейма (для 32кГц / 10 = 3200 сэмплов * 2 байта = 6400 байт) */
#define MAX_ZEPHYR_AUDIO_BLOCK_SIZE  ((MAX_SAMPLE_FREQUENCY / 10) * NUMBER_OF_CHANNELS * BYTES_PER_SAMPLE)

typedef void I2S_Stream;

int zephyr_i2s_audio_init(void);
int zephyr_i2s_get_rate(I2S_Stream *stream);
/* Добавляем параметр sample_rate */
int zephyr_i2s_open_stream(I2S_Stream **stream, uint8_t *buf, uint8_t audio_in, uint32_t sample_rate);
int zephyr_i2s_close_stream(I2S_Stream *stream);
int zephyr_i2s_start(uint8_t audio_in);
int zephyr_i2s_stop(uint8_t audio_in);

#endif /* ZEPHYR_I2S_DEV_H_ */