private static void CreateThread(IRCMessage pMessageInfo) { Sync synth = null; try { var text = pMessageInfo.message; var username = pMessageInfo.userName; if (text.Length > 230) { var split = text.Split(' ').ToList().Distinct().ToArray(); text = String.Join(" ", split); } bool speakUserName = false; while (true) { if (_readyStateSyncQueue.Count > 0) { lock (_readyStateSyncQueue) { if (_readyStateSyncQueue.Count > 0) { if (_lastUserName != username) { _lastUserName = username; speakUserName = true; } if ((DateTime.Now - _lastUserNameDateTime).TotalMinutes > 2) { speakUserName = true; _lastUserNameDateTime = DateTime.Now; } synth = _readyStateSyncQueue.Dequeue(); break; } } } ResetEvent.WaitOne(1000); ResetEvent.Reset(); } //Clean out addresses. var words = text.Split(' ').ToArray(); for (int i = 0; i < words.Length; i++) { if (words[i].ToLower().Contains("http")) { words[i] = string.Empty; } } text = string.Join(" ", words); //CLEAN TEXT synth.SetRate(username, text); if (speakUserName) { synth.Synth.Speak(username); } synth.RandomVoice(username); // Speak a string. synth.Speak(text); } catch (Exception ex) { Logger.Log(ex.ToString()); } finally { if (synth != null) { synth.Enqueue(); } thread++; } }
public override void Send(INetPacket packet) { ResetEvent.Reset(); base.Send(packet); }
public void Reset() { ResetEvent.Reset(); }