diff sv/main/MainWindow.cpp @ 129:587ad94d6ac2

(none)
author ivand_qmul
date Thu, 08 Nov 2007 13:29:48 +0000
parents 541b3e357979
children b3df8b8185db
line wrap: on
line diff
--- a/sv/main/MainWindow.cpp	Thu Nov 08 10:50:48 2007 +0000
+++ b/sv/main/MainWindow.cpp	Thu Nov 08 13:29:48 2007 +0000
@@ -115,6 +115,9 @@
 using std::map;
 using std::set;
 
+extern float hopfactor;
+extern long long countFreq;
+
 MainWindow * MainWindow::m_instance = 0;
 
 MainWindow * MainWindow::instance()
@@ -2298,8 +2301,8 @@
     }
 }
 
+// Ivan Damnjanovic 09-10/2007 added video file import
 void
-// Ivan Damnjanovic 09-10/2007 added video file import
 MainWindow::importVideo()
 {
     QString path = getOpenFileName(FileFinder::VideoFile);
@@ -3531,12 +3534,37 @@
         playbackFrameChanged(m_viewManager->getPlaybackFrame());
 	m_playSource->play(m_viewManager->getPlaybackFrame());
     }
+	m_playSource->hardwareBufferedTime=0;
+	m_playSource->lastAudioTime=0;
 }
 // Ivan Damnjanovic 16/10/2007 functions to access data needed for video player
 unsigned long 
 MainWindow::Get_CurAudioTime()
 {
-	return (m_viewManager->getPlaybackFrame()/(getMainModel()->getSampleRate()/1000));
+	unsigned long pos;
+	unsigned long newAudioTime=m_viewManager->getPlaybackFrame()/(getMainModel()->getSampleRate()/1000);
+	if(!(m_playSource->lastAudioTime==newAudioTime))
+	{
+		m_playSource->lastAudioTime=newAudioTime;
+		long long cntClick;
+		QueryPerformanceCounter((LARGE_INTEGER *)(&cntClick));
+		m_playSource->hardwareBufferedTime=cntClick;
+		pos=0;
+	}
+	else
+	{
+		long long timeTemp;
+			QueryPerformanceCounter((LARGE_INTEGER *)(&timeTemp));
+			
+			pos=(timeTemp-m_playSource->hardwareBufferedTime)/(countFreq);
+			pos*=hopfactor;
+	}
+	return (newAudioTime+pos);
+}
+unsigned long long
+MainWindow::Get_HardwareBufferTime()
+{
+	return (m_playSource->hardwareBufferedTime);
 }
 bool MainWindow::isAudioPlaying()
 {