/*
-Minetest-c55
-Copyright (C) 2012 celeron55, Perttu Ahola <celeron55@gmail.com>
+Minetest
+Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
OpenAL support based on work by:
Copyright (C) 2011 Sebastian 'Bahamada' Rühl
Copyright (C) 2011 Cyriaque 'Cisoun' Skrapits <cysoun@gmail.com>
#elif defined(__APPLE__)
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
- #include <OpenAL/alext.h>
+ //#include <OpenAL/alext.h>
#else
#include <AL/al.h>
#include <AL/alc.h>
#include <AL/alext.h>
#endif
#include <vorbis/vorbisfile.h>
+#include <assert.h>
#include "log.h"
+#include "filesys.h"
+#include "util/numeric.h" // myrand()
+#include "porting.h"
#include <map>
#include <vector>
-#include "utility.h" // myrand()
-#include "filesys.h"
+#include <fstream>
#define BUFFER_SIZE 30000
m_context = NULL;
alcCloseDevice(m_device);
m_device = NULL;
+
+ for (std::map<std::string, std::vector<SoundBuffer*> >::iterator i = m_buffers.begin();
+ i != m_buffers.end(); ++i) {
+ for (std::vector<SoundBuffer*>::iterator iter = (*i).second.begin();
+ iter != (*i).second.end(); ++iter) {
+ delete *iter;
+ }
+ (*i).second.clear();
+ }
+ m_buffers.clear();
infostream<<"Audio: Deinitialized."<<std::endl;
}
}
/* If buffer does not exist, consult the fetcher */
- SoundBuffer* getFetchBuffer(const std::string name)
+ SoundBuffer* getFetchBuffer(const std::string &name)
{
SoundBuffer *buf = getBuffer(name);
if(buf)
std::set<std::string> datas;
m_fetcher->fetchSounds(name, paths, datas);
for(std::set<std::string>::iterator i = paths.begin();
- i != paths.end(); i++){
+ i != paths.end(); ++i){
loadSoundFile(name, *i);
}
for(std::set<std::string>::iterator i = datas.begin();
- i != datas.end(); i++){
+ i != datas.end(); ++i){
loadSoundData(name, *i);
}
return getBuffer(name);
std::set<int> del_list;
for(std::map<int, PlayingSound*>::iterator
i = m_sounds_playing.begin();
- i != m_sounds_playing.end(); i++)
+ i != m_sounds_playing.end(); ++i)
{
int id = i->first;
PlayingSound *sound = i->second;
}
}
}
- if(del_list.size() != 0)
+ if(!del_list.empty())
verbosestream<<"OpenALSoundManager::maintain(): deleting "
<<del_list.size()<<" playing sounds"<<std::endl;
for(std::set<int>::iterator i = del_list.begin();
- i != del_list.end(); i++)
+ i != del_list.end(); ++i)
{
deleteSound(*i);
}