fix up sound firing
This commit is contained in:
@@ -98,21 +98,23 @@ RageSound::RageSound(const RageSound &cpy)
|
|||||||
LockMutex L(SOUNDMAN->lock);
|
LockMutex L(SOUNDMAN->lock);
|
||||||
|
|
||||||
stream.Sample = NULL;
|
stream.Sample = NULL;
|
||||||
position = 0;
|
|
||||||
playing = false;
|
|
||||||
Loop = false;
|
|
||||||
speed = 1.0f;
|
|
||||||
stream.buf.reserve(internal_buffer_size);
|
|
||||||
AutoStop = cpy.AutoStop;
|
|
||||||
|
|
||||||
/* Copy some of it; don't copy the playing state. */
|
|
||||||
big = cpy.big;
|
|
||||||
full_buf = cpy.full_buf;
|
full_buf = cpy.full_buf;
|
||||||
|
big = cpy.big;
|
||||||
|
AutoStop = cpy.AutoStop;
|
||||||
|
m_sFilePath = cpy.m_sFilePath;
|
||||||
|
m_StartSeconds = cpy.m_StartSeconds;
|
||||||
|
m_LengthSeconds = cpy.m_LengthSeconds;
|
||||||
|
Loop = cpy.Loop;
|
||||||
|
position = cpy.position;
|
||||||
|
playing = false;
|
||||||
|
speed = cpy.speed;
|
||||||
|
|
||||||
if(big)
|
if(big)
|
||||||
{
|
{
|
||||||
/* We can't copy the Sound_Sample, so load a new one.
|
/* We can't copy the Sound_Sample, so load a new one.
|
||||||
* Don't bother trying to load it in a small buffer. */
|
* Don't bother trying to load it in a small buffer. */
|
||||||
|
stream.buf.reserve(internal_buffer_size);
|
||||||
Load(cpy.GetLoadedFilePath(), false);
|
Load(cpy.GetLoadedFilePath(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,8 +93,13 @@ void RageSoundManager::PlayCopy( const RageSound &snd )
|
|||||||
* std::basic_string happens to be refcounted). That's not too bad,
|
* std::basic_string happens to be refcounted). That's not too bad,
|
||||||
* but we might do five of these in the same frame ...
|
* but we might do five of these in the same frame ...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
RageSound *newsnd = new RageSound(snd);
|
RageSound *newsnd = new RageSound(snd);
|
||||||
|
|
||||||
|
/* PlayCopy's sounds must always stop on their own. */
|
||||||
|
newsnd->SetLooping(true);
|
||||||
|
newsnd->SetAutoStop(true);
|
||||||
|
|
||||||
/* We're responsible for freeing it. */
|
/* We're responsible for freeing it. */
|
||||||
owned_sounds.insert(newsnd);
|
owned_sounds.insert(newsnd);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user