ERIS CORE

◆ receiveWritable()

audio_block_t * AudioStream::receiveWritable ( unsigned int  index = 0)
protectedinherited

Definition at line 188 of file AudioStream.cpp.

189 {
190  audio_block_t *in, *p;
191 
192  if (index >= num_inputs) return NULL;
193  in = inputQueue[index];
194  inputQueue[index] = NULL;
195  if (in && in->ref_count > 1) {
196  p = allocate();
197  if (p) memcpy(p->data, in->data, sizeof(p->data));
198  in->ref_count--;
199  in = p;
200  }
201  return in;
202 }
const char PROGMEM p[][16]
Definition: Eris.h:247
static audio_block_t * allocate(void)
Definition: AudioStream.cpp:92
unsigned char num_inputs
Definition: AudioStream.h:192
audio_block_t ** inputQueue
Definition: AudioStream.h:206
int16_t data[AUDIO_BLOCK_SAMPLES]
Definition: AudioStream.h:78

References AudioStream::allocate(), audio_block_struct::data, AudioStream::inputQueue, AudioStream::num_inputs, p, and audio_block_struct::ref_count.

Referenced by AudioMixer8::update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: