public void ptt_SignOutComplete() { BeginInvoke((MethodInvoker) delegate { this.Text = "Zello client #" + ZelloClientId.ToString(); tmUpdateOnlineContacts.Stop(); if (null != contactsMesh) { System.Runtime.InteropServices.Marshal.FinalReleaseComObject(contactsMesh); } contactsMesh = null; // Destroy hidden main window if sign out was initiated earlier // when user tried to exit while Loudtalks Mesh control was signed into network. if (bExitOnSignout) { if (ptt != null) { ptt = null; } Close(); } else { UpdateMenuState(); UpdateControlsState(); } }); // Sign out process has finished }
private void MainForm_Load(object sender, EventArgs e) { cbSendAudioFile.ItemCheck += new ItemCheckEventHandler(cbSendAudioFile_ItemCheck); cbForwardAudio.ItemCheck += new ItemCheckEventHandler(cbForwardAudio_ItemCheck); tbSendWavPath.Enter += new EventHandler(tbSendWavPath_Enter); tbSendWavPath.Leave += new EventHandler(tbSendWavPath_Leave); tbSendWavPath.Text = "Select *.wav file"; tbSendWavPath.ForeColor = Color.Gray; tbSaveMessagesPath.Enter += new EventHandler(tbSaveMessagesPath_Enter); tbSaveMessagesPath.Leave += new EventHandler(tbSaveMessagesPath_Leave); tbSaveMessagesPath.Text = "Select folder to save wav files"; tbSaveMessagesPath.ForeColor = Color.Gray; try { ptt = new ZelloPTTLib.ZelloClient(); } catch (System.Runtime.InteropServices.COMException) { ptt = null; } catch (Exception) { ptt = null; } bExitOnSignout = false; if (ptt != null) { // Wire Loudtalks Mesh control events ptt.SignInStarted += new ZelloPTTLib.IZelloClientEvents_SignInStartedEventHandler(ptt_SignInStarted); ptt.SignInSucceeded += new ZelloPTTLib.IZelloClientEvents_SignInSucceededEventHandler(ptt_SignInSucceeded); ptt.SignInFailed += new ZelloPTTLib.IZelloClientEvents_SignInFailedEventHandler(ptt_SignInFailed); ptt.SignInRequested += new ZelloPTTLib.IZelloClientEvents_SignInRequestedEventHandler(ptt_SignInRequested); ptt.SignOutStarted += new ZelloPTTLib.IZelloClientEvents_SignOutStartedEventHandler(ptt_SignOutStarted); ptt.SignOutComplete += new ZelloPTTLib.IZelloClientEvents_SignOutCompleteEventHandler(ptt_SignOutComplete); ptt.GetCanSignIn += new ZelloPTTLib.IZelloClientEvents_GetCanSignInEventHandler(ptt_GetCanSignIn); ptt.MessageInBegin += new ZelloPTTLib.IZelloClientEvents_MessageInBeginEventHandler(ptt_MessageInBegin); ptt.MessageInEnd += new ZelloPTTLib.IZelloClientEvents_MessageInEndEventHandler(ptt_MessageInEnd); ptt.MessageOutBegin += new ZelloPTTLib.IZelloClientEvents_MessageOutBeginEventHandler(ptt_MessageOutBegin); ptt.MessageOutEnd += new ZelloPTTLib.IZelloClientEvents_MessageOutEndEventHandler(ptt_MessageOutEnd); ptt.MessageOutError += new ZelloPTTLib.IZelloClientEvents_MessageOutErrorEventHandler(ptt_MessageOutError); ptt.AudioMessageInStart += new ZelloPTTLib.IZelloClientEvents_AudioMessageInStartEventHandler(ptt_AudioMessageInStart); ptt.AudioMessageInStop += new ZelloPTTLib.IZelloClientEvents_AudioMessageInStopEventHandler(ptt_AudioMessageInStop); ptt.PlayerAudioMessageStart += new ZelloPTTLib.IZelloClientEvents_PlayerAudioMessageStartEventHandler(ptt_PlayerAudioMessageStart); ptt.PlayerAudioMessageStop += new ZelloPTTLib.IZelloClientEvents_PlayerAudioMessageStopEventHandler(ptt_PlayerAudioMessageStop); ptt.PlayerAudioMessageProgress += new ZelloPTTLib.IZelloClientEvents_PlayerAudioMessageProgressEventHandler(ptt_PlayerAudioMessageProgress); ptt.ContactListChanged += new ZelloPTTLib.IZelloClientEvents_ContactListChangedEventHandler(ptt_ContactListChanged); // Configure Loudtalks Mesh network parameters ptt.Network.NetworkName = sZelloNetworkName; ptt.Network.LoginServer = sZelloNetworkName + ".loudtalks.net"; ptt.Network.WebServer = "http://" + sZelloNetworkName + ".zellowork.com"; ptt.Network.EnableTls("tls.zellowork.com"); // Customize using embedded oem.config // Update UI UpdateMenuState(); UpdateControlsState(); tmUpdateOnlineContacts.Interval = 5000; tmUpdateOnlineContacts.Tick += new EventHandler(tmUpdateOnlineContacts_Tick); } else { // Loudtalks Mesh control is unavailable // Hide all controls foreach (ToolStripMenuItem Item in menu.Items) { foreach (ToolStripItem SubItem in Item.DropDownItems) { SubItem.Enabled = false; } } foreach (Control Ctrl in Controls) { Ctrl.Visible = false; } menu.Show(); // Disable menu commands exitToolStripMenuItem.Enabled = true; // Show error description labelError.Parent = this; labelError.Dock = DockStyle.Fill; //labelError.Top = menu.Location.Y + menu.Size.Height + 10; //labelError.AutoSize = true; labelError.Visible = true; } }