mirror of https://github.com/odrling/Aegisub
Another load of debug prints in audio code, and a semi-working commit of karaoke changes when karaoke mode is just disabled. Still very broken.
Originally committed to SVN as r1269.
This commit is contained in:
parent
65c3b424f6
commit
de107f3108
|
@ -235,6 +235,7 @@ AudioBox::~AudioBox() {
|
|||
////////////
|
||||
// Set file
|
||||
void AudioBox::SetFile(wxString file,bool FromVideo) {
|
||||
wxLogDebug(_T("AudioBox::SetFile(file=%s, FromVideo=%d)"), file.c_str(), FromVideo?1:0);
|
||||
loaded = false;
|
||||
|
||||
if (FromVideo) {
|
||||
|
@ -249,7 +250,9 @@ void AudioBox::SetFile(wxString file,bool FromVideo) {
|
|||
audioName = file;
|
||||
}
|
||||
|
||||
wxLogDebug(_T("AudioBox::SetFile: setting up accelerators in frameMain"));
|
||||
frameMain->SetAccelerators();
|
||||
wxLogDebug(_T("AudioBox::SetFile: returning"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -499,18 +502,24 @@ void AudioBox::OnPlayToEnd(wxCommandEvent &event) {
|
|||
//////////////////
|
||||
// Commit changes
|
||||
void AudioBox::OnCommit(wxCommandEvent &event) {
|
||||
wxLogDebug(_T("AudioBox::OnCommit"));
|
||||
audioDisplay->SetFocus();
|
||||
wxLogDebug(_T("AudioBox::OnCommit: has set focus, now committing changes"));
|
||||
audioDisplay->CommitChanges(true);
|
||||
wxLogDebug(_T("AudioBox::OnCommit: returning"));
|
||||
}
|
||||
|
||||
|
||||
//////////////////
|
||||
// Toggle karaoke
|
||||
void AudioBox::OnKaraoke(wxCommandEvent &event) {
|
||||
wxLogDebug(_T("AudioBox::OnKaraoke"));
|
||||
audioDisplay->SetFocus();
|
||||
if (karaokeMode) {
|
||||
wxLogDebug(_T("AudioBox::OnKaraoke: karaoke enabled, disabling"));
|
||||
if (audioKaraoke->splitting) {
|
||||
audioKaraoke->EndSplit(true);
|
||||
wxLogDebug(_T("AudioBox::OnKaraoke: was splitting, committing"));
|
||||
audioKaraoke->Commit(); // FIXME: the grid and editbox don't seem to get updated by this
|
||||
}
|
||||
karaokeMode = false;
|
||||
audioKaraoke->enabled = false;
|
||||
|
@ -520,11 +529,14 @@ void AudioBox::OnKaraoke(wxCommandEvent &event) {
|
|||
}
|
||||
|
||||
else {
|
||||
wxLogDebug(_T("AudioBox::OnKaraoke: karaoke disabled, enabling"));
|
||||
karaokeMode = true;
|
||||
audioKaraoke->enabled = true;
|
||||
SetKaraokeButtons(true,true);
|
||||
audioDisplay->SetDialogue();
|
||||
}
|
||||
|
||||
wxLogDebug(_T("AudioBox::OnKaraoke: returning"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -546,6 +558,7 @@ void AudioBox::SetKaraokeButtons(bool join,bool split) {
|
|||
///////////////
|
||||
// Join button
|
||||
void AudioBox::OnJoin(wxCommandEvent &event) {
|
||||
wxLogDebug(_T("AudioBox::OnJoin"));
|
||||
audioDisplay->SetFocus();
|
||||
audioKaraoke->Join();
|
||||
}
|
||||
|
@ -554,6 +567,7 @@ void AudioBox::OnJoin(wxCommandEvent &event) {
|
|||
////////////////
|
||||
// Split button
|
||||
void AudioBox::OnSplit(wxCommandEvent &event) {
|
||||
wxLogDebug(_T("AudioBox::OnSplit"));
|
||||
audioDisplay->SetFocus();
|
||||
if (!audioKaraoke->splitting) {
|
||||
audioKaraoke->BeginSplit();
|
||||
|
|
|
@ -132,6 +132,7 @@ AudioDisplay::~AudioDisplay() {
|
|||
/////////
|
||||
// Reset
|
||||
void AudioDisplay::Reset() {
|
||||
wxLogDebug(_T("AudioDisplay::Reset"));
|
||||
hasSel = false;
|
||||
diagUpdated = false;
|
||||
NeedCommit = false;
|
||||
|
@ -681,6 +682,7 @@ void AudioDisplay::RecreateImage() {
|
|||
/////////////////////////
|
||||
// Make dialogue visible
|
||||
void AudioDisplay::MakeDialogueVisible(bool force) {
|
||||
wxLogDebug(_T("AudioDisplay::MakeDialogueVisible(force=%d)"), force?1:0);
|
||||
// Variables
|
||||
int temp1=0,temp2=0;
|
||||
if (karaoke->enabled) {
|
||||
|
@ -712,6 +714,7 @@ void AudioDisplay::MakeDialogueVisible(bool force) {
|
|||
////////////////
|
||||
// Set position
|
||||
void AudioDisplay::SetPosition(int pos) {
|
||||
wxLogDebug(_T("AudioDisplay::SetPosition(pos=%d)"), pos);
|
||||
Position = pos;
|
||||
PositionSample = pos * samples;
|
||||
UpdateImage();
|
||||
|
@ -796,9 +799,11 @@ void AudioDisplay::SetScale(float _scale) {
|
|||
|
||||
//////////////////
|
||||
// Load from file
|
||||
void AudioDisplay::SetFile(wxString file, VideoProvider *vproviderLOL) {
|
||||
void AudioDisplay::SetFile(wxString file) {
|
||||
wxLogDebug(_T("AudioDisplay::SetFile(file=%s, vproviderLOL=%p)"), file.c_str());
|
||||
// Unload
|
||||
if (file.IsEmpty()) {
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: file is empty, just closing audio"));
|
||||
if (player) player->CloseStream();
|
||||
delete provider;
|
||||
delete player;
|
||||
|
@ -814,12 +819,15 @@ void AudioDisplay::SetFile(wxString file, VideoProvider *vproviderLOL) {
|
|||
|
||||
// Load
|
||||
else {
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: unloading old file"));
|
||||
SetFile(_T(""));
|
||||
try {
|
||||
// Get provider
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: get audio provider"));
|
||||
provider = AudioProviderFactory::GetAudioProvider(file);
|
||||
|
||||
// Get player
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: get audio player"));
|
||||
player = AudioPlayerFactory::GetAudioPlayer();
|
||||
player->SetDisplayTimer(&UpdateTimer);
|
||||
player->SetProvider(provider);
|
||||
|
@ -827,12 +835,14 @@ void AudioDisplay::SetFile(wxString file, VideoProvider *vproviderLOL) {
|
|||
loaded = true;
|
||||
|
||||
// Add to recent
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: add to recent"));
|
||||
Options.AddToRecentList(file,_T("Recent aud"));
|
||||
|
||||
// Update
|
||||
UpdateImage();
|
||||
}
|
||||
catch (wxString &err) {
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: gotcha!"));
|
||||
wxMessageBox(err,_T("Error loading audio"),wxICON_ERROR | wxOK);
|
||||
}
|
||||
}
|
||||
|
@ -840,19 +850,22 @@ void AudioDisplay::SetFile(wxString file, VideoProvider *vproviderLOL) {
|
|||
assert(loaded == (provider != NULL));
|
||||
|
||||
// Set default selection
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: set default selection"));
|
||||
int n = grid->editBox->linen;
|
||||
SetDialogue(grid,grid->GetDialogue(n),n);
|
||||
wxLogDebug(_T("AudioDisplay::SetFile: returning"));
|
||||
}
|
||||
|
||||
|
||||
///////////////////
|
||||
// Load from video
|
||||
void AudioDisplay::SetFromVideo() {
|
||||
wxLogDebug(_T("AudioDisplay::SetFromVideo"));
|
||||
if (VideoContext::Get()->IsLoaded()) {
|
||||
wxString extension = VideoContext::Get()->videoName.Right(4);
|
||||
extension.LowerCase();
|
||||
|
||||
if (extension != _T(".d2v")) SetFile(VideoContext::Get()->videoName, VideoContext::Get()->GetProvider());
|
||||
if (extension != _T(".d2v")) SetFile(VideoContext::Get()->videoName);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -860,6 +873,7 @@ void AudioDisplay::SetFromVideo() {
|
|||
////////////////
|
||||
// Reload audio
|
||||
void AudioDisplay::Reload() {
|
||||
wxLogDebug(_T("AudioDisplay::Reload"));
|
||||
if (provider) SetFile(provider->GetFilename());
|
||||
}
|
||||
|
||||
|
@ -920,12 +934,15 @@ __int64 AudioDisplay::GetSampleAtMS(__int64 ms) {
|
|||
////////
|
||||
// Play
|
||||
void AudioDisplay::Play(int start,int end) {
|
||||
wxLogDebug(_T("AudioDisplay::Play"));
|
||||
Stop();
|
||||
|
||||
// Check provider
|
||||
if (!provider) {
|
||||
wxLogDebug(_T("AudioDisplay::Play: no audio provider"));
|
||||
// Load temporary provider from video
|
||||
if (VideoContext::Get()->IsLoaded()) {
|
||||
wxLogDebug(_T("AudioDisplay::Play: has video provider"));
|
||||
try {
|
||||
// Get provider
|
||||
provider = AudioProviderFactory::GetAudioProvider(VideoContext::Get()->videoName, 0);
|
||||
|
@ -936,15 +953,21 @@ void AudioDisplay::Play(int start,int end) {
|
|||
player->SetProvider(provider);
|
||||
player->OpenStream();
|
||||
temporary = true;
|
||||
wxLogDebug(_T("AudioDisplay::Play: got temp audio provider from video provider"));
|
||||
}
|
||||
catch (...) {
|
||||
wxLogDebug(_T("AudioDisplay::Play: exception getting audio provider from video, returning"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!provider) return;
|
||||
if (!provider) {
|
||||
wxLogDebug(_T("AudioDisplay::Play: has no provider, returning"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Set defaults
|
||||
wxLogDebug(_T("AudioDisplay::Play: initialising playback"));
|
||||
__int64 num_samples = provider->GetNumSamples();
|
||||
start = GetSampleAtMS(start);
|
||||
if (end != -1) end = GetSampleAtMS(end);
|
||||
|
@ -959,12 +982,14 @@ void AudioDisplay::Play(int start,int end) {
|
|||
|
||||
// Call play
|
||||
player->Play(start,end-start);
|
||||
wxLogDebug(_T("AudioDisplay::Play: playback started, returning"));
|
||||
}
|
||||
|
||||
|
||||
////////
|
||||
// Stop
|
||||
void AudioDisplay::Stop() {
|
||||
wxLogDebug(_T("AudioDisplay::Stop"));
|
||||
if (VideoContext::Get()->IsPlaying()) VideoContext::Get()->Stop();
|
||||
if (player) player->Stop();
|
||||
}
|
||||
|
@ -973,6 +998,7 @@ void AudioDisplay::Stop() {
|
|||
///////////////////////////
|
||||
// Get samples of dialogue
|
||||
void AudioDisplay::GetTimesDialogue(int &start,int &end) {
|
||||
wxLogDebug(_T("AudioDisplay::GetTimesDialogue"));
|
||||
if (!dialogue) {
|
||||
start = 0;
|
||||
end = 0;
|
||||
|
@ -987,6 +1013,7 @@ void AudioDisplay::GetTimesDialogue(int &start,int &end) {
|
|||
////////////////////////////
|
||||
// Get samples of selection
|
||||
void AudioDisplay::GetTimesSelection(int &start,int &end) {
|
||||
wxLogDebug(_T("AudioDisplay::GetTimesSelection"));
|
||||
start = 0;
|
||||
end = 0;
|
||||
if (!dialogue) return;
|
||||
|
@ -1010,6 +1037,7 @@ void AudioDisplay::GetTimesSelection(int &start,int &end) {
|
|||
/////////////////////////////
|
||||
// Set the current selection
|
||||
void AudioDisplay::SetSelection(int start, int end) {
|
||||
wxLogDebug(_T("AudioDisplay::SetSelection(start=%d, end=%d)"), start, end);
|
||||
curStartMS = start;
|
||||
curEndMS = end;
|
||||
Update();
|
||||
|
@ -1019,8 +1047,10 @@ void AudioDisplay::SetSelection(int start, int end) {
|
|||
////////////////
|
||||
// Set dialogue
|
||||
void AudioDisplay::SetDialogue(SubtitlesGrid *_grid,AssDialogue *diag,int n) {
|
||||
wxLogDebug(_T("AudioDisplay::SetDialogue"));
|
||||
// Actual parameters
|
||||
if (_grid) {
|
||||
wxLogDebug(_T("AudioDisplay::SetDialogue: has grid"));
|
||||
// Set variables
|
||||
grid = _grid;
|
||||
line_n = n;
|
||||
|
@ -1032,6 +1062,7 @@ void AudioDisplay::SetDialogue(SubtitlesGrid *_grid,AssDialogue *diag,int n) {
|
|||
|
||||
// Set times
|
||||
if (dialogue && !dontReadTimes && Options.AsBool(_T("Audio grab times on select"))) {
|
||||
wxLogDebug(_T("AudioDisplay::SetDialogue: grabbing times"));
|
||||
int s = dialogue->Start.GetMS();
|
||||
int e = dialogue->End.GetMS();
|
||||
|
||||
|
@ -1045,21 +1076,25 @@ void AudioDisplay::SetDialogue(SubtitlesGrid *_grid,AssDialogue *diag,int n) {
|
|||
|
||||
// Read karaoke data
|
||||
if (dialogue && karaoke->enabled) {
|
||||
wxLogDebug(_T("AudioDisplay::SetDialogue: in karaoke mode, loading new line into karaoke control"));
|
||||
NeedCommit = karaoke->LoadFromDialogue(dialogue);
|
||||
|
||||
// Reset karaoke pos
|
||||
wxLogDebug(_T("AudioDisplay::SetDialogue: resetting karaoke position"));
|
||||
if (karaoke->curSyllable == -1) karaoke->SetSyllable((int)karaoke->syllables.size()-1);
|
||||
else karaoke->SetSyllable(0);
|
||||
}
|
||||
|
||||
// Update
|
||||
Update();
|
||||
wxLogDebug(_T("AudioDisplay::SetDialogue: returning"));
|
||||
}
|
||||
|
||||
|
||||
//////////////////
|
||||
// Commit changes
|
||||
void AudioDisplay::CommitChanges (bool nextLine) {
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges(nextLine=%d)"), nextLine?1:0);
|
||||
// Loaded?
|
||||
if (!loaded) return;
|
||||
|
||||
|
@ -1067,12 +1102,14 @@ void AudioDisplay::CommitChanges (bool nextLine) {
|
|||
bool wasKaraSplitting = false;
|
||||
bool validCommit = true;
|
||||
if (!box->audioKaraoke->splitting) {
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: was splitting karaoke"));
|
||||
if (!NeedCommit || curEndMS < curStartMS) validCommit = false;
|
||||
}
|
||||
|
||||
// Update karaoke
|
||||
int karSyl = 0;
|
||||
if (karaoke->enabled) {
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: karaoke enabled, committing it"));
|
||||
wasKaraSplitting = box->audioKaraoke->splitting;
|
||||
karaoke->Commit();
|
||||
karSyl = karaoke->curSyllable;
|
||||
|
@ -1080,6 +1117,7 @@ void AudioDisplay::CommitChanges (bool nextLine) {
|
|||
|
||||
// Commit ok?
|
||||
if (validCommit) {
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: valid commit"));
|
||||
// Reset flags
|
||||
diagUpdated = false;
|
||||
NeedCommit = false;
|
||||
|
@ -1098,19 +1136,22 @@ void AudioDisplay::CommitChanges (bool nextLine) {
|
|||
|
||||
curDiag->Start.SetMS(curStartMS);
|
||||
curDiag->End.SetMS(curEndMS);
|
||||
if (!karaoke->enabled)
|
||||
if (!karaoke->enabled) {
|
||||
// If user was editing karaoke stuff, that should take precedence of manual changes in the editbox,
|
||||
// so only updated from editbox when not in kara mode
|
||||
curDiag->Text = grid->editBox->TextEdit->GetText();
|
||||
}
|
||||
curDiag->UpdateData();
|
||||
}
|
||||
|
||||
// Update edit box
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: updating time edit boxes"));
|
||||
grid->editBox->StartTime->Update();
|
||||
grid->editBox->EndTime->Update();
|
||||
grid->editBox->Duration->Update();
|
||||
|
||||
// Update grid
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: update grid"));
|
||||
grid->editBox->Update(!karaoke->enabled);
|
||||
grid->ass->FlagAsModified(_T(""));
|
||||
grid->CommitChanges();
|
||||
|
@ -1118,11 +1159,13 @@ void AudioDisplay::CommitChanges (bool nextLine) {
|
|||
blockUpdate = false;
|
||||
}
|
||||
|
||||
// Next line
|
||||
// Next line (ugh what a condition, can this be simplified?)
|
||||
if (nextLine && !karaoke->enabled && Options.AsBool(_T("Audio Next Line on Commit")) && !wasKaraSplitting) {
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: going to next line"));
|
||||
// Insert a line if it doesn't exist
|
||||
int nrows = grid->GetRows();
|
||||
if (nrows == line_n + 1) {
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: was on last line, inserting new"));
|
||||
AssDialogue *def = new AssDialogue;
|
||||
def->Start = grid->GetDialogue(line_n)->End;
|
||||
def->End = grid->GetDialogue(line_n)->End;
|
||||
|
@ -1140,6 +1183,7 @@ void AudioDisplay::CommitChanges (bool nextLine) {
|
|||
}
|
||||
|
||||
Update();
|
||||
wxLogDebug(_T("AudioDisplay::CommitChanges: returning"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -2029,11 +2073,14 @@ void AudioDisplay::OnKeyDown(wxKeyEvent &event) {
|
|||
///////////////
|
||||
// Change line
|
||||
void AudioDisplay::ChangeLine(int delta) {
|
||||
wxLogDebug(_T("AudioDisplay::ChangeLine(delta=%d)"), delta);
|
||||
if (dialogue) {
|
||||
wxLogDebug(_T("AudioDisplay::ChangeLine: has dialogue"));
|
||||
// Get next line number and make sure it's within bounds
|
||||
int next = line_n+delta;
|
||||
if (next == -1) next = 0;
|
||||
if (next == grid->GetRows()) next = grid->GetRows() - 1;
|
||||
wxLogDebug(_T("AudioDisplay::ChangeLine: next=%s"), next);
|
||||
|
||||
// Set stuff
|
||||
NeedCommit = false;
|
||||
|
@ -2045,33 +2092,40 @@ void AudioDisplay::ChangeLine(int delta) {
|
|||
else UpdateImage(false);
|
||||
line_n = next;
|
||||
}
|
||||
wxLogDebug(_T("AudioDisplay::ChangeLine: returning"));
|
||||
}
|
||||
|
||||
|
||||
////////
|
||||
// Next
|
||||
void AudioDisplay::Next() {
|
||||
wxLogDebug(_T("AudioDisplay::Next"));
|
||||
// Karaoke
|
||||
if (karaoke->enabled) {
|
||||
wxLogDebug(_T("AudioDisplay::Next: karaoke enables, going to next syllable"));
|
||||
int nextSyl = karaoke->curSyllable+1;
|
||||
bool needsUpdate = true;
|
||||
|
||||
// Last syllable; jump to next
|
||||
if (nextSyl >= (signed int)karaoke->syllables.size()) {
|
||||
wxLogDebug(_T("AudioDisplay::Next: last syllable on line"));
|
||||
// Already last?
|
||||
if (line_n == grid->GetRows()-1) return;
|
||||
|
||||
if (NeedCommit) {
|
||||
wxLogDebug(_T("AudioDisplay::Next: uncommitted karaoke changes"));
|
||||
int result = wxMessageBox(_("Do you want to commit your changes? If you choose No, they will be discarded."),_("Commit?"),wxYES_NO | wxCANCEL | wxICON_QUESTION);
|
||||
//int result = wxNO;
|
||||
if (result == wxYES) {
|
||||
CommitChanges();
|
||||
}
|
||||
else if (result == wxCANCEL) {
|
||||
wxLogDebug(_T("AudioDisplay::Next: cancelled, returning"));
|
||||
karaoke->curSyllable = (int)karaoke->syllables.size()-1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
wxLogDebug(_T("AudioDisplay::Next: going to next line"));
|
||||
nextSyl = 0;
|
||||
karaoke->curSyllable = 0;
|
||||
ChangeLine(1);
|
||||
|
@ -2079,6 +2133,7 @@ void AudioDisplay::Next() {
|
|||
}
|
||||
|
||||
// Set syllable
|
||||
wxLogDebug(_T("AudioDisplay::Next: set syllable"));
|
||||
karaoke->SetSyllable(nextSyl);
|
||||
if (needsUpdate) Update();
|
||||
int start=0,end=0;
|
||||
|
@ -2088,40 +2143,50 @@ void AudioDisplay::Next() {
|
|||
|
||||
// Plain mode
|
||||
else {
|
||||
wxLogDebug(_T("AudioDisplay::Next: going to next line"));
|
||||
ChangeLine(1);
|
||||
}
|
||||
|
||||
wxLogDebug(_T("AudioDisplay::Next: returning"));
|
||||
}
|
||||
|
||||
|
||||
////////////
|
||||
// Previous
|
||||
void AudioDisplay::Prev() {
|
||||
wxLogDebug(_T("AudioDisplay::Prev"));
|
||||
// Karaoke
|
||||
if (karaoke->enabled) {
|
||||
wxLogDebug(_T("AudioDisplay::Prev: karaoke enabled, going to prev syllable"));
|
||||
int nextSyl = karaoke->curSyllable-1;
|
||||
bool needsUpdate = true;
|
||||
|
||||
// First syllable; jump line
|
||||
if (nextSyl < 0) {
|
||||
wxLogDebug(_T("AudioDisplay::Prev: prev syllable on prev line"));
|
||||
// Already first?
|
||||
if (line_n == 0) return;
|
||||
|
||||
if (NeedCommit) {
|
||||
wxLogDebug(_T("AudioDisplay::Prev: uncommitted karaoke changes"));
|
||||
int result = wxMessageBox(_("Do you want to commit your changes? If you choose No, they will be discarded."),_("Commit?"),wxYES_NO | wxCANCEL);
|
||||
if (result == wxYES) {
|
||||
CommitChanges();
|
||||
}
|
||||
else if (result == wxCANCEL) {
|
||||
karaoke->curSyllable = 0;
|
||||
wxLogDebug(_T("AudioDisplay::Prev: cancelled, returning"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
wxLogDebug(_T("AudioDisplay::Prev: going to prev line"));
|
||||
karaoke->curSyllable = -1;
|
||||
ChangeLine(-1);
|
||||
needsUpdate = false;
|
||||
}
|
||||
|
||||
// Set syllable
|
||||
wxLogDebug(_T("AudioDisplay::Prev: set syllable"));
|
||||
karaoke->SetSyllable(nextSyl);
|
||||
if (needsUpdate) Update();
|
||||
int start=0,end=0;
|
||||
|
@ -2131,8 +2196,11 @@ void AudioDisplay::Prev() {
|
|||
|
||||
// Plain mode
|
||||
else {
|
||||
wxLogDebug(_T("AudioDisplay::Prev: going to prev line"));
|
||||
ChangeLine(-1);
|
||||
}
|
||||
|
||||
wxLogDebug(_T("AudioDisplay::Prev: returning"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -2159,6 +2227,7 @@ int AudioDisplay::GetSyllableAtX(int x) {
|
|||
////////////////
|
||||
// Focus events
|
||||
void AudioDisplay::OnGetFocus(wxFocusEvent &event) {
|
||||
wxLogDebug(_T("AudioDisplay::OnGetFocus"));
|
||||
if (!hasFocus) {
|
||||
hasFocus = true;
|
||||
UpdateImage(true);
|
||||
|
@ -2166,6 +2235,7 @@ void AudioDisplay::OnGetFocus(wxFocusEvent &event) {
|
|||
}
|
||||
|
||||
void AudioDisplay::OnLoseFocus(wxFocusEvent &event) {
|
||||
wxLogDebug(_T("AudioDisplay::OnLoseFocus"));
|
||||
if (hasFocus && loaded) {
|
||||
hasFocus = false;
|
||||
UpdateImage(true);
|
||||
|
|
|
@ -161,7 +161,7 @@ public:
|
|||
void CommitChanges(bool nextLine=false);
|
||||
void AddLead(bool in,bool out);
|
||||
|
||||
void SetFile(wxString file,VideoProvider *vprovider=NULL);
|
||||
void SetFile(wxString file);
|
||||
void SetFromVideo();
|
||||
void Reload();
|
||||
|
||||
|
|
Loading…
Reference in New Issue