diff --git a/aegisub/audio_display.cpp b/aegisub/audio_display.cpp index c719b6c41..d25fe25c0 100644 --- a/aegisub/audio_display.cpp +++ b/aegisub/audio_display.cpp @@ -266,6 +266,15 @@ void AudioDisplay::UpdateImage(bool weak) { } } + // Draw current frame + if (Options.AsBool(_T("Audio Draw Video Position"))) { + if (VideoContext::Get()->IsLoaded()) { + dc.SetPen(wxPen(Options.AsColour(_T("Audio Play Cursor")),2,wxLONG_DASH)); + int x = GetXAtMS(VFR_Output.GetTimeAtFrame(VideoContext::Get()->GetFrameN())); + dc.DrawLine(x,0,x,h); + } + } + // Draw keyframes if (drawKeyframes && VideoContext::Get()->KeyFramesLoaded()) { DrawKeyframes(dc); diff --git a/aegisub/dialog_options.cpp b/aegisub/dialog_options.cpp index c64b66a1e..94b7981b1 100644 --- a/aegisub/dialog_options.cpp +++ b/aegisub/dialog_options.cpp @@ -473,11 +473,11 @@ DialogOptions::DialogOptions(wxWindow *parent) wxFlexGridSizer *displaySizer4 = new wxFlexGridSizer(14,2,2,2); // First sizer - wxString labels1[5] = { _("Draw secondary lines"), _("Draw selection background"), _("Draw timeline"), - _("Draw cursor time"), _("Draw keyframes") }; - wxString options1[5] = { _T("Draw Secondary Lines"), _T("Draw Selection Background") , _T("Draw Timeline"), - _T("Draw Cursor Time"), _T("Draw keyframes")}; - for (int i=0;i<5;i++) { + wxString labels1[6] = { _("Draw secondary lines"), _("Draw selection background"), _("Draw timeline"), + _("Draw cursor time"), _("Draw keyframes"), _("Draw video position") }; + wxString options1[6] = { _T("Draw Secondary Lines"), _T("Draw Selection Background") , _T("Draw Timeline"), + _T("Draw Cursor Time"), _T("Draw keyframes"), _T("Draw video position")}; + for (int i=0;i<6;i++) { wxCheckBox *control = new wxCheckBox(displayPage,-1,labels1[i]); Bind(control,_T("Audio ") + options1[i]); displaySizer3->Add(control,1,wxEXPAND | wxALL,5); diff --git a/aegisub/options.cpp b/aegisub/options.cpp index 0a00d6d62..1ea759c42 100644 --- a/aegisub/options.cpp +++ b/aegisub/options.cpp @@ -260,6 +260,7 @@ void OptionsManager::LoadDefaults(bool onlyDefaults) { SetBool(_T("Audio Draw Keyframes"), true); SetBool(_T("Audio Draw Timeline"),true); SetBool(_T("Audio Draw Cursor Time"),true); + SetBool(_T("Audio Draw Video Position"),true); SetColour(_T("Audio Selection Background Modified"),wxColour(92,0,0)); SetColour(_T("Audio Selection Background"),wxColour(64,64,64)); SetColour(_T("Audio Seconds Boundaries"),wxColour(0,100,255)); diff --git a/aegisub/video_context.cpp b/aegisub/video_context.cpp index eb292e2f9..bf9bb51e5 100644 --- a/aegisub/video_context.cpp +++ b/aegisub/video_context.cpp @@ -415,6 +415,13 @@ void VideoContext::UpdateDisplays(bool full) { //display->Update(); display->Render(); } + + // Update audio display + if (audio && audio->loaded) { + if (Options.AsBool(_T("Audio Draw Video Position"))) { + audio->UpdateImage(false); + } + } }