Beispiel #1
0
        DateTime getCurrentPlayTime(int millisecondCounter)
        {
            int seconds = 0;
            int minutes = 0;
            int hours   = 0;

            while (millisecondCounter > 999)
            {
                seconds            = millisecondCounter / 1000;
                millisecondCounter = (millisecondCounter % 1000);
                while (seconds > 59)
                {
                    minutes = seconds / 60;
                    seconds = seconds % 60;

                    while (minutes > 59)
                    {
                        hours   = minutes / 60;
                        minutes = minutes % 60;
                    }
                }
            }
            DateTime firstFrameTime = PATHS.GetTimeFromFile(jpegsToPlay[0]);

            TimeSpan interval = new TimeSpan(0, hours, minutes, seconds, millisecondCounter);

            return(firstFrameTime.Add(interval));
        }
Beispiel #2
0
        TimeSpan  GetNextFrameInterval()
        {
            int index = m_JpegPlayIndex;

            index++;

            if (index >= jpegsToPlay.Length)
            {
                return(new TimeSpan(0, 0, 0, 0, 30));                             // return an arbitrarily short time, since we are at the end
            }
            DateTime frameTimeAtLastFrame = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex]);
            DateTime frameTimeAtNextFrame = PATHS.GetTimeFromFile(jpegsToPlay[index]);

            TimeSpan interval = frameTimeAtNextFrame.Subtract(frameTimeAtLastFrame);

            return(interval);
        }
Beispiel #3
0
        void PlayLoop()
        {
            m_PlayControl = new PlayControl();
            m_PlayControl.Reset();

            while (!m_Stop)
            {
                while (m_Play)
                {
                    if (m_PlayControl.intervalCounter >= (int)m_PlayControl.interval.TotalMilliseconds)
                    {
                        lock (jpegArrayLock)
                        {
                            m_PlayControl.previousFrameTime = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex]);
                        }

                        this.BeginInvoke((MethodInvoker) delegate { this.PushNextJpeg(); });

                        if (m_JpegPlayIndex == jpegsToPlay.Length - 1)
                        {
                            m_Play = false;
                            this.BeginInvoke((MethodInvoker) delegate { this.StopPlay(); });
                            continue;
                        }
                        DateTime nexttimestamp = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex + 1]);
                        m_PlayControl.interval = nexttimestamp.Subtract(m_PlayControl.previousFrameTime);

                        m_JpegPlayIndex++;
                        m_PlayControl.intervalCounter = 0;
                    }
                    if (m_Stop)
                    {
                        break;
                    }
                    TimeSpan playtime = m_PlayControl.interval.Add(new TimeSpan(0, 0, 0, 0, m_PlayControl.intervalCounter));
                    this.BeginInvoke((MethodInvoker) delegate { this.PushPlayStats(m_PlayControl.previousFrameTime.Add(playtime).ToString(m_AppData.TimeFormatStringForFileNames), m_PlayControl.previousFrameTime.ToString(m_AppData.TimeFormatStringForFileNames)); });
                    m_PlayControl.intervalCounter++;
                    Thread.Sleep(1);
                }

                Thread.Sleep(1);
            }
        }
Beispiel #4
0
 DateTime getCurrentFrameTime()
 {
     return(PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex]));
 }
Beispiel #5
0
        void PlayOneFrame(bool playForward)
        {
            if (jpegsToPlay == null)
            {
                return;
            }

            if (playForward)
            {
                m_JpegPlayIndex++;
            }
            else
            {
                m_JpegPlayIndex--;
            }

            if (jpegsToPlay.Length == 0)
            {
                return;
            }
            if (m_JpegPlayIndex >= jpegsToPlay.Length)
            {
                m_JpegPlayIndex = 0;
            }
            if (m_JpegPlayIndex < 0)
            {
                m_JpegPlayIndex = jpegsToPlay.Length - 1;
            }

            lock (jpegArrayLock)
            {
                m_PlayControl.previousFrameTime = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex]);
            }

            this.BeginInvoke((MethodInvoker) delegate { this.PushNextJpeg(jpegsToPlay[m_JpegPlayIndex]); });

            int nextIndex;

            if (playForward)
            {
                nextIndex = m_JpegPlayIndex + 1;
            }
            else
            {
                nextIndex = m_JpegPlayIndex - 1;
            }

            if (nextIndex >= jpegsToPlay.Length)
            {
                nextIndex = 0;
            }

            if (nextIndex < 0)
            {
                nextIndex = jpegsToPlay.Length - 1;
            }

            int nextNextIndex = nextIndex + 1;

            if (nextNextIndex >= jpegsToPlay.Length)
            {
                nextNextIndex = nextIndex;
            }

            DateTime nexttimestamp = PATHS.GetTimeFromFile(jpegsToPlay[nextNextIndex]);

            m_PlayControl.interval = nexttimestamp.Subtract(m_PlayControl.previousFrameTime);

            m_PlayControl.intervalCounter = 0;

            TimeSpan playtime = m_PlayControl.interval.Add(new TimeSpan(0, 0, 0, 0, m_PlayControl.intervalCounter));

            this.BeginInvoke((MethodInvoker) delegate { this.PushPlayStats(m_PlayControl.previousFrameTime.Add(playtime).ToString(m_AppData.TimeFormatStringForFileNames), m_PlayControl.previousFrameTime.ToString(m_AppData.TimeFormatStringForFileNames), m_JpegPlayIndex); });
            m_PlayControl.intervalCounter++;
        }