コード例 #1
0
 IEnumerator ResolveExpectedStream()
 {
     // FIXME: find a better way to lock this function
     resolvingStream = true;
     results         = resolver.results();
     resolvingStream = false;
     yield return(null);
 }
コード例 #2
0
    private IEnumerator resolveContinuously()
    {
        while (resolve)
        {
            var results = resolver.results();

            foreach (var item in knownStreams)
            {
                if (!results.Any(r => r.name().Equals(item.name())))
                {
                    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()))
                {
                    knownStreams.Add(item);
                    OnStreamFound?.Invoke(item);
                }
            }

            yield return(new WaitForSecondsRealtime(0.1f));
        }
        yield return(null);
    }
コード例 #3
0
        IEnumerator ResolveExpectedStream()
        {
            results = resolver.results();

            Debug.Log(StreamName + " is waiting..");
            yield return(new WaitUntil(() => results.Length > 0));

            Debug.Log(string.Format("Resolving Stream: {0}", StreamName));

            inlet       = new liblsl.StreamInlet(results[0]);
            isConnected = true;

            expectedChannels = inlet.info().channel_count();

            yield return(null);
        }
コード例 #4
0
    IEnumerator ResolveExpectedStream()
    {
        var results = resolver.results();

        yield return(new WaitUntil(() => results.Length > 0));

        inlet = new liblsl.StreamInlet(results[0]);

        yield return(null);
    }
コード例 #5
0
        IEnumerator ResolveExpectedStream()
        {
            var results = resolver.results();

            yield return(new WaitUntil(() => results.Length > 0));

            inlet = new liblsl.StreamInlet(results[0]);

            expectedChannels = inlet.info().channel_count();

            yield return(null);
        }
コード例 #6
0
ファイル: AInlet.cs プロジェクト: sudip-haz/labstreaminglayer
        /// <summary>
        /// Query LSL Streams
        /// </summary>
        public liblsl.StreamInfo[] QueryAvailStreams()
        {
            var listStreams = resolver.results();

            if (listStreams != null)
            {
                return(listStreams);
            }
            else
            {
                return new liblsl.StreamInfo[] {}
            };
        }
コード例 #7
0
        IEnumerator ResolveExpectedStream()
        {
            results = resolver.results();

            while (inlet == null)
            {
                yield return(new WaitUntil(() => results.Length > 0));

                inlet = new liblsl.StreamInlet(GetStreamInfoFrom(results));

                expectedChannels = inlet.info().channel_count();
            }

            yield return(null);
        }
コード例 #8
0
ファイル: AInlet.cs プロジェクト: luiseduve/data-capture-vr
        IEnumerator ResolveExpectedStream()
        {
            var results = resolver.results();

            yield return(new WaitUntil(() => results.Length > 0));

            Debug.Log(string.Format("Resolving Stream: {0}", StreamName));

            inlet = new liblsl.StreamInlet(results[0]);

            expectedChannels = inlet.info().channel_count();

            AdditionalOnInletFound(inlet.info());

            yield return(null);
        }
コード例 #9
0
ファイル: LSLEditorWindow.cs プロジェクト: mvidaldp/LSL4Unity
        private void UpdateStreams()
        {
            listNamesOfStreams.Clear();

            streamInfos = resolver.results();

            if (streamInfos.Length == 0)
            {
                streamLookUpResult = noStreamsFound;
            }
            else
            {
                foreach (var item in streamInfos)
                {
                    listNamesOfStreams.Add(string.Format("{0} {1} {2} {3}", item.name(), item.type(), item.hostname(), item.nominal_srate()));
                }

                streamLookUpResult = listNamesOfStreams.Count + nStreamsFound;
            }
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        void OnGUI()
        {
            if (inlet == null)
            {
                var results = resolver.results();

                if (results.Length == 0)
                {
                    this.Close();
                    return;
                }

                info = results[0];

                inlet = new liblsl.StreamInlet(info);

                var channelCount = info.channel_count();
                graph  = new Graph(channelCount);
                sample = new float[channelCount];
            }


            EditorGUILayout.BeginHorizontal(GUILayout.MinWidth(500));

            RenderSelection(info.channel_count());

            EditorGUILayout.BeginVertical(GUILayout.MinWidth(500), GUILayout.MinHeight(300));
            var rect = new Rect(100, 0, 500, 300);

            RenderGraphsForChannels(rect);
            EditorGUILayout.EndVertical();

            EditorGUILayout.EndHorizontal();


            UpdateValues();


            Repaint();
        }