private void btnSend_Click(object sender, EventArgs e) { if (m_AudRecorder != null && false == String.IsNullOrEmpty(sWavToSend)) { CReadWavFile wf = new CReadWavFile(sWavToSend); if (wf.ChannelCount != 1 || wf.BitsPerSecond != 16) { MessageBox.Show("Incompatible WAV file format", "Unable to send", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } PttLib.IContacts cnts = axMesh.Contacts; PttLib.IMessage msg = null; List <string> lst = new List <string>(); foreach (object chk in cbSendAudioFile.CheckedItems) { ContactInfo ci = chk as ContactInfo; if (ci != null) { lst.Add(ci.id); } } if (lst.Count > 0) { PttLib.IAudioStream strm = m_AudRecorder.MessageOutBeginEx(lst.ToArray(), string.Empty, out msg); AudioMessageRecording rec = new AudioMessageRecording(wf); rec.AllDataWritten += new EventHandler(Recording_AllDataWritten); lstOutMessages.Add(rec); rec.SetStream(strm); } } }
public void axMesh_SignOutComplete(Object sender, EventArgs e) { BeginInvoke((MethodInvoker) delegate { tmUpdateOnlineContacts.Stop(); if (null != contactsMesh) { System.Runtime.InteropServices.Marshal.FinalReleaseComObject(contactsMesh); } contactsMesh = null; }); // Sign out process has finished // 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 (axMesh != null) { axMesh = null; } Close(); } else { UpdateMenuState(); UpdateControlsState(); } }
public void axMesh_SignOutStarted(Object sender, EventArgs e) { // Sign out process has started UpdateMenuState(); UpdateControlsState(); BeginInvoke((MethodInvoker) delegate { tmUpdateOnlineContacts.Stop(); if (null != contactsMesh) { System.Runtime.InteropServices.Marshal.FinalReleaseComObject(contactsMesh); } contactsMesh = null; }); }
void tmUpdateOnlineContacts_Tick(object sender, EventArgs e) { if (bUpdateOnlineContats) { List <ContactInfo> lst = new List <ContactInfo>(10); List <ContactInfo> lstLive = new List <ContactInfo>(10); bUpdateOnlineContats = false; PttLib.IContacts cnts = axMesh.Contacts; int idxMax = cnts.Count; for (int idx = 0; idx < idxMax; ++idx) { PttLib.IContact cnt = cnts.get_Item(idx); PttLib.ONLINE_STATUS st = cnt.Status; if (st == PttLib.ONLINE_STATUS.OSAVAILABLE || st == PttLib.ONLINE_STATUS.OSSTANDBY || st == PttLib.ONLINE_STATUS.OSHEADPHONES || st == PttLib.ONLINE_STATUS.OSAWAY || st == PttLib.ONLINE_STATUS.OSBUSY) { ContactInfo cn = new ContactInfo(); cn.id = cnt.Id; if (cnt.Type == PttLib.CONTACT_TYPE.CTCHANNEL) { cn.name = cnt.Name + "(channel)"; } else if (cnt.Type == PttLib.CONTACT_TYPE.CTGROUP) { cn.name = cnt.Name + "(group)"; } else { cn.name = cnt.Name; } lst.Add(cn); if (st != PttLib.ONLINE_STATUS.OSSTANDBY) { lstLive.Add(cn); } } } reloadList(cbForwardAudio, lstLive); reloadList(cbSendAudioFile, lst); } }
public void axMesh_SignInSucceeded(Object sender, EventArgs e) { // Sign in process has finished successfully UpdateMenuState(); UpdateControlsState(); if (axMesh.Contacts.Count > 0) { axMesh.SelectContact(axMesh.Contacts.get_Item(0)); } BeginInvoke((MethodInvoker) delegate { tmUpdateOnlineContacts.Start(); if (null != contactsMesh) { System.Runtime.InteropServices.Marshal.FinalReleaseComObject(contactsMesh); } contactsMesh = axMesh.Contacts; cbChorus.Checked = (axMesh.GetOcx() as PttLib.IPtt4).Chorus; UpdateIntegrationControlsState(); }); }