oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
Loading...
Searching...
No Matches
Data Structures | Typedefs | Enumerations | Functions
i2s.h File Reference
#include "ove/types.h"
#include "ove_config.h"
#include "ove/storage.h"
Include dependency graph for i2s.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ove_i2s_cfg
 I2S bus configuration descriptor. More...
 

Typedefs

typedef void(* ove_i2s_cb_t) (ove_i2s_t i2s, void *user_data)
 I2S half-buffer completion callback.
 

Enumerations

enum  ove_i2s_dir_t { OVE_I2S_DIR_TX = 0x01 , OVE_I2S_DIR_RX = 0x02 , OVE_I2S_DIR_TXRX = 0x03 }
 I2S stream direction. More...
 

Functions

int ove_i2s_init (ove_i2s_t *i2s, ove_i2s_storage_t *storage, void *tx_dma_buf, void *rx_dma_buf, const struct ove_i2s_cfg *cfg)
 Initialise I2S with caller-provided static storage and DMA buffers.
 
void ove_i2s_deinit (ove_i2s_t i2s)
 Release an I2S handle previously created with ove_i2s_init.
 
int ove_i2s_create (ove_i2s_t *i2s, const struct ove_i2s_cfg *cfg)
 Heap-mode counterpart of ove_i2s_init() — allocates storage and DMA buffers internally.
 
void ove_i2s_destroy (ove_i2s_t i2s)
 Destroy an I2S handle previously created with ove_i2s_create.
 
int ove_i2s_set_rx_callback (ove_i2s_t i2s, ove_i2s_cb_t cb, void *user_data)
 Set the RX half-buffer completion callback.
 
int ove_i2s_set_tx_callback (ove_i2s_t i2s, ove_i2s_cb_t cb, void *user_data)
 Set the TX half-buffer completion callback.
 
int ove_i2s_start (ove_i2s_t i2s)
 Start I2S DMA streaming.
 
int ove_i2s_stop (ove_i2s_t i2s)
 Stop I2S DMA streaming.
 
int ove_i2s_pause (ove_i2s_t i2s)
 Pause I2S DMA streaming (can be resumed).
 
int ove_i2s_resume (ove_i2s_t i2s)
 Resume I2S DMA streaming after pause.
 
void * ove_i2s_rx_buf (ove_i2s_t i2s)
 Get pointer to the most recently completed RX half-buffer.
 
void * ove_i2s_tx_buf (ove_i2s_t i2s)
 Get pointer to the TX half-buffer safe to write.
 
size_t ove_i2s_half_buf_size (ove_i2s_t i2s)
 Get the size of one half-buffer in bytes.
 
void ove_i2s_rx_half_cplt_isr (ove_i2s_t i2s)
 ISR helper — invoke from backend RX half-complete interrupt.
 
void ove_i2s_rx_cplt_isr (ove_i2s_t i2s)
 ISR helper — invoke from backend RX full-complete interrupt.
 
void ove_i2s_tx_half_cplt_isr (ove_i2s_t i2s)
 ISR helper — invoke from backend TX half-complete interrupt.
 
void ove_i2s_tx_cplt_isr (ove_i2s_t i2s)
 ISR helper — invoke from backend TX full-complete interrupt.