Implement llSetSoundQueueing().

This is controlled by the viewer, not the server.
So as per http://wiki.secondlife.com/wiki/LlSetSoundQueueing, only two sounds can be queued per prim.
You probably need to use llPreloadSound() for best results
This commit is contained in:
Justin Clark-Casey (justincc)
2013-05-22 20:01:57 +01:00
parent 6596a1de80
commit 7d38f4940c
4 changed files with 33 additions and 6 deletions

View File

@@ -2474,9 +2474,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in range
if (m_SoundModule != null)
{
m_SoundModule.SendSound(m_host.UUID,
ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound), volume, false, 0,
0, false, false);
m_SoundModule.SendSound(
m_host.UUID,
ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound),
volume, false, m_host.SoundQueueing ? (byte)SoundFlags.Queue : (byte)SoundFlags.None,
0, false, false);
}
}
@@ -11822,7 +11824,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void llSetSoundQueueing(int queue)
{
m_host.AddScriptLPS(1);
NotImplemented("llSetSoundQueueing");
if (m_SoundModule != null)
m_SoundModule.SetSoundQueueing(m_host.UUID, queue == ScriptBaseClass.TRUE.value);
}
public void llCollisionSprite(string impact_sprite)