From f226bde6356c61e7ff1bcc64a1a494508c7a6827 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 14 Jan 2004 08:10:37 +0000 Subject: [PATCH] remove "fake" sounds --- stepmania/src/RageSoundManager.cpp | 53 ------------------------------ stepmania/src/RageSoundManager.h | 8 +---- 2 files changed, 1 insertion(+), 60 deletions(-) diff --git a/stepmania/src/RageSoundManager.cpp b/stepmania/src/RageSoundManager.cpp index bfbf75dcf7..29b52b9046 100644 --- a/stepmania/src/RageSoundManager.cpp +++ b/stepmania/src/RageSoundManager.cpp @@ -61,24 +61,10 @@ void RageSoundManager::StopMixing(RageSound *snd) sounds_to_delete.insert(snd); owned_sounds.erase(snd); } - - map::iterator fake = - fake_sounds.find(const_cast(snd)); - if(fake != fake_sounds.end()) - fake_sounds.erase(fake); } int RageSoundManager::GetPosition(const RageSound *snd) const { - map::const_iterator fake = - fake_sounds.find(const_cast(snd)); - if(fake != fake_sounds.end()) - { - float time_since = RageTimer::GetTimeSinceStart() - fake->second.begin; - - return int(time_since * 44100); // XXX - } - return driver->GetPosition(snd); } @@ -95,45 +81,6 @@ void RageSoundManager::Update(float delta) (*i)->Update(delta); driver->Update(delta); - - /* We keep a list of "fake" sound effects. These are sound effects that - * have been requested to play, but the driver couldn't play them; usually - * because it's run out of sound channels. Pretend we're playing them, - * since this should be uncommon. */ - { - char buf[1024*16]; - map::iterator j = fake_sounds.begin(), - next = j; - while(j != fake_sounds.end()) - { - next++; - - RageSound *s = j->first; - FakeSound &fake = j->second; - - int bytes = int(min(unsigned(delta * 44100*4), sizeof(buf))); - - int now = int(RageTimer::GetTimeSinceStart() - fake.begin) * 44100; - - int got = s->GetPCM(buf, bytes, now); - if(got < bytes) - s->StopPlaying(); - - j = next; - } - } -} - -void RageSoundManager::AddFakeSound(RageSound *snd) -{ - map::const_iterator fake = - fake_sounds.find(const_cast(snd)); - - ASSERT(fake == fake_sounds.end()); - FakeSound newfake; - newfake.begin = RageTimer::GetTimeSinceStart(); - newfake.samples_read = 0; - fake_sounds[snd] = newfake; } float RageSoundManager::GetPlayLatency() const diff --git a/stepmania/src/RageSoundManager.h b/stepmania/src/RageSoundManager.h index 0abd396c33..b299621654 100644 --- a/stepmania/src/RageSoundManager.h +++ b/stepmania/src/RageSoundManager.h @@ -18,12 +18,6 @@ class RageSoundManager /* Set of sounds that are finished and should be deleted. */ set sounds_to_delete; - struct FakeSound { - float begin; - int samples_read; - }; - map fake_sounds; - RageSoundDriver *driver; /* Prefs: */ @@ -42,7 +36,6 @@ public: void StartMixing(RageSound *snd); /* used by RageSound */ void StopMixing(RageSound *snd); /* used by RageSound */ int GetPosition(const RageSound *snd) const; /* used by RageSound */ - void AddFakeSound(RageSound *snd); /* used by drivers */ float GetPlayLatency() const; int GetDriverSampleRate( int rate ) const; const set &GetPlayingSounds() const { return playing_sounds; } @@ -52,6 +45,7 @@ public: RageSound *PlaySound(RageSound &snd); void StopPlayingSound(RageSound &snd); + /* A list of all sounds that currently exist. RageSound adds and removes * itself to this. */ set all_sounds;