diff options
Diffstat (limited to 'base/event_recorder.cc')
-rw-r--r-- | base/event_recorder.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/base/event_recorder.cc b/base/event_recorder.cc index ddc7617..23c092f 100644 --- a/base/event_recorder.cc +++ b/base/event_recorder.cc @@ -53,6 +53,9 @@ bool EventRecorder::StartRecording(std::wstring& filename) { return false; } + // Set the faster clock, if possible. + ::timeBeginPeriod(1); + // Set the recording hook. JOURNALRECORD can only be used as a global hook. journal_hook_ = ::SetWindowsHookEx(WH_JOURNALRECORD, StaticRecordWndProc, GetModuleHandle(NULL), 0); @@ -76,6 +79,8 @@ void EventRecorder::StopRecording() { return; } + ::timeEndPeriod(1); + DCHECK(file_ != NULL); fclose(file_); file_ = NULL; @@ -104,6 +109,9 @@ bool EventRecorder::StartPlayback(std::wstring& filename) { return false; } + // Set the faster clock, if possible. + ::timeBeginPeriod(1); + // Playback time is tricky. When playing back, we read a series of events, // each with timeouts. Simply subtracting the delta between two timers will // lead to fast playback (about 2x speed). The API has two events, one @@ -142,6 +150,8 @@ void EventRecorder::StopPlayback() { fclose(file_); file_ = NULL; + ::timeEndPeriod(1); + journal_hook_ = NULL; is_playing_ = false; } |