From 7c71dcdea3d608957f649ea8c142929dfe8f2e33 Mon Sep 17 00:00:00 2001 From: Mojito Sorbet Date: Sun, 1 Nov 2009 13:37:58 +0000 Subject: [PATCH] Clean up state when disabling voice. git-svn-id: https://radegast.googlecode.com/svn/trunk@405 f7a694da-4d33-11de-9ad6-1127a62b9fcd --- Radegast/Core/VoiceGateway.cs | 10 +++++++ Radegast/GUI/Consoles/VoiceConsole.cs | 49 ++++++++++------------------------- 2 files changed, 23 insertions(+), 36 deletions(-) diff --git a/Radegast/Core/VoiceGateway.cs b/Radegast/Core/VoiceGateway.cs index bc11fd7..eec40c5 100644 --- a/Radegast/Core/VoiceGateway.cs +++ b/Radegast/Core/VoiceGateway.cs @@ -245,11 +245,21 @@ namespace Radegast.Core s.Close(); } + // Clear out lots of state so in case of restart we begin at the beginning. + currentParcelCap = null; + sessions.Clear(); + accountHandle = null; + voiceUser = null; + voicePassword = null; + if (connector != null) { connector.SessionTerminate( sessionHandle ); + sessionHandle = null; connector.AccountLogout( accountHandle ); + accountHandle = null; connector.ConnectorInitiateShutdown(connectionHandle); + connectionHandle = null; connector.StopDaemon(); } } diff --git a/Radegast/GUI/Consoles/VoiceConsole.cs b/Radegast/GUI/Consoles/VoiceConsole.cs index 0f7575c..cf991ac 100644 --- a/Radegast/GUI/Consoles/VoiceConsole.cs +++ b/Radegast/GUI/Consoles/VoiceConsole.cs @@ -91,12 +91,14 @@ namespace Radegast private void Stop() { participants.Items.Clear(); + session = null; SetProgress(VoiceGateway.ConnectionState.None); gateway.Stop(); } private void RegisterClientEvents() { + // Voice hooks gateway.OnSessionCreate += new EventHandler(gateway_OnSessionCreate); gateway.OnSessionRemove += @@ -104,16 +106,15 @@ namespace Radegast gateway.OnVoiceConnectionChange += new VoiceGateway.VoiceConnectionChangeCallback(gateway_OnVoiceConnectionChange); - KeyDown += new KeyEventHandler(VoiceConsole_KeyDown); - KeyUp += new KeyEventHandler(VoiceConsole_KeyUp); + // GUI hooks MouseDown += new MouseEventHandler(OnMouseDown); MouseUp += new MouseEventHandler(OnMouseUp); } - void MainForm_MouseDown(object sender, MouseEventArgs e) + private void UnregisterClientEvents() { gateway.OnSessionCreate -= - new EventHandler(gateway_OnSessionCreate); + new EventHandler(gateway_OnSessionCreate); gateway.OnSessionRemove -= new EventHandler(gateway_OnSessionRemove); gateway.OnVoiceConnectionChange -= @@ -121,11 +122,6 @@ namespace Radegast MouseDown -= new MouseEventHandler(OnMouseDown); MouseUp -= new MouseEventHandler(OnMouseUp); - - } - - private void UnregisterClientEvents() - { } #region Connection Status @@ -270,7 +266,7 @@ namespace Radegast } #endregion - + #region Console control void VoiceConsole_Disposed(object sender, EventArgs e) { @@ -295,43 +291,24 @@ namespace Radegast })); } + #endregion #region Talk control - void OnMouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + void OnMouseUp(object sender, MouseEventArgs e) { - if (e.Button == System.Windows.Forms.MouseButtons.Middle) + if (e.Button == MouseButtons.Middle) { micMute.Checked = false; -// gateway.MicMute = true; + gateway.MicMute = true; } } - void VoiceConsole_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.RControlKey) - micMute.Checked = false; - } - - void VoiceConsole_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.RControlKey) - micMute.Checked = true; - } - private void splitContainer1_Panel1_MouseDown(object sender, MouseEventArgs e) - { - OnMouseDown(sender, e); - } - - private void splitContainer1_Panel1_MouseUp(object sender, MouseEventArgs e) - { - OnMouseUp(sender, e); - } - void OnMouseDown(object sender, System.Windows.Forms.MouseEventArgs e) + void OnMouseDown(object sender, MouseEventArgs e) { - if (e.Button == System.Windows.Forms.MouseButtons.Middle) + if (e.Button == MouseButtons.Middle) { micMute.Checked = false; -// gateway.MicMute = false; + gateway.MicMute = false; } } #endregion -- 2.11.0