1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 08:29:27 +02:00

Remove EXPERIMENTAL_LYRICS_WINDOW and EXPERIMENTAL_MIXER_BOARD. They've been in every beta for almost a year, so they're no longer experimental.

This commit is contained in:
v.audacity 2010-07-21 04:53:38 +00:00
parent 64360a2cd4
commit e30ce7ddb7
11 changed files with 199 additions and 341 deletions

View File

@ -142,9 +142,6 @@ extern void AddPages( AudacityProject * pProj, GuiFactory & Factory, wxNotebo
#ifdef EXPERIMENTAL_AUDACITY_TESTER #ifdef EXPERIMENTAL_AUDACITY_TESTER
#endif #endif
#define EXPERIMENTAL_LYRICS_WINDOW //vvv Vaughan, 2009-07-06
#define EXPERIMENTAL_MIXER_BOARD //vvv Vaughan, 2009-07-07
#if USE_PORTMIXER #if USE_PORTMIXER
//Automatically tries to find an acceptable input volume //Automatically tries to find an acceptable input volume
//#define AUTOMATED_INPUT_LEVEL_ADJUSTMENT //#define AUTOMATED_INPUT_LEVEL_ADJUSTMENT
@ -154,15 +151,3 @@ extern void AddPages( AudacityProject * pProj, GuiFactory & Factory, wxNotebo
//#define EXPERIMENTAL_TRUNC_SILENCE //#define EXPERIMENTAL_TRUNC_SILENCE
#endif #endif
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
// version control system. Please do not modify past this point.
//
// Local Variables:
// c-basic-offset: 3
// indent-tabs-mode: nil
// End:
//
// vim: et sts=3 sw=3
// arch-tag:

View File

@ -10,7 +10,6 @@
**********************************************************************/ **********************************************************************/
#include "Experimental.h" #include "Experimental.h"
#ifdef EXPERIMENTAL_LYRICS_WINDOW
#include "LyricsWindow.h" #include "LyricsWindow.h"
#include "Lyrics.h" #include "Lyrics.h"
@ -141,4 +140,3 @@ void LyricsWindow::OnStyle_Highlight(wxCommandEvent &evt)
mLyricsPanel->SetLyricsStyle(Lyrics::kHighlightLyrics); mLyricsPanel->SetLyricsStyle(Lyrics::kHighlightLyrics);
} }
#endif // EXPERIMENTAL_LYRICS_WINDOW

View File

@ -10,7 +10,6 @@
**********************************************************************/ **********************************************************************/
#include "Experimental.h" #include "Experimental.h"
#ifdef EXPERIMENTAL_LYRICS_WINDOW
#ifndef __AUDACITY_LYRICS_WINDOW__ #ifndef __AUDACITY_LYRICS_WINDOW__
#define __AUDACITY_LYRICS_WINDOW__ #define __AUDACITY_LYRICS_WINDOW__
@ -42,4 +41,3 @@ class LyricsWindow : public wxFrame {
}; };
#endif #endif
#endif // EXPERIMENTAL_LYRICS_WINDOW

View File

@ -65,12 +65,8 @@ simplifies construction of menu items.
#include "widgets/TimeTextCtrl.h" #include "widgets/TimeTextCtrl.h"
#include "ShuttleGui.h" #include "ShuttleGui.h"
#include "HistoryWindow.h" #include "HistoryWindow.h"
#ifdef EXPERIMENTAL_LYRICS_WINDOW #include "LyricsWindow.h"
#include "LyricsWindow.h" #include "MixerBoard.h"
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
#include "MixerBoard.h"
#endif
#include "Internat.h" #include "Internat.h"
#include "FileFormats.h" #include "FileFormats.h"
#include "LoadModules.h" #include "LoadModules.h"
@ -556,12 +552,8 @@ void AudacityProject::CreateMenusAndCommands()
AudioIONotBusyFlag | UndoAvailableFlag, AudioIONotBusyFlag | UndoAvailableFlag,
AudioIONotBusyFlag | UndoAvailableFlag); AudioIONotBusyFlag | UndoAvailableFlag);
#ifdef EXPERIMENTAL_LYRICS_WINDOW c->AddItem(wxT("Karaoke"), _("&Karaoke..."), FN(OnKaraoke), LabelTracksExistFlag, LabelTracksExistFlag);
c->AddItem(wxT("Karaoke"), _("&Karaoke..."), FN(OnKaraoke), LabelTracksExistFlag, LabelTracksExistFlag); c->AddItem(wxT("MixerBoard"), _("&Mixer Board..."), FN(OnMixerBoard), WaveTracksExistFlag, WaveTracksExistFlag);
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
c->AddItem(wxT("MixerBoard"), _("&Mixer Board..."), FN(OnMixerBoard), WaveTracksExistFlag, WaveTracksExistFlag);
#endif
c->AddSeparator(); c->AddSeparator();
@ -4085,10 +4077,8 @@ void AudacityProject::OnSelectAll()
ModifyState(); ModifyState();
mTrackPanel->Refresh(false); mTrackPanel->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->Refresh(false);
mMixerBoard->Refresh(false);
#endif
} }
void AudacityProject::OnSelectNone() void AudacityProject::OnSelectNone()
@ -4155,10 +4145,8 @@ void AudacityProject::OnSelectSyncSel()
} }
mTrackPanel->Refresh(false); mTrackPanel->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->Refresh(false);
mMixerBoard->Refresh(false);
#endif
} }
void AudacityProject::OnSelectAllTracks() void AudacityProject::OnSelectAllTracks()
@ -4169,10 +4157,8 @@ void AudacityProject::OnSelectAllTracks()
} }
mTrackPanel->Refresh(false); mTrackPanel->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD
if (mMixerBoard) if (mMixerBoard)
mMixerBoard->Refresh(false); mMixerBoard->Refresh(false);
#endif
} }
// //
@ -4379,29 +4365,26 @@ void AudacityProject::OnHistory()
mHistoryWindow->UpdateDisplay(); mHistoryWindow->UpdateDisplay();
} }
#ifdef EXPERIMENTAL_LYRICS_WINDOW void AudacityProject::OnKaraoke()
void AudacityProject::OnKaraoke() {
if (!mLyricsWindow)
mLyricsWindow = new LyricsWindow(this);
wxASSERT(mLyricsWindow);
mLyricsWindow->Show();
mLyricsWindow->Raise();
}
void AudacityProject::OnMixerBoard()
{
if (!mMixerBoardFrame)
{ {
if (!mLyricsWindow) mMixerBoardFrame = new MixerBoardFrame(this);
mLyricsWindow = new LyricsWindow(this); mMixerBoard = mMixerBoardFrame->mMixerBoard;
wxASSERT(mLyricsWindow);
mLyricsWindow->Show();
mLyricsWindow->Raise();
} }
#endif mMixerBoardFrame->Show();
#ifdef EXPERIMENTAL_MIXER_BOARD mMixerBoardFrame->Raise();
void AudacityProject::OnMixerBoard() mMixerBoardFrame->SetFocus();
{ }
if (!mMixerBoardFrame)
{
mMixerBoardFrame = new MixerBoardFrame(this);
mMixerBoard = mMixerBoardFrame->mMixerBoard;
}
mMixerBoardFrame->Show();
mMixerBoardFrame->Raise();
mMixerBoardFrame->SetFocus();
}
#endif
void AudacityProject::OnPlotSpectrum() void AudacityProject::OnPlotSpectrum()
{ {
@ -5407,10 +5390,8 @@ void AudacityProject::OnRemoveTracks()
while (t) { while (t) {
if (t->GetSelected()) { if (t->GetSelected()) {
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard && (t->GetKind() == Track::Wave))
if (mMixerBoard && (t->GetKind() == Track::Wave)) mMixerBoard->RemoveTrackCluster((WaveTrack*)t);
mMixerBoard->RemoveTrackCluster((WaveTrack*)t);
#endif
if (!f) if (!f)
f = l; // Capture the track preceeding the first removed track f = l; // Capture the track preceeding the first removed track
t = iter.RemoveCurrent(true); t = iter.RemoveCurrent(true);
@ -5440,10 +5421,8 @@ void AudacityProject::OnRemoveTracks()
PushState(_("Removed audio track(s)"), _("Remove Track")); PushState(_("Removed audio track(s)"), _("Remove Track"));
mTrackPanel->Refresh(false); mTrackPanel->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->Refresh(true);
mMixerBoard->Refresh(true);
#endif
} }
// //
@ -5551,10 +5530,8 @@ void AudacityProject::OnMuteAllTracks()
ModifyState(); ModifyState();
RedrawProject(); RedrawProject();
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->UpdateMute();
mMixerBoard->UpdateMute();
#endif
} }
void AudacityProject::OnUnMuteAllTracks() void AudacityProject::OnUnMuteAllTracks()
@ -5570,10 +5547,8 @@ void AudacityProject::OnUnMuteAllTracks()
ModifyState(); ModifyState();
RedrawProject(); RedrawProject();
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->UpdateMute();
mMixerBoard->UpdateMute();
#endif
} }
void AudacityProject::OnLockPlayRegion() void AudacityProject::OnLockPlayRegion()

View File

@ -252,12 +252,8 @@ void OnShowClipping();
void OnHistory(); void OnHistory();
#ifdef EXPERIMENTAL_LYRICS_WINDOW void OnKaraoke();
void OnKaraoke(); void OnMixerBoard();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
void OnMixerBoard();
#endif
void OnPlotSpectrum(); void OnPlotSpectrum();
void OnContrast(); void OnContrast();

View File

@ -10,7 +10,6 @@
**********************************************************************/ **********************************************************************/
#include "Experimental.h" #include "Experimental.h"
#ifdef EXPERIMENTAL_MIXER_BOARD
#include <math.h> #include <math.h>
@ -1376,5 +1375,4 @@ void MixerBoardFrame::OnSize(wxSizeEvent &event)
mMixerBoard->SetSize(this->GetClientSize()); mMixerBoard->SetSize(this->GetClientSize());
} }
#endif // EXPERIMENTAL_MIXER_BOARD

View File

@ -9,7 +9,6 @@
**********************************************************************/ **********************************************************************/
#include "Experimental.h" #include "Experimental.h"
#ifdef EXPERIMENTAL_MIXER_BOARD
#ifndef __AUDACITY_MIXER_BOARD__ #ifndef __AUDACITY_MIXER_BOARD__
#define __AUDACITY_MIXER_BOARD__ #define __AUDACITY_MIXER_BOARD__
@ -270,5 +269,4 @@ public:
#endif // __AUDACITY_MIXER_BOARD__ #endif // __AUDACITY_MIXER_BOARD__
#endif // EXPERIMENTAL_MIXER_BOARD

View File

@ -97,13 +97,9 @@ scroll information. It also has some status flags.
#include "AudioIO.h" #include "AudioIO.h"
#include "Dependencies.h" #include "Dependencies.h"
#include "HistoryWindow.h" #include "HistoryWindow.h"
#ifdef EXPERIMENTAL_LYRICS_WINDOW #include "Lyrics.h"
#include "Lyrics.h" #include "LyricsWindow.h"
#include "LyricsWindow.h" #include "MixerBoard.h"
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
#include "MixerBoard.h"
#endif
#include "Internat.h" #include "Internat.h"
#include "import/Import.h" #include "import/Import.h"
#include "LabelTrack.h" #include "LabelTrack.h"
@ -735,13 +731,9 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
mAutoScrolling(false), mAutoScrolling(false),
mActive(true), mActive(true),
mHistoryWindow(NULL), mHistoryWindow(NULL),
#ifdef EXPERIMENTAL_LYRICS_WINDOW mLyricsWindow(NULL),
mLyricsWindow(NULL), mMixerBoard(NULL),
#endif mMixerBoardFrame(NULL),
#ifdef EXPERIMENTAL_MIXER_BOARD
mMixerBoard(NULL),
mMixerBoardFrame(NULL),
#endif
mFreqWindow(NULL), mFreqWindow(NULL),
mToolManager(NULL), mToolManager(NULL),
mAudioIOToken(-1), mAudioIOToken(-1),
@ -1041,10 +1033,8 @@ void AudacityProject::UpdatePrefs()
if (mTrackPanel) { if (mTrackPanel) {
mTrackPanel->UpdatePrefs(); mTrackPanel->UpdatePrefs();
} }
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->ResizeTrackClusters(); // in case prefs "/GUI/Solo" changed
mMixerBoard->ResizeTrackClusters(); // in case prefs "/GUI/Solo" changed
#endif
SetSnapTo(gPrefs->Read(wxT("/SnapTo"), 0L)!=0); SetSnapTo(gPrefs->Read(wxT("/SnapTo"), 0L)!=0);
@ -3494,12 +3484,8 @@ void AudacityProject::InitialState()
ModifyUndoMenus(); ModifyUndoMenus();
UpdateMenus(); UpdateMenus();
#ifdef EXPERIMENTAL_LYRICS_WINDOW this->UpdateLyrics();
this->UpdateLyrics(); this->UpdateMixerBoard();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
this->UpdateMixerBoard();
#endif
} }
void AudacityProject::PushState(wxString desc, void AudacityProject::PushState(wxString desc,
@ -3523,15 +3509,11 @@ void AudacityProject::PushState(wxString desc,
// Others, such as deleting a label or adding a wave track, obviously do. // Others, such as deleting a label or adding a wave track, obviously do.
// Could categorize these state changes, but for now... // Could categorize these state changes, but for now...
// It's crucial to not do that repopulating during playback. // It's crucial to not do that repopulating during playback.
//vvv These can be combined in the same conditional when both features are made non-experimental. if (!gAudioIO->IsStreamActive(GetAudioIOToken()))
#ifdef EXPERIMENTAL_LYRICS_WINDOW {
if (!gAudioIO->IsStreamActive(GetAudioIOToken())) this->UpdateLyrics();
this->UpdateLyrics(); this->UpdateMixerBoard();
#endif }
#ifdef EXPERIMENTAL_MIXER_BOARD
if (!gAudioIO->IsStreamActive(GetAudioIOToken()))
this->UpdateMixerBoard();
#endif
if (GetTracksFitVerticallyZoomed()) if (GetTracksFitVerticallyZoomed())
this->DoZoomFitV(); this->DoZoomFitV();
@ -3592,12 +3574,8 @@ void AudacityProject::PopState(TrackList * l)
HandleResize(); HandleResize();
UpdateMenus(); UpdateMenus();
#ifdef EXPERIMENTAL_LYRICS_WINDOW this->UpdateLyrics();
this->UpdateLyrics(); this->UpdateMixerBoard();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
this->UpdateMixerBoard();
#endif
AutoSave(); AutoSave();
} }
@ -3612,47 +3590,39 @@ void AudacityProject::SetStateTo(unsigned int n)
mTrackPanel->SetFocusedTrack(NULL); mTrackPanel->SetFocusedTrack(NULL);
mTrackPanel->Refresh(false); mTrackPanel->Refresh(false);
ModifyUndoMenus(); ModifyUndoMenus();
#ifdef EXPERIMENTAL_LYRICS_WINDOW this->UpdateLyrics();
this->UpdateLyrics(); this->UpdateMixerBoard();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
this->UpdateMixerBoard();
#endif
} }
#ifdef EXPERIMENTAL_LYRICS_WINDOW void AudacityProject::UpdateLyrics()
void AudacityProject::UpdateLyrics() {
TrackListOfKindIterator iter(Track::Label, mTracks);
LabelTrack* pLabelTrack = (LabelTrack*)(iter.First()); // Lyrics come from only the first label track.
if (!pLabelTrack)
return;
if (!mLyricsWindow)
{ {
TrackListOfKindIterator iter(Track::Label, mTracks); mLyricsWindow = new LyricsWindow(this);
LabelTrack* pLabelTrack = (LabelTrack*)(iter.First()); // Lyrics come from only the first label track. mLyricsWindow->Show(false); // Don't show it. Need to update content regardless.
if (!pLabelTrack)
return;
if (!mLyricsWindow)
{
mLyricsWindow = new LyricsWindow(this);
mLyricsWindow->Show(false); // Don't show it. Need to update content regardless.
}
Lyrics* pLyricsPanel = mLyricsWindow->GetLyricsPanel();
pLyricsPanel->Clear();
for (int i = 0; i < pLabelTrack->GetNumLabels(); i++)
pLyricsPanel->Add(pLabelTrack->GetLabel(i)->t,
pLabelTrack->GetLabel(i)->title);
pLyricsPanel->Finish(pLabelTrack->GetEndTime());
pLyricsPanel->Update(this->GetSel0());
} }
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD Lyrics* pLyricsPanel = mLyricsWindow->GetLyricsPanel();
void AudacityProject::UpdateMixerBoard() pLyricsPanel->Clear();
{ for (int i = 0; i < pLabelTrack->GetNumLabels(); i++)
if (!mMixerBoard) pLyricsPanel->Add(pLabelTrack->GetLabel(i)->t,
return; pLabelTrack->GetLabel(i)->title);
mMixerBoard->UpdateTrackClusters(); pLyricsPanel->Finish(pLabelTrack->GetEndTime());
mMixerBoard->UpdateMeters(gAudioIO->GetStreamTime(), (mLastPlayMode == loopedPlay)); pLyricsPanel->Update(this->GetSel0());
} }
#endif
void AudacityProject::UpdateMixerBoard()
{
if (!mMixerBoard)
return;
mMixerBoard->UpdateTrackClusters();
mMixerBoard->UpdateMeters(gAudioIO->GetStreamTime(), (mLastPlayMode == loopedPlay));
}
// //
// Clipboard methods // Clipboard methods
@ -3721,10 +3691,8 @@ void AudacityProject::SelectNone()
t = iter.Next(); t = iter.Next();
} }
mTrackPanel->Refresh(false); mTrackPanel->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD if (mMixerBoard)
if (mMixerBoard) mMixerBoard->Refresh(false);
mMixerBoard->Refresh(false);
#endif
} }
// Utility function called by other zoom methods // Utility function called by other zoom methods

View File

@ -49,33 +49,32 @@ class wxScrollEvent;
class wxScrollBar; class wxScrollBar;
class wxPanel; class wxPanel;
class ToolManager; class AudacityProject;
class Toolbar; class Importer;
class ODLock;
class RecordingRecoveryHandler;
class TrackList;
class Tags;
// toolbar classes
class ControlToolBar; class ControlToolBar;
class DeviceToolBar; class DeviceToolBar;
class EditToolBar; class EditToolBar;
class MeterToolBar; class MeterToolBar;
class MixerToolBar; class MixerToolBar;
class SelectionToolBar; class SelectionToolBar;
class Toolbar;
class ToolManager;
class ToolsToolBar; class ToolsToolBar;
class TranscriptionToolBar; class TranscriptionToolBar;
class TrackList; // windows and frames
class Tags;
class HistoryWindow;
#ifdef EXPERIMENTAL_LYRICS_WINDOW
class LyricsWindow;
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
class MixerBoard;
class MixerBoardFrame;
#endif
class Importer;
class AdornedRulerPanel; class AdornedRulerPanel;
class HistoryWindow;
class LyricsWindow;
class MixerBoard;
class MixerBoardFrame;
class AudacityProject;
class RecordingRecoveryHandler;
class ODLock;
AudacityProject *CreateNewAudacityProject(); AudacityProject *CreateNewAudacityProject();
AUDACITY_DLL_API AudacityProject *GetActiveProject(); AUDACITY_DLL_API AudacityProject *GetActiveProject();
@ -120,13 +119,9 @@ class AUDACITY_DLL_API AudacityProject: public wxFrame,
public AudioIOListener public AudioIOListener
{ {
public: public:
// Constructor and Destructor
AudacityProject(wxWindow * parent, wxWindowID id, AudacityProject(wxWindow * parent, wxWindowID id,
const wxPoint & pos, const wxSize & size); const wxPoint & pos, const wxSize & size);
virtual ~AudacityProject();
virtual ~ AudacityProject();
TrackList *GetTracks() { return mTracks; }; TrackList *GetTracks() { return mTracks; };
UndoManager *GetUndoManager() { return &mUndoManager; } UndoManager *GetUndoManager() { return &mUndoManager; }
@ -345,12 +340,8 @@ class AUDACITY_DLL_API AudacityProject: public wxFrame,
ToolsToolBar *GetToolsToolBar(); ToolsToolBar *GetToolsToolBar();
TranscriptionToolBar *GetTranscriptionToolBar(); TranscriptionToolBar *GetTranscriptionToolBar();
#ifdef EXPERIMENTAL_LYRICS_WINDOW LyricsWindow* GetLyricsWindow() { return mLyricsWindow; };
LyricsWindow* GetLyricsWindow() { return mLyricsWindow; }; MixerBoard* GetMixerBoard() { return mMixerBoard; };
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
MixerBoard* GetMixerBoard() { return mMixerBoard; };
#endif
// SelectionBar callback methods // SelectionBar callback methods
@ -399,12 +390,8 @@ class AUDACITY_DLL_API AudacityProject: public wxFrame,
void ModifyState(); void ModifyState();
void PopState(TrackList * l); void PopState(TrackList * l);
#ifdef EXPERIMENTAL_LYRICS_WINDOW void UpdateLyrics();
void UpdateLyrics(); void UpdateMixerBoard();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
void UpdateMixerBoard();
#endif
void GetRegionsByLabel( Regions &regions ); void GetRegionsByLabel( Regions &regions );
@ -475,13 +462,9 @@ class AUDACITY_DLL_API AudacityProject: public wxFrame,
bool mIconized; bool mIconized;
HistoryWindow *mHistoryWindow; HistoryWindow *mHistoryWindow;
#ifdef EXPERIMENTAL_LYRICS_WINDOW LyricsWindow* mLyricsWindow;
LyricsWindow* mLyricsWindow; MixerBoard* mMixerBoard;
#endif MixerBoardFrame* mMixerBoardFrame;
#ifdef EXPERIMENTAL_MIXER_BOARD
MixerBoard* mMixerBoard;
MixerBoardFrame* mMixerBoardFrame;
#endif
FreqWindow *mFreqWindow; FreqWindow *mFreqWindow;

View File

@ -188,13 +188,9 @@ is time to refresh some aspect of the screen.
#include "float_cast.h" #include "float_cast.h"
#include "Internat.h" #include "Internat.h"
#include "LabelTrack.h" #include "LabelTrack.h"
#ifdef EXPERIMENTAL_LYRICS_WINDOW #include "Lyrics.h"
#include "Lyrics.h" #include "LyricsWindow.h"
#include "LyricsWindow.h" #include "MixerBoard.h"
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
#include "MixerBoard.h"
#endif
#include "NoteTrack.h" #include "NoteTrack.h"
#include "Prefs.h" #include "Prefs.h"
@ -861,29 +857,26 @@ void TrackPanel::OnTimer()
wxCommandEvent dummyEvent; wxCommandEvent dummyEvent;
AudacityProject *p = GetProject(); AudacityProject *p = GetProject();
#ifdef EXPERIMENTAL_LYRICS_WINDOW if ((p->GetAudioIOToken() > 0) &&
if ((p->GetAudioIOToken() > 0) && gAudioIO->IsStreamActive(p->GetAudioIOToken()))
gAudioIO->IsStreamActive(p->GetAudioIOToken())) {
// Update lyrics display.
LyricsWindow* pLyricsWindow = p->GetLyricsWindow();
if (pLyricsWindow)
{ {
// Update lyrics display. Lyrics* pLyricsPanel = pLyricsWindow->GetLyricsPanel();
LyricsWindow* pLyricsWindow = p->GetLyricsWindow(); pLyricsPanel->Update(gAudioIO->GetStreamTime());
if (pLyricsWindow)
{
Lyrics* pLyricsPanel = pLyricsWindow->GetLyricsPanel();
pLyricsPanel->Update(gAudioIO->GetStreamTime());
}
} }
#endif }
#ifdef EXPERIMENTAL_MIXER_BOARD
MixerBoard* pMixerBoard = this->GetMixerBoard(); MixerBoard* pMixerBoard = this->GetMixerBoard();
if (pMixerBoard && if (pMixerBoard &&
(p->GetAudioIOToken() > 0) && (p->GetAudioIOToken() > 0) &&
gAudioIO->IsStreamActive(p->GetAudioIOToken())) gAudioIO->IsStreamActive(p->GetAudioIOToken()))
{ {
pMixerBoard->UpdateMeters(gAudioIO->GetStreamTime(), pMixerBoard->UpdateMeters(gAudioIO->GetStreamTime(),
(p->mLastPlayMode == loopedPlay)); (p->mLastPlayMode == loopedPlay));
} }
#endif
// Check whether we were playing or recording, but the stream has stopped. // Check whether we were playing or recording, but the stream has stopped.
if (p->GetAudioIOToken()>0 && if (p->GetAudioIOToken()>0 &&
@ -896,19 +889,17 @@ void TrackPanel::OnTimer()
//the stream may have been started up after this one finished (by some other project) //the stream may have been started up after this one finished (by some other project)
//in that case reset the buttons don't stop the stream //in that case reset the buttons don't stop the stream
p->GetControlToolBar()->StopPlaying(!gAudioIO->IsStreamActive()); p->GetControlToolBar()->StopPlaying(!gAudioIO->IsStreamActive());
#ifdef EXPERIMENTAL_LYRICS_WINDOW
// Reset lyrics display. // Reset lyrics display.
LyricsWindow* pLyricsWindow = p->GetLyricsWindow(); LyricsWindow* pLyricsWindow = p->GetLyricsWindow();
if (pLyricsWindow) if (pLyricsWindow)
{ {
Lyrics* pLyricsPanel = pLyricsWindow->GetLyricsPanel(); Lyrics* pLyricsPanel = pLyricsWindow->GetLyricsPanel();
pLyricsPanel->Update(p->GetSel0()); pLyricsPanel->Update(p->GetSel0());
} }
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD if (pMixerBoard)
if (pMixerBoard) pMixerBoard->ResetMeters();
pMixerBoard->ResetMeters();
#endif
} }
// Next, check to see if we were playing or recording // Next, check to see if we were playing or recording
@ -1360,14 +1351,12 @@ void TrackPanel::HandleCursorForLastMouseEvent()
HandleCursor(mLastMouseEvent); HandleCursor(mLastMouseEvent);
} }
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* TrackPanel::GetMixerBoard()
MixerBoard* TrackPanel::GetMixerBoard() {
{ AudacityProject *p = GetProject();
AudacityProject *p = GetProject(); wxASSERT(p);
wxASSERT(p); return p->GetMixerBoard();
return p->GetMixerBoard(); }
}
#endif
/// Used to determine whether it is safe or not to perform certain /// Used to determine whether it is safe or not to perform certain
/// edits at the moment. /// edits at the moment.
@ -1768,16 +1757,15 @@ void TrackPanel::HandleSelect(wxMouseEvent & event)
} }
done: done:
SelectionHandleDrag(event, t); SelectionHandleDrag(event, t);
#ifdef EXPERIMENTAL_LYRICS_WINDOW
// Update lyrics display for new selection. // Update lyrics display for new selection.
AudacityProject* pProj = GetActiveProject(); AudacityProject* pProj = GetActiveProject();
LyricsWindow* pLyricsWindow = pProj->GetLyricsWindow(); LyricsWindow* pLyricsWindow = pProj->GetLyricsWindow();
if (pLyricsWindow && pLyricsWindow->IsShown()) if (pLyricsWindow && pLyricsWindow->IsShown())
{ {
Lyrics* pLyricsPanel = pLyricsWindow->GetLyricsPanel(); Lyrics* pLyricsPanel = pLyricsWindow->GetLyricsPanel();
pLyricsPanel->Update(pProj->GetSel0()); pLyricsPanel->Update(pProj->GetSel0());
} }
#endif
} }
/// This function gets called when we're handling selection /// This function gets called when we're handling selection
@ -3491,15 +3479,13 @@ void TrackPanel::RemoveTrack(Track * toRemove)
wxString name = toRemove->GetName(); wxString name = toRemove->GetName();
Track *partner = toRemove->GetLink(); Track *partner = toRemove->GetLink();
#ifdef EXPERIMENTAL_MIXER_BOARD if (toRemove->GetKind() == Track::Wave)
if (toRemove->GetKind() == Track::Wave) {
{ // Update mixer board displayed tracks.
// Update mixer board displayed tracks. MixerBoard* pMixerBoard = this->GetMixerBoard();
MixerBoard* pMixerBoard = this->GetMixerBoard(); if (pMixerBoard)
if (pMixerBoard) pMixerBoard->RemoveTrackCluster((WaveTrack*)toRemove); // Will remove partner shown in same cluster.
pMixerBoard->RemoveTrackCluster((WaveTrack*)toRemove); // Will remove partner shown in same cluster. }
}
#endif
mTracks->Remove(toRemove, true); mTracks->Remove(toRemove, true);
if (partner) { if (partner) {
@ -3638,29 +3624,23 @@ void TrackPanel::HandleSliders(wxMouseEvent &event, bool pan)
float newValue = slider->Get(); float newValue = slider->Get();
WaveTrack *link = (WaveTrack *)mTracks->GetLink(mCapturedTrack); WaveTrack *link = (WaveTrack *)mTracks->GetLink(mCapturedTrack);
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* pMixerBoard = this->GetMixerBoard(); // Update mixer board, too.
MixerBoard* pMixerBoard = this->GetMixerBoard(); // Update mixer board, too.
#endif
if (pan) { if (pan) {
((WaveTrack *)mCapturedTrack)->SetPan(newValue); ((WaveTrack *)mCapturedTrack)->SetPan(newValue);
if (link) if (link)
link->SetPan(newValue); link->SetPan(newValue);
#ifdef EXPERIMENTAL_MIXER_BOARD if (pMixerBoard)
if (pMixerBoard) pMixerBoard->UpdatePan((WaveTrack*)mCapturedTrack);
pMixerBoard->UpdatePan((WaveTrack*)mCapturedTrack);
#endif
} }
else { else {
((WaveTrack *)mCapturedTrack)->SetGain(newValue); ((WaveTrack *)mCapturedTrack)->SetGain(newValue);
if (link) if (link)
link->SetGain(newValue); link->SetGain(newValue);
#ifdef EXPERIMENTAL_MIXER_BOARD if (pMixerBoard)
if (pMixerBoard) pMixerBoard->UpdateGain((WaveTrack*)mCapturedTrack);
pMixerBoard->UpdateGain((WaveTrack*)mCapturedTrack);
#endif
} }
VisibleTrackIterator iter(GetProject()); VisibleTrackIterator iter(GetProject());
@ -3800,11 +3780,9 @@ void TrackPanel::HandleLabelClick(wxMouseEvent & event)
if (event.ShiftDown()) { if (event.ShiftDown()) {
mTracks->Select(t, !t->GetSelected()); mTracks->Select(t, !t->GetSelected());
Refresh(false); Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* pMixerBoard = this->GetMixerBoard();
MixerBoard* pMixerBoard = this->GetMixerBoard(); if (pMixerBoard && (t->GetKind() == Track::Wave))
if (pMixerBoard && (t->GetKind() == Track::Wave)) pMixerBoard->RefreshTrackCluster((WaveTrack*)t);
pMixerBoard->RefreshTrackCluster((WaveTrack*)t);
#endif
return; return;
} }
@ -3814,11 +3792,9 @@ void TrackPanel::HandleLabelClick(wxMouseEvent & event)
SelectTrackLength(t); SelectTrackLength(t);
this->Refresh(false); this->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* pMixerBoard = this->GetMixerBoard();
MixerBoard* pMixerBoard = this->GetMixerBoard(); if (pMixerBoard)
if (pMixerBoard) pMixerBoard->RefreshTrackClusters();
pMixerBoard->RefreshTrackClusters();
#endif
if (!unsafe) if (!unsafe)
MakeParentModifyState(); MakeParentModifyState();
@ -3835,25 +3811,19 @@ void TrackPanel::HandleRearrange(wxMouseEvent & event)
return; return;
} }
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* pMixerBoard = this->GetMixerBoard(); // Update mixer board, too.
MixerBoard* pMixerBoard = this->GetMixerBoard(); // Update mixer board, too.
#endif
wxString dir; wxString dir;
if (event.m_y < mMoveUpThreshold || event.m_y < 0) { if (event.m_y < mMoveUpThreshold || event.m_y < 0) {
mTracks->MoveUp(mCapturedTrack); mTracks->MoveUp(mCapturedTrack);
dir = _("up"); dir = _("up");
#ifdef EXPERIMENTAL_MIXER_BOARD if (pMixerBoard && (mCapturedTrack->GetKind() == Track::Wave))
if (pMixerBoard && (mCapturedTrack->GetKind() == Track::Wave)) pMixerBoard->MoveTrackCluster((WaveTrack*)mCapturedTrack, true);
pMixerBoard->MoveTrackCluster((WaveTrack*)mCapturedTrack, true);
#endif
} }
else if (event.m_y > mMoveDownThreshold || event.m_y > GetRect().GetHeight()) { else if (event.m_y > mMoveDownThreshold || event.m_y > GetRect().GetHeight()) {
mTracks->MoveDown(mCapturedTrack); mTracks->MoveDown(mCapturedTrack);
dir = _("down"); dir = _("down");
#ifdef EXPERIMENTAL_MIXER_BOARD if (pMixerBoard && (mCapturedTrack->GetKind() == Track::Wave))
if (pMixerBoard && (mCapturedTrack->GetKind() == Track::Wave)) pMixerBoard->MoveTrackCluster((WaveTrack*)mCapturedTrack, false);
pMixerBoard->MoveTrackCluster((WaveTrack*)mCapturedTrack, false);
#endif
} }
else else
{ {
@ -6176,15 +6146,13 @@ void TrackPanel::OnTrackMute(bool shiftDown, Track *t)
} }
GetProject()->HandleTrackMute(t, shiftDown); GetProject()->HandleTrackMute(t, shiftDown);
#ifdef EXPERIMENTAL_MIXER_BOARD // Update mixer board, too.
// Update mixer board, too. MixerBoard* pMixerBoard = this->GetMixerBoard();
MixerBoard* pMixerBoard = this->GetMixerBoard(); if (pMixerBoard)
if (pMixerBoard) {
{ pMixerBoard->UpdateMute(); // Update for all tracks.
pMixerBoard->UpdateMute(); // Update for all tracks. pMixerBoard->UpdateSolo(); // Update for all tracks.
pMixerBoard->UpdateSolo(); // Update for all tracks. }
}
#endif
mAx->Updated(); mAx->Updated();
Refresh(false); Refresh(false);
@ -6201,15 +6169,13 @@ void TrackPanel::OnTrackSolo(bool shiftDown, Track *t)
} }
GetProject()->HandleTrackSolo(t, shiftDown); GetProject()->HandleTrackSolo(t, shiftDown);
#ifdef EXPERIMENTAL_MIXER_BOARD // Update mixer board, too.
// Update mixer board, too. MixerBoard* pMixerBoard = this->GetMixerBoard();
MixerBoard* pMixerBoard = this->GetMixerBoard(); if (pMixerBoard)
if (pMixerBoard) {
{ pMixerBoard->UpdateMute(); // Update for all tracks.
pMixerBoard->UpdateMute(); // Update for all tracks. pMixerBoard->UpdateSolo(); // Update for all tracks.
pMixerBoard->UpdateSolo(); // Update for all tracks. }
}
#endif
mAx->Updated(); mAx->Updated();
Refresh(false); Refresh(false);
@ -6750,11 +6716,9 @@ void TrackPanel::OnMoveTrack(wxCommandEvent & event)
wxASSERT(event.GetId() == OnMoveUpID || event.GetId() == OnMoveDownID); wxASSERT(event.GetId() == OnMoveUpID || event.GetId() == OnMoveDownID);
bool bUp = (OnMoveUpID == event.GetId()); bool bUp = (OnMoveUpID == event.GetId());
if (mTracks->Move(mPopupMenuTarget, bUp)) { if (mTracks->Move(mPopupMenuTarget, bUp)) {
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* pMixerBoard = this->GetMixerBoard(); // Update mixer board, too.
MixerBoard* pMixerBoard = this->GetMixerBoard(); // Update mixer board, too. if (pMixerBoard && (mPopupMenuTarget->GetKind() == Track::Wave))
if (pMixerBoard && (mPopupMenuTarget->GetKind() == Track::Wave)) pMixerBoard->MoveTrackCluster((WaveTrack*)mPopupMenuTarget, bUp);
pMixerBoard->MoveTrackCluster((WaveTrack*)mPopupMenuTarget, bUp);
#endif
MakeParentPushState(wxString::Format(_("Moved '%s' %s"), MakeParentPushState(wxString::Format(_("Moved '%s' %s"),
mPopupMenuTarget->GetName(). mPopupMenuTarget->GetName().
@ -6801,11 +6765,10 @@ void TrackPanel::OnSetName(wxCommandEvent &event)
t->GetLink()->SetName(newName); t->GetLink()->SetName(newName);
} }
} }
#ifdef EXPERIMENTAL_MIXER_BOARD
MixerBoard* pMixerBoard = this->GetMixerBoard(); MixerBoard* pMixerBoard = this->GetMixerBoard();
if (pMixerBoard && (t->GetKind() == Track::Wave)) if (pMixerBoard && (t->GetKind() == Track::Wave))
pMixerBoard->UpdateName((WaveTrack*)t); pMixerBoard->UpdateName((WaveTrack*)t);
#endif
MakeParentPushState(wxString::Format(_("Renamed '%s' to '%s'"), MakeParentPushState(wxString::Format(_("Renamed '%s' to '%s'"),
defaultStr.c_str(), defaultStr.c_str(),

View File

@ -34,9 +34,7 @@ class AdornedRulerPanel;
class LWSlider; class LWSlider;
class ControlToolBar; //Needed because state of controls can affect what gets drawn. class ControlToolBar; //Needed because state of controls can affect what gets drawn.
class ToolsToolBar; //Needed because state of controls can affect what gets drawn. class ToolsToolBar; //Needed because state of controls can affect what gets drawn.
#ifdef EXPERIMENTAL_MIXER_BOARD class MixerBoard;
class MixerBoard;
#endif
class AudacityProject; class AudacityProject;
class TrackPanelAx; class TrackPanelAx;
@ -245,9 +243,7 @@ class TrackPanel:public wxPanel {
void UpdateVRulerSize(); void UpdateVRulerSize();
private: private:
#ifdef EXPERIMENTAL_MIXER_BOARD MixerBoard* GetMixerBoard();
MixerBoard* GetMixerBoard();
#endif
bool IsUnsafe(); bool IsUnsafe();
bool HandleLabelTrackMouseEvent(LabelTrack * lTrack, wxRect &r, wxMouseEvent & event); bool HandleLabelTrackMouseEvent(LabelTrack * lTrack, wxRect &r, wxMouseEvent & event);
bool HandleTrackLocationMouseEvent(WaveTrack * track, wxRect &r, wxMouseEvent &event); bool HandleTrackLocationMouseEvent(WaveTrack * track, wxRect &r, wxMouseEvent &event);