M5Unified
m5::Mic_Class Class Reference

#include <Mic_Class.hpp>

Collaboration diagram for m5::Mic_Class:

Classes

struct  recording_info_t
 

Public Member Functions

mic_config_t config (void) const
 
void config (const mic_config_t &cfg)
 
bool begin (void)
 
void end (void)
 
bool isRunning (void) const
 
bool isEnabled (void) const
 
size_t isRecording (void) const
 
void setSampleRate (uint32_t sample_rate)
 
bool record (uint8_t *rec_data, size_t array_len, uint32_t sample_rate, bool stereo=false)
 
bool record (int16_t *rec_data, size_t array_len, uint32_t sample_rate, bool stereo=false)
 
bool record (uint8_t *rec_data, size_t array_len)
 
bool record (int16_t *rec_data, size_t array_len)
 

Protected Member Functions

void setCallback (void *args, bool(*func)(void *, bool))
 
uint32_t _calc_rec_rate (void) const
 
esp_err_t _setup_i2s (void)
 
bool _rec_raw (void *recdata, size_t array_len, bool flg_16bit, uint32_t sample_rate, bool stereo)
 

Static Protected Member Functions

static void mic_task (void *args)
 

Protected Attributes

recording_info_t _rec_info [2]
 
volatile bool _rec_flip = false
 
mic_config_t _cfg
 
uint32_t _rec_sample_rate = 0
 
bool(* _cb_set_enabled )(void *args, bool enabled) = nullptr
 
void * _cb_set_enabled_args = nullptr
 
volatile bool _task_running = false
 
volatile bool _is_recording = false
 
TaskHandle_t _task_handle = nullptr
 
volatile SemaphoreHandle_t _task_semaphore = nullptr
 

Detailed Description

Definition at line 85 of file Mic_Class.hpp.

Member Function Documentation

◆ _calc_rec_rate()

uint32_t m5::Mic_Class::_calc_rec_rate ( void  ) const
protected

◆ _rec_raw()

bool m5::Mic_Class::_rec_raw ( void *  recdata,
size_t  array_len,
bool  flg_16bit,
uint32_t  sample_rate,
bool  stereo 
)
protected
Here is the caller graph for this function:

◆ _setup_i2s()

esp_err_t m5::Mic_Class::_setup_i2s ( void  )
protected

◆ begin()

bool m5::Mic_Class::begin ( void  )

◆ config() [1/2]

void m5::Mic_Class::config ( const mic_config_t cfg)
inline

Definition at line 92 of file Mic_Class.hpp.

◆ config() [2/2]

mic_config_t m5::Mic_Class::config ( void  ) const
inline

Definition at line 91 of file Mic_Class.hpp.

◆ end()

void m5::Mic_Class::end ( void  )

◆ isEnabled()

bool m5::Mic_Class::isEnabled ( void  ) const
inline

Definition at line 100 of file Mic_Class.hpp.

◆ isRecording()

size_t m5::Mic_Class::isRecording ( void  ) const
inline

now in recording or not.

Returns
0=not recording / 1=recording (There's room in the queue) / 2=recording (There's no room in the queue.)

Definition at line 104 of file Mic_Class.hpp.

◆ isRunning()

bool m5::Mic_Class::isRunning ( void  ) const
inline

Definition at line 98 of file Mic_Class.hpp.

◆ mic_task()

static void m5::Mic_Class::mic_task ( void *  args)
staticprotected

◆ record() [1/4]

bool m5::Mic_Class::record ( int16_t *  rec_data,
size_t  array_len 
)
inline

record raw sound wave data.

Parameters
rec_dataRecording destination array.
array_lenNumber of data array elements.

Definition at line 141 of file Mic_Class.hpp.

Here is the call graph for this function:

◆ record() [2/4]

bool m5::Mic_Class::record ( int16_t *  rec_data,
size_t  array_len,
uint32_t  sample_rate,
bool  stereo = false 
)
inline

record raw sound wave data.

Parameters
rec_dataRecording destination array.
array_lenNumber of data array elements.
sample_ratethe sampling rate (Hz)
stereotrue=data is stereo / false=data is monaural.

Definition at line 125 of file Mic_Class.hpp.

Here is the call graph for this function:

◆ record() [3/4]

bool m5::Mic_Class::record ( uint8_t *  rec_data,
size_t  array_len 
)
inline

record raw sound wave data.

Parameters
rec_dataRecording destination array.
array_lenNumber of data array elements.

Definition at line 133 of file Mic_Class.hpp.

Here is the call graph for this function:

◆ record() [4/4]

bool m5::Mic_Class::record ( uint8_t *  rec_data,
size_t  array_len,
uint32_t  sample_rate,
bool  stereo = false 
)
inline

record raw sound wave data.

Parameters
rec_dataRecording destination array.
array_lenNumber of data array elements.
sample_ratethe sampling rate (Hz)
stereotrue=data is stereo / false=data is monaural.

Definition at line 115 of file Mic_Class.hpp.

Here is the call graph for this function:

◆ setCallback()

void m5::Mic_Class::setCallback ( void *  args,
bool(*)(void *, bool)  func 
)
inlineprotected

Definition at line 148 of file Mic_Class.hpp.

◆ setSampleRate()

void m5::Mic_Class::setSampleRate ( uint32_t  sample_rate)
inline

set recording sampling rate.

Parameters
sample_ratethe sampling rate (Hz)

Definition at line 108 of file Mic_Class.hpp.

Member Data Documentation

◆ _cb_set_enabled

bool(* m5::Mic_Class::_cb_set_enabled) (void *args, bool enabled) = nullptr
protected

Definition at line 171 of file Mic_Class.hpp.

◆ _cb_set_enabled_args

void* m5::Mic_Class::_cb_set_enabled_args = nullptr
protected

Definition at line 172 of file Mic_Class.hpp.

◆ _cfg

mic_config_t m5::Mic_Class::_cfg
protected

Definition at line 168 of file Mic_Class.hpp.

◆ _is_recording

volatile bool m5::Mic_Class::_is_recording = false
protected

Definition at line 175 of file Mic_Class.hpp.

◆ _rec_flip

volatile bool m5::Mic_Class::_rec_flip = false
protected

Definition at line 160 of file Mic_Class.hpp.

◆ _rec_info

recording_info_t m5::Mic_Class::_rec_info[2]
protected

Definition at line 159 of file Mic_Class.hpp.

◆ _rec_sample_rate

uint32_t m5::Mic_Class::_rec_sample_rate = 0
protected

Definition at line 169 of file Mic_Class.hpp.

◆ _task_handle

TaskHandle_t m5::Mic_Class::_task_handle = nullptr
protected

Definition at line 179 of file Mic_Class.hpp.

◆ _task_running

volatile bool m5::Mic_Class::_task_running = false
protected

Definition at line 174 of file Mic_Class.hpp.

◆ _task_semaphore

volatile SemaphoreHandle_t m5::Mic_Class::_task_semaphore = nullptr
protected

Definition at line 180 of file Mic_Class.hpp.


The documentation for this class was generated from the following file: