dosgame1/audio/Audio.cpp

36 lines
615 B
C++

#include "Audio.h"
#include "../util/Files.h"
#include "AudioPlayer.h"
Audio::Audio() {
}
Audio::Audio(const char *path) {
loadFromFile(path);
}
Audio::~Audio() {
unload();
}
bool Audio::isValid() const {
return _data != nullptr;
}
void Audio::loadFromFile(const char *path) {
unload();
_length = Files::allocateBufferAndLoadFromFile(path, &_data);
}
void Audio::unload() {
if (_data) {
if (audioPlayer.isPlaying(*this)) {
audioPlayer.stopAudio(*this);
}
Files::deleteBuffer(_data);
_length = 0;
}
}