1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-31 07:59: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
#endif
#define EXPERIMENTAL_LYRICS_WINDOW //vvv Vaughan, 2009-07-06
#define EXPERIMENTAL_MIXER_BOARD //vvv Vaughan, 2009-07-07
#if USE_PORTMIXER
//Automatically tries to find an acceptable input volume
//#define AUTOMATED_INPUT_LEVEL_ADJUSTMENT
@ -154,15 +151,3 @@ extern void AddPages( AudacityProject * pProj, GuiFactory & Factory, wxNotebo
//#define EXPERIMENTAL_TRUNC_SILENCE
#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"
#ifdef EXPERIMENTAL_LYRICS_WINDOW
#include "LyricsWindow.h"
#include "Lyrics.h"
@ -141,4 +140,3 @@ void LyricsWindow::OnStyle_Highlight(wxCommandEvent &evt)
mLyricsPanel->SetLyricsStyle(Lyrics::kHighlightLyrics);
}
#endif // EXPERIMENTAL_LYRICS_WINDOW

View File

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

View File

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

View File

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

View File

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

View File

@ -9,7 +9,6 @@
**********************************************************************/
#include "Experimental.h"
#ifdef EXPERIMENTAL_MIXER_BOARD
#ifndef __AUDACITY_MIXER_BOARD__
#define __AUDACITY_MIXER_BOARD__
@ -270,5 +269,4 @@ public:
#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 "Dependencies.h"
#include "HistoryWindow.h"
#ifdef EXPERIMENTAL_LYRICS_WINDOW
#include "Lyrics.h"
#include "LyricsWindow.h"
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
#include "MixerBoard.h"
#endif
#include "Lyrics.h"
#include "LyricsWindow.h"
#include "MixerBoard.h"
#include "Internat.h"
#include "import/Import.h"
#include "LabelTrack.h"
@ -735,13 +731,9 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
mAutoScrolling(false),
mActive(true),
mHistoryWindow(NULL),
#ifdef EXPERIMENTAL_LYRICS_WINDOW
mLyricsWindow(NULL),
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
mMixerBoard(NULL),
mMixerBoardFrame(NULL),
#endif
mLyricsWindow(NULL),
mMixerBoard(NULL),
mMixerBoardFrame(NULL),
mFreqWindow(NULL),
mToolManager(NULL),
mAudioIOToken(-1),
@ -1041,10 +1033,8 @@ void AudacityProject::UpdatePrefs()
if (mTrackPanel) {
mTrackPanel->UpdatePrefs();
}
#ifdef EXPERIMENTAL_MIXER_BOARD
if (mMixerBoard)
mMixerBoard->ResizeTrackClusters(); // in case prefs "/GUI/Solo" changed
#endif
if (mMixerBoard)
mMixerBoard->ResizeTrackClusters(); // in case prefs "/GUI/Solo" changed
SetSnapTo(gPrefs->Read(wxT("/SnapTo"), 0L)!=0);
@ -3494,12 +3484,8 @@ void AudacityProject::InitialState()
ModifyUndoMenus();
UpdateMenus();
#ifdef EXPERIMENTAL_LYRICS_WINDOW
this->UpdateLyrics();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
this->UpdateMixerBoard();
#endif
this->UpdateLyrics();
this->UpdateMixerBoard();
}
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.
// Could categorize these state changes, but for now...
// 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.
#ifdef EXPERIMENTAL_LYRICS_WINDOW
if (!gAudioIO->IsStreamActive(GetAudioIOToken()))
this->UpdateLyrics();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
if (!gAudioIO->IsStreamActive(GetAudioIOToken()))
this->UpdateMixerBoard();
#endif
if (!gAudioIO->IsStreamActive(GetAudioIOToken()))
{
this->UpdateLyrics();
this->UpdateMixerBoard();
}
if (GetTracksFitVerticallyZoomed())
this->DoZoomFitV();
@ -3592,12 +3574,8 @@ void AudacityProject::PopState(TrackList * l)
HandleResize();
UpdateMenus();
#ifdef EXPERIMENTAL_LYRICS_WINDOW
this->UpdateLyrics();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
this->UpdateMixerBoard();
#endif
this->UpdateLyrics();
this->UpdateMixerBoard();
AutoSave();
}
@ -3612,47 +3590,39 @@ void AudacityProject::SetStateTo(unsigned int n)
mTrackPanel->SetFocusedTrack(NULL);
mTrackPanel->Refresh(false);
ModifyUndoMenus();
#ifdef EXPERIMENTAL_LYRICS_WINDOW
this->UpdateLyrics();
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
this->UpdateMixerBoard();
#endif
this->UpdateLyrics();
this->UpdateMixerBoard();
}
#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);
LabelTrack* pLabelTrack = (LabelTrack*)(iter.First()); // Lyrics come from only the first label track.
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());
mLyricsWindow = new LyricsWindow(this);
mLyricsWindow->Show(false); // Don't show it. Need to update content regardless.
}
#endif
#ifdef EXPERIMENTAL_MIXER_BOARD
void AudacityProject::UpdateMixerBoard()
{
if (!mMixerBoard)
return;
mMixerBoard->UpdateTrackClusters();
mMixerBoard->UpdateMeters(gAudioIO->GetStreamTime(), (mLastPlayMode == loopedPlay));
}
#endif
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());
}
void AudacityProject::UpdateMixerBoard()
{
if (!mMixerBoard)
return;
mMixerBoard->UpdateTrackClusters();
mMixerBoard->UpdateMeters(gAudioIO->GetStreamTime(), (mLastPlayMode == loopedPlay));
}
//
// Clipboard methods
@ -3721,10 +3691,8 @@ void AudacityProject::SelectNone()
t = iter.Next();
}
mTrackPanel->Refresh(false);
#ifdef EXPERIMENTAL_MIXER_BOARD
if (mMixerBoard)
mMixerBoard->Refresh(false);
#endif
if (mMixerBoard)
mMixerBoard->Refresh(false);
}
// Utility function called by other zoom methods

View File

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

View File

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

View File

@ -34,9 +34,7 @@ class AdornedRulerPanel;
class LWSlider;
class ControlToolBar; //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;
#endif
class MixerBoard;
class AudacityProject;
class TrackPanelAx;
@ -245,9 +243,7 @@ class TrackPanel:public wxPanel {
void UpdateVRulerSize();
private:
#ifdef EXPERIMENTAL_MIXER_BOARD
MixerBoard* GetMixerBoard();
#endif
MixerBoard* GetMixerBoard();
bool IsUnsafe();
bool HandleLabelTrackMouseEvent(LabelTrack * lTrack, wxRect &r, wxMouseEvent & event);
bool HandleTrackLocationMouseEvent(WaveTrack * track, wxRect &r, wxMouseEvent &event);