浏览代码

Fix memory leak in AudioPlaySdRaw

dds
PaulStoffregen 11 年前
父节点
当前提交
1b51f558fb
共有 2 个文件被更改,包括 2 次插入6 次删除
  1. +2
    -5
      play_sd_raw.cpp
  2. +0
    -1
      play_sd_raw.h

+ 2
- 5
play_sd_raw.cpp 查看文件

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 查看文件

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;

正在加载...
取消
保存