From 58ce018625384cf21f336584c5bedbf712d7315e Mon Sep 17 00:00:00 2001 From: MW Date: Wed, 9 Jul 2008 12:02:01 +0000 Subject: for testing purposes only: added void osSetParcelMediaTime(double time) command to script engines. which sets the position of the media that is playing. Time is in seconds. Doesn't do any security checking (should be checking that the object/script is owned by the parcel owner). So could be abused, if it is then we should remove it, or add the security. Only tested in dotnet scripting engine, but should work in XEngine too. --- OpenSim/Region/Environment/Scenes/Scene.cs | 18 +++++++++++++++++- .../ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs | 7 +++++++ .../Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs | 6 ++++++ .../Common/OSSL_BuilIn_Commands_Interface.cs | 1 + .../ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 7 +++++++ .../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 1 + .../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 7 +++++++ 7 files changed, 46 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 375756d..6a63491 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -757,7 +757,10 @@ namespace OpenSim.Region.Environment.Scenes UpdateEvents(); if (m_frame % m_update_backup == 0) + { UpdateStorageBackup(); + + } if (m_frame % m_update_terrain == 0) UpdateTerrain(); @@ -3661,7 +3664,20 @@ namespace OpenSim.Region.Environment.Scenes #endregion - + + + public void ParcelMediaSetTime(float time) + { + //should be doing this by parcel, but as its only for testing + ForEachClient(delegate(IClientAPI client) + { + client.SendParcelMediaCommand((uint)(2), ParcelMediaCommandEnum.Pause, 0); + Thread.Sleep(10); + client.SendParcelMediaCommand((uint)(64), ParcelMediaCommandEnum.Time, time); + Thread.Sleep(200); + client.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); + }); + } } } diff --git a/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs b/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs index 2d9fd09..9dd7e01 100644 --- a/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs @@ -2034,6 +2034,13 @@ namespace OpenSim.Region.ScriptEngine.Common return m_LSL_Functions.llList2Float(src, index); } + + //for testing purposes only + public void osSetParcelMediaTime(double time) + { + m_LSL_Functions.osSetParcelMediaTime(time); + } + // LSL CONSTANTS public const int TRUE = 1; public const int FALSE = 0; diff --git a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs index fc62b02..ca12a42 100644 --- a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs @@ -569,5 +569,11 @@ namespace OpenSim.Region.ScriptEngine.Common return String.Empty; } } + + //for testing purposes only + public void osSetParcelMediaTime(double time) + { + World.ParcelMediaSetTime((float)time); + } } } diff --git a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs index 4f7b56e..bbc6d2d 100644 --- a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs +++ b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs @@ -65,6 +65,7 @@ namespace OpenSim.Region.ScriptEngine.Common void osOpenRemoteDataChannel(string channel); string osGetScriptEngineName(); + void osSetParcelMediaTime(double time); } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 3e1c930..b7ff9b6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -581,5 +581,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return String.Empty; } } + + + //for testing purposes only + public void osSetParcelMediaTime(double time) + { + World.ParcelMediaSetTime((float)time); + } } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index d55491c..87b3ef4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -66,5 +66,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void osSetRegionWaterHeight(double height); string osGetScriptEngineName(); + void osSetParcelMediaTime(double time); } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 90c4419..9d0c337 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -200,5 +200,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { return m_OSSL_Functions.osGetScriptEngineName(); } + + + //for testing purposes only + public void osSetParcelMediaTime(double time) + { + m_OSSL_Functions.osSetParcelMediaTime(time); + } } } -- cgit v1.1