///public List<ZelloPTTLib.IContact> lstForwardAudio = new List<ZelloPTTLib.IContact>();

        String GetSaveFileName(ZelloPTTLib.IMessage pMessage)
        {
            StringBuilder sb = new StringBuilder(savePath);

            sb.Append(@"\msg");
            sb.Append((cntMessages).ToString("D4"));
            ZelloPTTLib.IContact cnt = null;
            if (pMessage.Incoming)
            {
                ZelloPTTLib.IAudioInMessage pAIM = pMessage as ZelloPTTLib.IAudioInMessage;
                if (pAIM != null)
                {
                    sb.Append("(");
                    cnt = pAIM.Sender;
                    if (cnt != null)
                    {
                        sb.Append(cnt.Name);
                    }
                    if (pAIM.Author != null)
                    {
                        sb.Append("__");
                        sb.Append(pAIM.Author.Name);
                    }
                    sb.Append(")");
                }
            }
            sb.Append(".wav");
            return(sb.ToString());
        }
示例#2
0
 void startAudioForwarding(WavBuffer wb)
 {
     BeginInvoke((MethodInvoker) delegate
     {
         if (m_AudRecorder != null && wb != null && contactsMesh != null)
         {
             ZelloPTTLib.IMessage msg = null;
             List <string> lst        = new List <string>();
             foreach (string id in lstForwardContactIds)
             {
                 lst.Add(id);
             }
             if (lst.Count > 0)
             {
                 ZelloPTTLib.IAudioStream strm = m_AudRecorder.MessageOutBeginEx(lst.ToArray(), string.Empty, out msg);
                 if (strm != null && msg != null)
                 {
                     pbForwardAudio.Visible    = true;
                     AudioMessageRecording rec = new AudioMessageRecording(wb as MultiClientSample.IReadWav);
                     rec.AllDataWritten       += new EventHandler(ForwardAudio_AllDataWritten);
                     lstOutMessages.Add(rec);
                     rec.SetStream(strm);
                 }
             }
         }
     });
 }
示例#3
0
 private void btnSend_Click(object sender, EventArgs e)
 {
     if (m_AudRecorder != null && false == String.IsNullOrEmpty(sWavToSend))
     {
         CReadWavFile          wf   = new CReadWavFile(sWavToSend);
         ZelloPTTLib.IContacts cnts = ptt.Contacts;
         ZelloPTTLib.IMessage  msg  = null;
         List <string>         lst  = new List <string>();
         try
         {
             foreach (object chk in cbSendAudioFile.CheckedItems)
             {
                 ContactInfo ci = chk as ContactInfo;
                 if (ci != null)
                 {
                     lst.Add(ci.id);
                 }
             }
         }
         catch (System.Exception)
         {}
         if (lst.Count > 0)
         {
             ZelloPTTLib.IAudioStream strm = m_AudRecorder.MessageOutBeginEx(lst.ToArray(), string.Empty, out msg);
             if (strm != null && msg != null)
             {
                 pbSendProgress.Visible = true;
                 AudioMessageRecording rec = new AudioMessageRecording(wf);
                 rec.AllDataWritten += new EventHandler(SendFile_AllDataWritten);
                 lstOutMessages.Add(rec);
                 rec.SetStream(strm);
             }
         }
     }
 }
示例#4
0
 void ptt_MessageOutError(ZelloPTTLib.IMessage pMessage, ZelloPTTLib.IContact pContact)
 {
     if (pMessage != null && pContact != null)
     {
         Debug.WriteLine("Outgoing message " + pMessage.Id + " to " + pContact.Name + " error");
     }
 }
示例#5
0
 void ptt_MessageOutEnd(ZelloPTTLib.IMessage pMessage, ZelloPTTLib.IContact pContact)
 {
     if (pMessage != null && pContact != null)
     {
         ZelloPTTLib.IAudioOutMessage pAudioMessage = (ZelloPTTLib.IAudioOutMessage)pMessage;
         if (pAudioMessage != null)
         {
             Debug.WriteLine("Outgoing message " + pMessage.Id + " to " + pContact.Name + " ends, duration " + pAudioMessage.Duration);
         }
     }
 }
示例#6
0
 void ptt_MessageInEnd(ZelloPTTLib.IMessage pMsg)
 {
     if (pMsg != null)
     {
         ZelloPTTLib.IAudioInMessage pMessage = (ZelloPTTLib.IAudioInMessage)pMsg;
         if (pMessage != null)
         {
             ZelloPTTLib.IContact pContact = pMessage.Sender;
             if (pContact != null)
             {
                 Debug.WriteLine("Incoming message " + pMsg.Id + " from " + pContact.Name + " ends, duration " + pMessage.Duration);
             }
         }
     }
 }
示例#7
0
 void ptt_MessageInBegin(ZelloPTTLib.IMessage pMsg)
 {
     if (pMsg != null)
     {
         ZelloPTTLib.IAudioInMessage pMessage = (ZelloPTTLib.IAudioInMessage)pMsg;
         if (pMessage != null)
         {
             ZelloPTTLib.IContact pContact = pMessage.Sender;
             if (pContact != null)
             {
                 Debug.WriteLine("Incoming message " + pMsg.Id + " from " + pContact.Name + " begins");
             }
         }
     }
 }
        ZelloPTTLib.IAudioStream ZelloPTTLib.IAudioMessagePlayback.MessageInBegin(ZelloPTTLib.IMessage pMessage)
        {
            AudioStreamImpl rv = new AudioStreamImpl(cntMessages);

            if (false == String.IsNullOrEmpty(savePath))
            {
                WriteWav ww = new WriteWav(GetSaveFileName(pMessage));
                if (ww.Valid)
                {
                    rv.AddSink(ww);
                }
            }
            if (bForwardAudio)
            {
                WavBuffer wb = new WavBuffer();
                wb.AudioRcvStarted += dlgt;
                rv.AddSink(wb);
            }
            cntMessages++;
            lstActiveStreams.Add(rv);
            rv.OnEndOfStream += new AudioStreamImpl.dlgtFinished(OnEndOfStream);
            return(rv as ZelloPTTLib.IAudioStream);
        }