Pārlūkot izejas kodu

Fix memory leak in AudioPlaySdRaw

dds
PaulStoffregen pirms 11 gadiem
vecāks
revīzija
1b51f558fb
2 mainītis faili ar 2 papildinājumiem un 6 dzēšanām
  1. +2
    -5
      play_sd_raw.cpp
  2. +0
    -1
      play_sd_raw.h

+ 2
- 5
play_sd_raw.cpp Parādīt failu

void AudioPlaySdRaw::begin(void) void AudioPlaySdRaw::begin(void)
{ {
playing = false; playing = false;
if (block) {
release(block);
block = NULL;
}
file_offset = 0; file_offset = 0;
file_size = 0; file_size = 0;
} }
void AudioPlaySdRaw::update(void) void AudioPlaySdRaw::update(void)
{ {
unsigned int i, n; unsigned int i, n;
audio_block_t *block;


// only update if we're playing // only update if we're playing
if (!playing) return; if (!playing) return;
block->data[i] = 0; block->data[i] = 0;
} }
transmit(block); transmit(block);
release(block);
} else { } else {
rawfile.close(); rawfile.close();
playing = false; playing = false;
} }
release(block);
} }


#define B2M (uint32_t)((double)4294967296000.0 / AUDIO_SAMPLE_RATE_EXACT / 2.0) // 97352592 #define B2M (uint32_t)((double)4294967296000.0 / AUDIO_SAMPLE_RATE_EXACT / 2.0) // 97352592

+ 0
- 1
play_sd_raw.h Parādīt failu

virtual void update(void); virtual void update(void);
private: private:
File rawfile; File rawfile;
audio_block_t *block;
uint32_t file_size; uint32_t file_size;
uint32_t file_offset; uint32_t file_offset;
bool playing; bool playing;

Notiek ielāde…
Atcelt
Saglabāt