public bool IsStreamAvailable(out LSLStreamInfoWrapper info, string streamName = "", string streamType = "", string hostName = "") { var result = knownStreams.Where(i => (streamName == "" || i.Name.Equals(streamName)) && (streamType == "" || i.Type.Equals(streamType)) && (hostName == "" || i.Type.Equals(hostName)) ); if (result.Any()) { info = result.First(); return(true); } else { info = null; return(false); } }
private IEnumerator resolveContinuously() { while (resolve) { var results = resolver.results(); foreach (var item in knownStreams) { if (!results.Any(r => r.name().Equals(item.Name))) { if (onStreamLost.GetPersistentEventCount() > 0) { onStreamLost.Invoke(item); } } } // remove lost streams from cache knownStreams.RemoveAll(s => !results.Any(r => r.name().Equals(s.Name))); // add new found streams to the cache foreach (var item in results) { if (!knownStreams.Any(s => s.Name == item.name() && s.Type == item.type())) { Debug.Log(string.Format("Found new Stream {0}", item.name())); var newStreamInfo = new LSLStreamInfoWrapper(item); knownStreams.Add(newStreamInfo); if (onStreamFound.GetPersistentEventCount() > 0) { onStreamFound.Invoke(newStreamInfo); } } } yield return(new WaitForSecondsRealtime(0.1f)); } yield return(null); }
public bool IsStreamAvailable(out LSLStreamInfoWrapper info, string streamName = "SpeechRecognition", string streamType = "Numbers", string hostName = "") { Debug.Log("test"); var result = knownStreams.Where(i => (streamName == "" || i.Name.Equals(streamName)) && (streamType == "" || i.Type.Equals(streamType)) && (hostName == "" || i.Type.Equals(hostName)) ); if (result.Any()) { info = result.First(); return(true); } else { info = null; return(false); } }