private void trackBar1_Scroll_1(object sender, EventArgs e) { bool playMode = m_Play; if (trackBar1.Value - PreviousScrollValue > 0) { ScrollDirectionWasForward = true; } else { ScrollDirectionWasForward = false; } StopPlay(); lock (jpegArrayLock) { m_JpegPlayIndex = ((trackBar1.Value * jpegsToPlay.Length) / 100); if (m_JpegPlayIndex < 0) { m_JpegPlayIndex = 0; } if (m_JpegPlayIndex >= jpegsToPlay.Length) { m_JpegPlayIndex = jpegsToPlay.Length - 1; } m_PlayControl.Reset(); } if (playMode == false) { // play one frame PlayOneFrame(ScrollDirectionWasForward); } if (playMode == true) { StartPlay(); } PreviousScrollValue = trackBar1.Value; }
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); } }
private void trackBar1_Scroll(object sender, EventArgs e) { StopPlay(); lock (jpegArrayLock) { m_JpegPlayIndex = ((trackBar1.Value * jpegsToPlay.Length) / 100); if (m_JpegPlayIndex < 0) { m_JpegPlayIndex = 0; } if (m_JpegPlayIndex >= jpegsToPlay.Length) { m_JpegPlayIndex = jpegsToPlay.Length - 1; } m_PlayControl.Reset(); } StartPlay(); }
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); } }