openVisN.Framework.AutomaticPlayback.GetTimes C# (CSharp) Method

GetTimes() public method

public GetTimes ( System.DateTime &startTime, System.DateTime &stopTime ) : void
startTime System.DateTime
stopTime System.DateTime
return void
        public void GetTimes(out DateTime startTime, out DateTime stopTime)
        {
            stopTime = m_playbackDate.AddTicks((long)(m_timeDuration.Elapsed.Ticks * m_playbackSpeed));
            startTime = stopTime.Subtract(m_windowSize);
        }

Usage Example

        private void AsyncDoWork(object sender, EventArgs eventArgs)
        {
            if (BeforeExecuteQuery != null)
            {
                BeforeExecuteQuery(this, EventArgs.Empty);
            }
            DateTime            startTime;
            DateTime            stopTime;
            DateTime            currentTime;
            object              token;
            List <MetadataBase> activeSignals;

            lock (m_syncRoot)
            {
                token          = m_requestToken;
                m_requestToken = null;
                if (Mode == ExecutionMode.Manual)
                {
                    startTime     = m_lowerBounds;
                    stopTime      = m_upperBounds;
                    currentTime   = m_focusedDate;
                    activeSignals = m_activeSignals;
                }
                else
                {
                    m_playback.GetTimes(out startTime, out stopTime);
                    currentTime   = stopTime;
                    activeSignals = m_activeSignals;
                }
            }

            IDictionary <Guid, SignalDataBase> results = m_query.GetQueryResult(startTime, stopTime, 0, activeSignals);

            QueryResultsEventArgs queryResults = new QueryResultsEventArgs(results, token, startTime, stopTime);

            if (AfterQuery != null)
            {
                AfterQuery(this, EventArgs.Empty);
            }

            if (NewQueryResults != null)
            {
                NewQueryResults.ParallelRunAndWait(this, queryResults);
            }
            if (SynchronousNewQueryResults != null || ParallelWithControlLockNewQueryResults != null)
            {
                m_syncEvent.RaiseEvent(new QueryResultsEventArgs(results, token, startTime, stopTime));
            }

            lock (m_syncRoot)
            {
                if (Mode == ExecutionMode.Automatic)
                {
                    m_async.Start(m_refreshInterval.Milliseconds);
                }
            }

            if (AfterExecuteQuery != null)
            {
                AfterExecuteQuery(this, EventArgs.Empty);
            }
        }