Macros | Functions | Variables
stm32f769/stm32f769i-disco/Src/pv_audio_rec.c File Reference
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include "stm32f769i_discovery_audio.h"
#include "picovoice.h"
Include dependency graph for stm32f769/stm32f769i-disco/Src/pv_audio_rec.c:

Go to the source code of this file.

Macros

#define AUDIO_IN_PCM_BUFFER_SIZE   (PV_AUDIO_REC_RECORD_BUFFER_SIZE)
 
#define AUDIO_IN_PDM_BUFFER_SIZE   (AUDIO_IN_PCM_BUFFER_SIZE / 4)
 
#define PV_AUDIO_REC_AUDIO_FREQUENCY   (16000U)
 
#define PV_AUDIO_REC_CHANNEL_NUMBER   (2)
 
#define PV_AUDIO_REC_RECORD_BUFFER_SIZE   (512)
 
#define PV_AUDIO_REC_VOLUME_LEVEL   (100)
 
#define PV_INT16_MAX   (32767)
 
#define PV_INT16_MIN   (-32767 - 1)
 
#define pv_int32_to_int16(N)   (((N)<(PV_INT16_MIN))?(PV_INT16_MIN):(((N)>(PV_INT16_MAX))?(PV_INT16_MAX):(N)))
 

Functions

 ALIGN_32BYTES (static int16_t ping_pong_buffer[2][PV_AUDIO_REC_RECORD_BUFFER_SIZE])
 
 ALIGN_32BYTES (static int32_t record_pdm_buffer[AUDIO_IN_PDM_BUFFER_SIZE])
 
 ALIGN_32BYTES (static uint16_t record_pcm_buffer[AUDIO_IN_PCM_BUFFER_SIZE])
 
void BSP_AUDIO_IN_Error_CallBack (void)
 Audio IN Error callback function. More...
 
void BSP_AUDIO_IN_HalfTransfer_CallBack (void)
 Manages the DMA Half Transfer complete event. More...
 
void BSP_AUDIO_IN_TransferComplete_CallBack (void)
 User callback when record buffer is filled. More...
 
void pv_audio_rec_deinit (void)
 
const int16_t * pv_audio_rec_get_new_buffer (void)
 
pv_status_t pv_audio_rec_init (void)
 
pv_status_t pv_audio_rec_start (void)
 
pv_status_t pv_audio_rec_stop (void)
 
static int16_t pv_hpf (int16_t s_int16, int16_t s_old_int16)
 

Variables

static int32_t buffer_index = 0
 
static int32_t last_read_index = -1
 
struct {
   uint32_t   audio_frequency
 
   uint32_t   channel_number
 
   int32_t   filter_old_output
 
   bool   is_recording
 
   uint32_t   record_buffer_size
 
   uint16_t *   record_pcm_buffer
 
pv_audio_rec
 
static int32_t read_index = 1
 
__IO uint32_t SdmmcTest = 0
 
__IO uint32_t SdramTest = 0
 
static int32_t write_index = 0
 

Macro Definition Documentation

◆ AUDIO_IN_PCM_BUFFER_SIZE

#define AUDIO_IN_PCM_BUFFER_SIZE   (PV_AUDIO_REC_RECORD_BUFFER_SIZE)

◆ AUDIO_IN_PDM_BUFFER_SIZE

#define AUDIO_IN_PDM_BUFFER_SIZE   (AUDIO_IN_PCM_BUFFER_SIZE / 4)

◆ PV_AUDIO_REC_AUDIO_FREQUENCY

#define PV_AUDIO_REC_AUDIO_FREQUENCY   (16000U)

◆ PV_AUDIO_REC_CHANNEL_NUMBER

#define PV_AUDIO_REC_CHANNEL_NUMBER   (2)

◆ PV_AUDIO_REC_RECORD_BUFFER_SIZE

#define PV_AUDIO_REC_RECORD_BUFFER_SIZE   (512)

◆ PV_AUDIO_REC_VOLUME_LEVEL

#define PV_AUDIO_REC_VOLUME_LEVEL   (100)

◆ PV_INT16_MAX

#define PV_INT16_MAX   (32767)

◆ PV_INT16_MIN

#define PV_INT16_MIN   (-32767 - 1)

◆ pv_int32_to_int16

#define pv_int32_to_int16 (   N)    (((N)<(PV_INT16_MIN))?(PV_INT16_MIN):(((N)>(PV_INT16_MAX))?(PV_INT16_MAX):(N)))

Function Documentation

◆ ALIGN_32BYTES() [1/3]

ALIGN_32BYTES ( static int16_t  ping_pong_buffer[2][PV_AUDIO_REC_RECORD_BUFFER_SIZE])

◆ ALIGN_32BYTES() [2/3]

ALIGN_32BYTES ( static int32_t  record_pdm_buffer[AUDIO_IN_PDM_BUFFER_SIZE])

◆ ALIGN_32BYTES() [3/3]

ALIGN_32BYTES ( static uint16_t  record_pcm_buffer[AUDIO_IN_PCM_BUFFER_SIZE])

◆ pv_audio_rec_deinit()

void pv_audio_rec_deinit ( void  )

◆ pv_audio_rec_get_new_buffer()

const int16_t* pv_audio_rec_get_new_buffer ( void  )

◆ pv_audio_rec_init()

pv_status_t pv_audio_rec_init ( void  )

◆ pv_audio_rec_start()

pv_status_t pv_audio_rec_start ( void  )

◆ pv_audio_rec_stop()

pv_status_t pv_audio_rec_stop ( void  )

◆ pv_hpf()

static int16_t pv_hpf ( int16_t  s_int16,
int16_t  s_old_int16 
)
inlinestatic

Variable Documentation

◆ audio_frequency

uint32_t audio_frequency

◆ buffer_index

int32_t buffer_index = 0
static

◆ channel_number

uint32_t channel_number

◆ filter_old_output

int32_t filter_old_output

◆ is_recording

bool is_recording

◆ last_read_index

int32_t last_read_index = -1
static

◆ pv_audio_rec

struct { ... } pv_audio_rec

◆ read_index

int32_t read_index = 1
static

◆ record_buffer_size

uint32_t record_buffer_size

◆ record_pcm_buffer

uint16_t* record_pcm_buffer

◆ SdmmcTest

__IO uint32_t SdmmcTest = 0

◆ SdramTest

__IO uint32_t SdramTest = 0

◆ write_index

int32_t write_index = 0
static


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:15:00