From beaf3f9a859f2c8e0ac8abe7dc3fbf2ff5aa639b Mon Sep 17 00:00:00 2001 From: Date: Wed, 15 Oct 2008 23:59:27 +0000 Subject: [PATCH] Added Pause and Resume to NetworkManager to request that the sim stops or resumes sending update (and possibly other) packets git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2299 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/NetworkManager.cs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/OpenMetaverse/NetworkManager.cs b/OpenMetaverse/NetworkManager.cs index bd4fe0c0..3fb89a87 100644 --- a/OpenMetaverse/NetworkManager.cs +++ b/OpenMetaverse/NetworkManager.cs @@ -283,6 +283,7 @@ namespace OpenMetaverse private uint _CircuitCode; private Simulator _CurrentSim = null; private bool connected = false; + internal int pauseSerial; /// /// Default constructor @@ -538,6 +539,32 @@ namespace OpenMetaverse OnLogoutReply -= callback; } + /// + /// Instructs the simulator to stop sending update (and possibly other) packets + /// + public void Pause() + { + AgentPausePacket pause = new AgentPausePacket(); + pause.AgentData.AgentID = Client.Self.AgentID; + pause.AgentData.SessionID = Client.Self.SessionID; + pause.AgentData.SerialNum = (uint)Interlocked.Exchange(ref pauseSerial, pauseSerial + 1); + + Client.Network.SendPacket(pause); + } + + /// + /// Instructs the simulator to resume sending update packets (unpause) + /// + public void Resume() + { + AgentResumePacket resume = new AgentResumePacket(); + resume.AgentData.AgentID = Client.Self.AgentID; + resume.AgentData.SessionID = Client.Self.SessionID; + resume.AgentData.SerialNum = (uint)Interlocked.Exchange(ref pauseSerial, pauseSerial + 1); + + Client.Network.SendPacket(resume); + } + /// /// Initiate the logout process. Check if logout succeeded with the /// OnLogoutReply event, and if this does not fire the