ERIS CORE

◆ release()

void AudioStream::release ( audio_block_t block)
staticprotectedinherited

Definition at line 135 of file AudioStream.cpp.

136 {
137  //if (block == NULL) return;
138  uint32_t mask = (0x80000000 >> (31 - (block->memory_pool_index & 0x1F)));
139  uint32_t index = block->memory_pool_index >> 5;
140 
141  //__disable_irq();
142  if (block->ref_count > 1) {
143  block->ref_count--;
144  } else {
145  //Serial.print("reles:");
146  //Serial.println((uint32_t)block, HEX);
147  memory_pool_available_mask[index] |= mask;
148  if (index < memory_pool_first_mask) memory_pool_first_mask = index;
149  memory_used--;
150  }
151  //__enable_irq();
152 }
static uint16_t memory_pool_first_mask
Definition: AudioStream.h:213
static uint32_t memory_pool_available_mask[]
Definition: AudioStream.h:212
static uint16_t memory_used
Definition: AudioStream.h:181
uint16_t memory_pool_index
Definition: AudioStream.h:77

References AudioStream::memory_pool_available_mask, AudioStream::memory_pool_first_mask, audio_block_struct::memory_pool_index, AudioStream::memory_used, and audio_block_struct::ref_count.

Referenced by AudioConnection::disconnect(), erisAudioAnalyzeFFT1024::update(), erisAudioAnalyzeScope::update(), AudioMixer8::update(), AudioSynthWaveformhd::update(), and AudioSynthWaveformModulated2k::update().

+ Here is the caller graph for this function: