Browse Source

:%s/^I/ /ge

Darryl Pogue 14 years ago
parent
commit
93adfa9c7d
  1. 84
      Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.cpp
  2. 42
      Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.h

84
Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.cpp

@ -76,30 +76,30 @@ static plAudioFileReader *CreateReader( hsBool fullpath, const char filename[],
hsError plSoundPreloader::Run()
{
hsTArray<plSoundBuffer*> templist;
while (fRunning)
{
fCritSect.Lock();
for (int i = fBuffers.GetCount(); i > 0; i--)
{
templist.Append(fBuffers.Pop());
}
fCritSect.Unlock();
if (templist.GetCount() == 0)
{
fEvent.Wait();
}
else
{
hsTArray<plSoundBuffer*> templist;
while (fRunning)
{
fCritSect.Lock();
for (int i = fBuffers.GetCount(); i > 0; i--)
{
templist.Append(fBuffers.Pop());
}
fCritSect.Unlock();
if (templist.GetCount() == 0)
{
fEvent.Wait();
}
else
{
plAudioFileReader *reader = nil;
for (int i = templist.GetCount(); i > 0; i--)
{
plSoundBuffer* buf = templist.Pop();
for (int i = templist.GetCount(); i > 0; i--)
{
plSoundBuffer* buf = templist.Pop();
if (buf->GetData())
{
if (buf->GetData())
{
reader = CreateReader(true, buf->GetFileName(), buf->GetAudioReaderType(), buf->GetReaderSelect());
if( reader )
@ -109,39 +109,39 @@ hsError plSoundPreloader::Run()
buf->SetAudioReader(reader); // give sound buffer reader, since we may need it later
}
else
{
{
buf->SetError();
}
}
}
}
buf->SetLoaded(true);
}
}
}
buf->SetLoaded(true);
}
}
}
// we need to be sure that all buffers are removed from our load list when shutting this thread down or we will hang,
// since the sound buffer will wait to be destroyed until it is marked as loaded
fCritSect.Lock();
for (int i = fBuffers.GetCount(); i > 0; i--)
{
plSoundBuffer* buf = fBuffers.Pop();
buf->SetLoaded(true);
}
fCritSect.Unlock();
return hsOK;
fCritSect.Lock();
for (int i = fBuffers.GetCount(); i > 0; i--)
{
plSoundBuffer* buf = fBuffers.Pop();
buf->SetLoaded(true);
}
fCritSect.Unlock();
return hsOK;
}
static plSoundPreloader gLoaderThread;
void plSoundBuffer::Init()
{
gLoaderThread.Start();
gLoaderThread.Start();
}
void plSoundBuffer::Shutdown()
{
gLoaderThread.Stop();
gLoaderThread.Stop();
}
//// Constructor/Destructor //////////////////////////////////////////////////
@ -350,8 +350,8 @@ plSoundBuffer::ELoadReturnVal plSoundBuffer::AsyncLoad(plAudioFileReader::Stream
return kError;
}
gLoaderThread.AddBuffer(this);
fLoading = true;
gLoaderThread.AddBuffer(this);
fLoading = true;
}
if(fLoaded)
{

42
Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.h

@ -145,34 +145,34 @@ protected:
class plSoundPreloader : public hsThread
{
protected:
hsTArray<plSoundBuffer*> fBuffers;
hsEvent fEvent;
bool fRunning;
hsMutex fCritSect;
hsTArray<plSoundBuffer*> fBuffers;
hsEvent fEvent;
bool fRunning;
hsMutex fCritSect;
public:
virtual hsError Run();
virtual hsError Run();
virtual void Start() {
fRunning = true;
hsThread::Start();
}
virtual void Start() {
fRunning = true;
hsThread::Start();
}
virtual void Stop() {
fRunning = false;
fEvent.Signal();
hsThread::Stop();
}
virtual void Stop() {
fRunning = false;
fEvent.Signal();
hsThread::Stop();
}
bool IsRunning() const { return fRunning; }
bool IsRunning() const { return fRunning; }
void AddBuffer(plSoundBuffer* buffer) {
fCritSect.Lock();
fBuffers.Push(buffer);
fCritSect.Unlock();
void AddBuffer(plSoundBuffer* buffer) {
fCritSect.Lock();
fBuffers.Push(buffer);
fCritSect.Unlock();
fEvent.Signal();
}
fEvent.Signal();
}
};
#endif //_plSoundBuffer_h

Loading…
Cancel
Save