ERIS CORE

◆ update()

void AudioMixer8::update ( void  )
virtual

Implements AudioStream.

Reimplemented in erisAudioMixer8.

Definition at line 49 of file eris_mixer_ext.cpp.

50 {
51  audio_block_t *in, *out=NULL;
52  unsigned int channel;
53 
54  for (channel=0; channel < 8; channel++) {
55  if (!out) {
56  out = receiveWritable(channel);
57  if (out) {
58  int32_t mult = multiplier[channel];
59  if (mult != 65536) applyGain2(out->data, mult);
60  }
61  } else {
62  in = receiveReadOnly(channel);
63  if (in) {
64  applyGainThenAdd2(out->data, in->data, multiplier[channel]);
65  release(in);
66  }
67  }
68  }
69  if (out) {
70  transmit(out);
71  release(out);
72  }
73 }
int32_t multiplier[8]
static void release(audio_block_t *block)
audio_block_t * receiveReadOnly(unsigned int index=0)
void transmit(audio_block_t *block, unsigned char index=0)
audio_block_t * receiveWritable(unsigned int index=0)
static void applyGainThenAdd2(int16_t *data, const int16_t *in, int32_t mult)
static void applyGain2(int16_t *data, int32_t mult)
int16_t data[AUDIO_BLOCK_SAMPLES]
Definition: AudioStream.h:78

References applyGain2(), applyGainThenAdd2(), audio_block_struct::data, multiplier, AudioStream::receiveReadOnly(), AudioStream::receiveWritable(), AudioStream::release(), and AudioStream::transmit().

Referenced by erisAudioMixer8::update().

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