Mercurial > hg > easaier-soundaccess
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() {