mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-03 09:29:30 +02:00
Move gain and pan details out of TrackPanel.cpp
This commit is contained in:
parent
6bfd3ee54a
commit
45e91f165a
@ -2841,34 +2841,87 @@ void AudacityProject::PrevWindow()
|
||||
w->Raise();
|
||||
}
|
||||
|
||||
//The following methods operate controls on specified tracks,
|
||||
//This will pop up the track panning dialog for specified track
|
||||
void AudacityProject::OnTrackPan()
|
||||
{
|
||||
mTrackPanel->OnTrackPan();
|
||||
Track *const track = mTrackPanel->GetFocusedTrack();
|
||||
if (!track || (track->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackPanel->GetTrackInfo()->PanSlider
|
||||
(static_cast<WaveTrack*>(track));
|
||||
if (slider->ShowDialog()) {
|
||||
SetTrackPan(track, slider);
|
||||
}
|
||||
}
|
||||
|
||||
void AudacityProject::OnTrackPanLeft()
|
||||
{
|
||||
mTrackPanel->OnTrackPanLeft();
|
||||
Track *const track = mTrackPanel->GetFocusedTrack();
|
||||
if (!track || (track->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackPanel->GetTrackInfo()->PanSlider
|
||||
(static_cast<WaveTrack*>(track));
|
||||
slider->Decrease(1);
|
||||
SetTrackPan(track, slider);
|
||||
}
|
||||
|
||||
void AudacityProject::OnTrackPanRight()
|
||||
{
|
||||
mTrackPanel->OnTrackPanRight();
|
||||
Track *const track = mTrackPanel->GetFocusedTrack();
|
||||
if (!track || (track->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackPanel->GetTrackInfo()->PanSlider
|
||||
(static_cast<WaveTrack*>(track));
|
||||
slider->Increase(1);
|
||||
SetTrackPan(track, slider);
|
||||
}
|
||||
|
||||
void AudacityProject::OnTrackGain()
|
||||
{
|
||||
mTrackPanel->OnTrackGain();
|
||||
/// This will pop up the track gain dialog for specified track
|
||||
Track *const track = mTrackPanel->GetFocusedTrack();
|
||||
if (!track || (track->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackPanel->GetTrackInfo()->GainSlider
|
||||
(static_cast<WaveTrack*>(track));
|
||||
if (slider->ShowDialog()) {
|
||||
SetTrackGain(track, slider);
|
||||
}
|
||||
}
|
||||
|
||||
void AudacityProject::OnTrackGainInc()
|
||||
{
|
||||
mTrackPanel->OnTrackGainInc();
|
||||
Track *const track = mTrackPanel->GetFocusedTrack();
|
||||
if (!track || (track->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackPanel->GetTrackInfo()->GainSlider
|
||||
(static_cast<WaveTrack*>(track));
|
||||
slider->Increase(1);
|
||||
SetTrackGain(track, slider);
|
||||
}
|
||||
|
||||
void AudacityProject::OnTrackGainDec()
|
||||
{
|
||||
mTrackPanel->OnTrackGainDec();
|
||||
Track *const track = mTrackPanel->GetFocusedTrack();
|
||||
if (!track || (track->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackPanel->GetTrackInfo()->GainSlider
|
||||
(static_cast<WaveTrack*>(track));
|
||||
slider->Decrease(1);
|
||||
SetTrackGain(track, slider);
|
||||
}
|
||||
|
||||
void AudacityProject::OnTrackMenu()
|
||||
|
@ -120,6 +120,7 @@ scroll information. It also has some status flags.
|
||||
#include "effects/Effect.h"
|
||||
#include "prefs/PrefsDialog.h"
|
||||
#include "widgets/LinkingHtmlWindow.h"
|
||||
#include "widgets/ASlider.h"
|
||||
#include "widgets/ErrorDialog.h"
|
||||
#include "widgets/Ruler.h"
|
||||
#include "widgets/Warning.h"
|
||||
@ -4881,6 +4882,40 @@ void AudacityProject::DoTrackSolo(Track *t, bool exclusive)
|
||||
mTrackPanel->Refresh(false);
|
||||
}
|
||||
|
||||
void AudacityProject::SetTrackGain(Track * track, LWSlider * slider)
|
||||
{
|
||||
wxASSERT(track);
|
||||
if (track->GetKind() != Track::Wave)
|
||||
return;
|
||||
float newValue = slider->Get();
|
||||
|
||||
WaveTrack *const link = static_cast<WaveTrack*>(mTracks->GetLink(track));
|
||||
static_cast<WaveTrack*>(track)->SetGain(newValue);
|
||||
if (link)
|
||||
link->SetGain(newValue);
|
||||
|
||||
PushState(_("Adjusted gain"), _("Gain"), PUSH_CONSOLIDATE);
|
||||
|
||||
GetTrackPanel()->RefreshTrack(track);
|
||||
}
|
||||
|
||||
void AudacityProject::SetTrackPan(Track * track, LWSlider * slider)
|
||||
{
|
||||
wxASSERT(track);
|
||||
if (track->GetKind() != Track::Wave)
|
||||
return;
|
||||
float newValue = slider->Get();
|
||||
|
||||
WaveTrack *const link = static_cast<WaveTrack*>(mTracks->GetLink(track));
|
||||
static_cast<WaveTrack*>(track)->SetPan(newValue);
|
||||
if (link)
|
||||
link->SetPan(newValue);
|
||||
|
||||
PushState(_("Adjusted Pan"), _("Pan"), PUSH_CONSOLIDATE);
|
||||
|
||||
GetTrackPanel()->RefreshTrack(track);
|
||||
}
|
||||
|
||||
void AudacityProject::HandleTrackMute(Track *t, const bool exclusive)
|
||||
{
|
||||
// "exclusive" mute means mute the chosen track and unmute all others.
|
||||
|
@ -89,6 +89,8 @@ struct AudioIOStartStreamOptions;
|
||||
class WaveTrackArray;
|
||||
class Regions;
|
||||
|
||||
class LWSlider;
|
||||
|
||||
AudacityProject *CreateNewAudacityProject();
|
||||
AUDACITY_DLL_API AudacityProject *GetActiveProject();
|
||||
void RedrawAllProjects();
|
||||
@ -337,6 +339,9 @@ class AUDACITY_DLL_API AudacityProject: public wxFrame,
|
||||
|
||||
void DoTrackMute(Track *pTrack, bool exclusive);
|
||||
void DoTrackSolo(Track *pTrack, bool exclusive);
|
||||
void SetTrackGain(Track * track, LWSlider * slider);
|
||||
void SetTrackPan(Track * track, LWSlider * slider);
|
||||
|
||||
|
||||
// "exclusive" mute means mute the chosen track and unmute all others.
|
||||
void HandleTrackMute(Track *t, const bool exclusive);
|
||||
|
@ -6588,7 +6588,11 @@ void TrackPanel::OnMouseEvent(wxMouseEvent & event)
|
||||
|
||||
if (event.Leaving() && !event.ButtonIsDown(wxMOUSE_BTN_ANY))
|
||||
{
|
||||
if (mMouseCapture != IsPanSliding && mMouseCapture != IsGainSliding)
|
||||
// PRL: was this test really needed? It interfered with my refactoring
|
||||
// that tried to eliminate those enum values.
|
||||
// I think it was never true, that mouse capture was pan or gain sliding,
|
||||
// but no mouse button was down.
|
||||
// if (mMouseCapture != IsPanSliding && mMouseCapture != IsGainSliding)
|
||||
{
|
||||
SetCapturedTrack(NULL);
|
||||
#if defined(__WXMAC__)
|
||||
@ -8342,117 +8346,6 @@ void TrackPanel::ScrollIntoView(int x)
|
||||
ScrollIntoView(mViewInfo->PositionToTime(x, GetLeftOffset()));
|
||||
}
|
||||
|
||||
//The following methods operate controls on specified tracks,
|
||||
//This will pop up the track panning dialog for specified track
|
||||
void TrackPanel::OnTrackPan()
|
||||
{
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t || (t->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackInfo.PanSlider((WaveTrack *) t);
|
||||
if (slider->ShowDialog()) {
|
||||
SetTrackPan(t, slider);
|
||||
}
|
||||
}
|
||||
|
||||
void TrackPanel::OnTrackPanLeft()
|
||||
{
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t || (t->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackInfo.PanSlider((WaveTrack *) t);
|
||||
slider->Decrease(1);
|
||||
SetTrackPan(t, slider);
|
||||
}
|
||||
|
||||
void TrackPanel::OnTrackPanRight()
|
||||
{
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t || (t->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackInfo.PanSlider((WaveTrack *) t);
|
||||
slider->Increase(1);
|
||||
SetTrackPan(t, slider);
|
||||
}
|
||||
|
||||
void TrackPanel::SetTrackPan(Track * t, LWSlider * s)
|
||||
{
|
||||
wxASSERT(t);
|
||||
if( t->GetKind() != Track::Wave )
|
||||
return;
|
||||
float newValue = s->Get();
|
||||
|
||||
WaveTrack *link = (WaveTrack *)mTracks->GetLink(t);
|
||||
((WaveTrack*)t)->SetPan(newValue);
|
||||
if (link)
|
||||
link->SetPan(newValue);
|
||||
|
||||
MakeParentPushState(_("Adjusted Pan"), _("Pan"), PUSH_CONSOLIDATE );
|
||||
|
||||
RefreshTrack(t);
|
||||
}
|
||||
|
||||
/// This will pop up the track gain dialog for specified track
|
||||
void TrackPanel::OnTrackGain()
|
||||
{
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t || (t->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackInfo.GainSlider((WaveTrack *) t);
|
||||
if (slider->ShowDialog()) {
|
||||
SetTrackGain(t, slider);
|
||||
}
|
||||
}
|
||||
|
||||
void TrackPanel::OnTrackGainInc()
|
||||
{
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t || (t->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackInfo.GainSlider((WaveTrack *) t);
|
||||
slider->Increase(1);
|
||||
SetTrackGain(t, slider);
|
||||
}
|
||||
|
||||
void TrackPanel::OnTrackGainDec()
|
||||
{
|
||||
Track *t = GetFocusedTrack();
|
||||
if (!t || (t->GetKind() != Track::Wave)) {
|
||||
return;
|
||||
}
|
||||
|
||||
LWSlider *slider = mTrackInfo.GainSlider((WaveTrack *) t);
|
||||
slider->Decrease(1);
|
||||
SetTrackGain(t, slider);
|
||||
}
|
||||
|
||||
void TrackPanel::SetTrackGain(Track * t, LWSlider * s)
|
||||
{
|
||||
wxASSERT(t);
|
||||
if( t->GetKind() != Track::Wave )
|
||||
return ;
|
||||
float newValue = s->Get();
|
||||
|
||||
WaveTrack *link = (WaveTrack *)mTracks->GetLink(t);
|
||||
((WaveTrack*)t)->SetGain(newValue);
|
||||
if (link)
|
||||
link->SetGain(newValue);
|
||||
|
||||
MakeParentPushState(_("Adjusted gain"), _("Gain"), PUSH_CONSOLIDATE);
|
||||
|
||||
RefreshTrack(t);
|
||||
}
|
||||
|
||||
void TrackPanel::OnTrackMenu(Track *t)
|
||||
{
|
||||
if(!t) {
|
||||
|
@ -104,6 +104,7 @@ private:
|
||||
void GetMinimizeRect(const wxRect & rect, wxRect &dest) const;
|
||||
void GetSyncLockIconRect(const wxRect & rect, wxRect &dest) const;
|
||||
|
||||
public:
|
||||
LWSlider * GainSlider(WaveTrack *t) const;
|
||||
LWSlider * PanSlider(WaveTrack *t) const;
|
||||
|
||||
@ -198,12 +199,6 @@ class AUDACITY_DLL_API TrackPanel:public wxPanel {
|
||||
virtual void ScrollIntoView(double pos);
|
||||
virtual void ScrollIntoView(int x);
|
||||
|
||||
virtual void OnTrackPan();
|
||||
virtual void OnTrackPanLeft();
|
||||
virtual void OnTrackPanRight();
|
||||
virtual void OnTrackGain();
|
||||
virtual void OnTrackGainDec();
|
||||
virtual void OnTrackGainInc();
|
||||
virtual void OnTrackMenu(Track *t = NULL);
|
||||
virtual void OnVRulerMenu(Track *t, wxMouseEvent *pEvent = NULL);
|
||||
virtual void OnTrackClose();
|
||||
@ -506,9 +501,6 @@ protected:
|
||||
virtual void SplitStereo(bool stereo);
|
||||
virtual void OnMergeStereo(wxCommandEvent &event);
|
||||
|
||||
virtual void SetTrackPan(Track * t, LWSlider * s);
|
||||
virtual void SetTrackGain(Track * t, LWSlider * s);
|
||||
|
||||
virtual void RemoveTrack(Track * toRemove);
|
||||
|
||||
// Find track info by coordinate
|
||||
@ -577,7 +569,10 @@ protected:
|
||||
virtual bool MoveClipToTrack(WaveClip *clip, WaveTrack* dst);
|
||||
|
||||
TrackInfo mTrackInfo;
|
||||
public:
|
||||
TrackInfo *GetTrackInfo() { return &mTrackInfo; }
|
||||
|
||||
protected:
|
||||
TrackPanelListener *mListener;
|
||||
|
||||
TrackList *mTracks;
|
||||
|
Loading…
x
Reference in New Issue
Block a user