aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs100
1 files changed, 62 insertions, 38 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 014de69..eae4daf 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3170,70 +3170,87 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3170 { 3170 {
3171 m_host.AddScriptLPS(1); 3171 m_host.AddScriptLPS(1);
3172 3172
3173 // send the sound, once, to all clients in range 3173 if (m_SoundModule == null)
3174 if (m_SoundModule != null) 3174 return;
3175 { 3175
3176 m_SoundModule.SendSound( 3176 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3177 m_host.UUID, 3177 if(soundID == UUID.Zero)
3178 ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound), 3178 return;
3179 volume, false, 0, 3179
3180 0, false, false); 3180 // send the sound, once, to all clients in range
3181 } 3181 m_SoundModule.SendSound(m_host.UUID, soundID, volume, false, 0, 0, false, false);
3182 } 3182 }
3183 3183
3184 public void llLoopSound(string sound, double volume) 3184 public void llLoopSound(string sound, double volume)
3185 { 3185 {
3186 m_host.AddScriptLPS(1); 3186 m_host.AddScriptLPS(1);
3187 if (m_SoundModule != null) 3187
3188 { 3188 if (m_SoundModule == null)
3189 m_SoundModule.LoopSound(m_host.UUID, ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound), 3189 return;
3190 volume, 20, false,false); 3190
3191 } 3191 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3192 if(soundID == UUID.Zero)
3193 return;
3194
3195 m_SoundModule.LoopSound(m_host.UUID, soundID, volume, 20, false,false);
3192 } 3196 }
3193 3197
3194 public void llLoopSoundMaster(string sound, double volume) 3198 public void llLoopSoundMaster(string sound, double volume)
3195 { 3199 {
3196 m_host.AddScriptLPS(1); 3200 m_host.AddScriptLPS(1);
3197 if (m_SoundModule != null) 3201
3198 { 3202 if (m_SoundModule == null)
3199 m_SoundModule.LoopSound(m_host.UUID, ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound), 3203 return;
3200 volume, 20, true, false); 3204
3201 } 3205 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3206 if(soundID == UUID.Zero)
3207 return;
3208
3209 m_SoundModule.LoopSound(m_host.UUID, soundID, volume, 20, true, false);
3202 } 3210 }
3203 3211
3204 public void llLoopSoundSlave(string sound, double volume) 3212 public void llLoopSoundSlave(string sound, double volume)
3205 { 3213 {
3206 m_host.AddScriptLPS(1); 3214 m_host.AddScriptLPS(1);
3207 if (m_SoundModule != null) 3215
3208 { 3216 if (m_SoundModule == null)
3209 m_SoundModule.LoopSound(m_host.UUID, ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound), 3217 return;
3210 volume, 20, false, true); 3218
3211 } 3219 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3220 if(soundID == UUID.Zero)
3221 return;
3222
3223 m_SoundModule.LoopSound(m_host.UUID, soundID, volume, 20, false, true);
3212 } 3224 }
3213 3225
3214 public void llPlaySoundSlave(string sound, double volume) 3226 public void llPlaySoundSlave(string sound, double volume)
3215 { 3227 {
3216 m_host.AddScriptLPS(1); 3228 m_host.AddScriptLPS(1);
3217 3229
3230 if (m_SoundModule == null)
3231 return;
3232
3233 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3234 if(soundID == UUID.Zero)
3235 return;
3236
3218 // send the sound, once, to all clients in range 3237 // send the sound, once, to all clients in range
3219 if (m_SoundModule != null) 3238 m_SoundModule.SendSound(m_host.UUID, soundID, volume, false, 0, 0, true, false);
3220 {
3221 m_SoundModule.SendSound(m_host.UUID,
3222 ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound), volume, false, 0,
3223 0, true, false);
3224 }
3225 } 3239 }
3226 3240
3227 public void llTriggerSound(string sound, double volume) 3241 public void llTriggerSound(string sound, double volume)
3228 { 3242 {
3229 m_host.AddScriptLPS(1); 3243 m_host.AddScriptLPS(1);
3244
3245 if (m_SoundModule == null)
3246 return;
3247
3248 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3249 if(soundID == UUID.Zero)
3250 return;
3251
3230 // send the sound, once, to all clients in rangeTrigger or play an attached sound in this part's inventory. 3252 // send the sound, once, to all clients in rangeTrigger or play an attached sound in this part's inventory.
3231 if (m_SoundModule != null) 3253 m_SoundModule.SendSound(m_host.UUID, soundID, volume, true, 0, 0, false, false);
3232 {
3233 m_SoundModule.SendSound(m_host.UUID,
3234 ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound), volume, true, 0, 0,
3235 false, false);
3236 }
3237 } 3254 }
3238 3255
3239 public void llStopSound() 3256 public void llStopSound()
@@ -3247,8 +3264,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3247 public void llPreloadSound(string sound) 3264 public void llPreloadSound(string sound)
3248 { 3265 {
3249 m_host.AddScriptLPS(1); 3266 m_host.AddScriptLPS(1);
3250 if (m_SoundModule != null) 3267
3251 m_SoundModule.PreloadSound(m_host.UUID, ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound), 0); 3268 if (m_SoundModule == null)
3269 return;
3270
3271 UUID soundID = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound);
3272 if(soundID == UUID.Zero)
3273 return;
3274
3275 m_SoundModule.PreloadSound(m_host.UUID, soundID, 0);
3252 ScriptSleep(m_sleepMsOnPreloadSound); 3276 ScriptSleep(m_sleepMsOnPreloadSound);
3253 } 3277 }
3254 3278