140} InternalBelaContext;
146 static const unsigned int kPruGPIODACSyncPin;
147 static const unsigned int kPruGPIOADCSyncPin;
151 PRU(InternalBelaContext *input_context);
157 int prepareGPIO(
int include_led);
163 int initialise(
BelaHw newBelaHw,
int pru_num,
bool uniformSampleRate,
165 int stopButtonPin,
bool enableLed,
166 uint32_t disabledBelaDigitalChannels);
169 int start(
char *
const filename,
const McaspRegisters& mcaspRegisters);
175 void waitForFinish();
187 InternalBelaContext *context;
193 bool digital_enabled;
194 float analogs_per_audio;
195 bool uniform_sample_rate;
196 int hardware_analog_frames;
199 bool analog_out_is_audio;
200 size_t pru_audio_out_channels;
202 PruMemory* pruMemory;
203 volatile uint32_t *pru_buffer_comm;
204 uint32_t pruBufferMcaspFrames;
206 float *last_analog_out_frame;
207 uint32_t *last_digital_buffer;
208 float *audio_expander_input_history;
209 float *audio_expander_output_history;
210 float audio_expander_filter_coeff;
211 bool pruUsesMcaspIrq;
217 uint32_t disabledDigitalChannels;
BelaHw
Definition Bela.h:108
Definition PruManager.h:21
void render(BelaContext *context, void *userData)
User-defined callback function to process audio and sensor data.
Definition render.cpp:68
Structure holding audio and sensor settings and pointers to I/O data buffers.
Definition Bela.h:231
uint32_t flags
Other audio/sensor settings.
Definition PRU.h:132
uint32_t analogFrames
Number of analog frames per period.
Definition PRU.h:62
float * analogIn
Buffer holding analog input samples.
Definition PRU.h:36
float * audioIn
Buffer holding audio input samples.
Definition PRU.h:22
uint32_t digitalChannels
Number of digital channels.
Definition PRU.h:87
uint32_t audioInChannels
Number of input audio channels.
Definition PRU.h:53
float analogSampleRate
Analog sample rate in Hz.
Definition PRU.h:80
uint32_t * digital
Buffer holding digital input/output samples.
Definition PRU.h:48
uint64_t audioFramesElapsed
Number of elapsed audio frames since the start of rendering.
Definition PRU.h:97
unsigned int underrunCount
Number of detected underruns.
Definition PRU.h:138
uint32_t analogOutChannels
Number of output analog channels.
Definition PRU.h:72
float * analogOut
Buffer holding analog output samples.
Definition PRU.h:43
uint32_t audioFrames
Number of audio frames per period.
Definition PRU.h:51
float * audioOut
Buffer holding audio output samples.
Definition PRU.h:29
float digitalSampleRate
Digital sample rate in Hz (currently always 44100.0).
Definition PRU.h:89
uint32_t audioOutChannels
Number of output audio channels.
Definition PRU.h:55
float * multiplexerAnalogIn
Buffer which holds multiplexed analog inputs, when multiplexer capelet is enabled.
Definition PRU.h:116
float audioSampleRate
Audio sample rate in Hz (currently always 44100.0).
Definition PRU.h:57
uint32_t analogInChannels
Number of input analog channels.
Definition PRU.h:67
uint32_t multiplexerChannels
Number of multiplexer channels for each analog input.
Definition PRU.h:103
uint32_t multiplexerStartingChannel
Multiplexer channel corresponding to the first analog frame.
Definition PRU.h:109
char projectName[MAX_PROJECTNAME_LENGTH]
Name of running project.
Definition PRU.h:135
uint32_t audioExpanderEnabled
Flags for whether audio expander is enabled on given analog channels.
Definition PRU.h:122
uint32_t digitalFrames
Number of digital frames per period.
Definition PRU.h:83