14#ifndef __AUDACITY_MIXER_BOARD__
15#define __AUDACITY_MIXER_BOARD__
18#include <wx/scrolwin.h>
53 void OnFocus(wxFocusEvent &event);
82 const std::shared_ptr<PlayableTrack> &pTrack,
83 const wxPoint& pos = wxDefaultPosition,
84 const wxSize&
size = wxDefaultSize);
89#ifdef EXPERIMENTAL_MIDI_OUT
98#ifdef EXPERIMENTAL_MIDI_OUT
99 void HandleSliderVelocity(
const bool bWantPushState =
false);
106 void UpdateMeter(
const double t0,
const double t1);
116 void OnPaint(wxPaintEvent& evt);
120#ifdef EXPERIMENTAL_MIDI_OUT
121 void OnSlider_Velocity(wxCommandEvent& event);
143#ifdef EXPERIMENTAL_MIDI_OUT
149 DECLARE_EVENT_TABLE()
156 MusicalInstrument(std::unique_ptr<wxBitmap> &&pBitmap,
const wxString & strXPMfilename);
175 const wxPoint& pos = wxDefaultPosition,
176 const wxSize&
size = wxDefaultSize,
177 long style = wxHSCROLL | wxVSCROLL);
188 DECLARE_EVENT_TABLE()
202 const wxPoint& pos = wxDefaultPosition,
203 const wxSize&
size = wxDefaultSize);
221 void UpdateMeters(
const double t1,
const bool bLoopedPlay);
236 void OnPaint(wxPaintEvent& evt);
237 void OnSize(wxSizeEvent &evt);
267 DECLARE_EVENT_TABLE()
285 void OnSize(wxSizeEvent &evt);
296 DECLARE_EVENT_TABLE()
const TranslatableString name
std::vector< std::unique_ptr< MusicalInstrument > > MusicalInstrumentArray
ASlider is a custom slider, allowing for a slicker look and feel.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
MeterPanel is a panel that paints the meter used for monitoring or playback.
void OnKeyEvent(wxKeyEvent &evt)
void OnMaximize(wxMaximizeEvent &event)
Observer::Subscription mTitleChangeSubscription
void OnCloseWindow(wxCloseEvent &WXUNUSED(event))
AudacityProject * mProject
MixerBoardFrame(AudacityProject *parent)
void OnSize(wxSizeEvent &evt)
virtual ~MixerBoardFrame()
void Recreate(AudacityProject *pProject)
void OnSize(wxSizeEvent &evt)
void OnStartStop(AudioIOEvent)
int FindMixerTrackCluster(const PlayableTrack *pTrack, MixerTrackCluster **hMixerTrackCluster) const
std::unique_ptr< wxImage > mImageMuteDownWhileSolo
void ResizeTrackClusters()
MusicalInstrumentArray mMusicalInstruments
void UpdateMeters(const double t1, const bool bLoopedPlay)
void OnPaint(wxPaintEvent &evt)
std::unique_ptr< wxImage > mImageMuteDown
std::unique_ptr< wxImage > mImageMuteDisabled
std::unique_ptr< wxImage > mImageMuteOver
std::unique_ptr< wxImage > mImageSoloDown
void MakeButtonBitmap(wxMemoryDC &dc, wxBitmap &bitmap, wxRect &bev, const TranslatableString &str, bool up)
void UpdatePrefs() override
void OnTimer(Observer::Message)
MixerBoardScrolledWindow * mScrolledWindow
std::unique_ptr< wxImage > mImageMuteUp
wxBitmap * GetMusicalInstrumentBitmap(const Track *pTrack)
void OnTrackChanged(const TrackListEvent &event)
void UpdateTrackClusters()
Observer::Subscription mTrackPanelSubscription
Observer::Subscription mAudioIOSubscription
void ResetMeters(const bool bResetClipping)
MixerBoard(AudacityProject *pProject, wxFrame *parent, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
std::unique_ptr< wxImage > mImageSoloDisabled
std::unique_ptr< wxImage > mImageSoloUp
int GetTrackClustersWidth()
void RemoveTrackCluster(size_t nIndex)
void CreateMuteSoloImages()
std::unique_ptr< wxImage > mImageSoloOver
void LoadMusicalInstruments()
AudacityProject * mProject
std::vector< MixerTrackCluster * > mMixerTrackClusters
void RefreshTrackClusters(bool bEraseBackground=true)
Observer::Subscription mPlaybackScrollerSubscription
wxBitmapButton * mBitmapButton_MusicalInstrument
void OnSlider_Gain(wxCommandEvent &event)
void HandleSliderGain(const bool bWantPushState=false)
MixerTrackSlider * mSlider_Gain
void UpdateForStateChange()
void OnButton_MusicalInstrument(wxCommandEvent &event)
std::shared_ptr< PlayableTrack > mTrack
AudacityProject * mProject
void ResetMeter(const bool bResetClipping)
void OnSlider_Pan(wxCommandEvent &event)
WaveTrack * GetWave() const
AButton * mToggleButton_Mute
wxWeakRef< MeterPanel > mMeter
void UpdateMeter(const double t0, const double t1)
void OnPaint(wxPaintEvent &evt)
void OnButton_Mute(wxCommandEvent &event)
void HandleSelect(bool bShiftDown, bool bControlDown)
void OnKeyEvent(wxKeyEvent &event)
void OnMouseEvent(wxMouseEvent &event)
MixerTrackCluster(wxWindow *parent, MixerBoard *grandParent, AudacityProject *project, const std::shared_ptr< PlayableTrack > &pTrack, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
virtual ~MixerTrackCluster()
void OnButton_Solo(wxCommandEvent &event)
MixerTrackSlider * mSlider_Pan
WaveTrack * GetRight() const
void HandleSliderPan(const bool bWantPushState=false)
auStaticText * mStaticText_TrackName
AButton * mToggleButton_Solo
void OnCaptureKey(wxCommandEvent &event)
void OnFocus(wxFocusEvent &event)
void OnMouseEvent(wxMouseEvent &event)
virtual ~MixerTrackSlider()
MixerTrackSlider(wxWindow *parent, wxWindowID id, const TranslatableString &name, const wxPoint &pos, const wxSize &size, const ASlider::Options &options=ASlider::Options{})
MusicalInstrument(std::unique_ptr< wxBitmap > &&pBitmap, const wxString &strXPMfilename)
virtual ~MusicalInstrument()
std::unique_ptr< wxBitmap > mBitmap
A Track that is used for Midi notes. (Somewhat old code).
A move-only handle representing a connection to a Publisher.
AudioTrack subclass that can also be audibly replayed by the program.
A listener notified of changes in preferences.
Abstract base class for an object holding data associated with points on a time axis.
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Holds a msgid for the translation catalog; may also bind format arguments.
A Track that contains audio waveform data.
is like wxStaticText, except it can be themed. wxStaticText can't be.
Default message type for Publisher.
Notification of changes in individual tracks of TrackList, or of TrackList's composition.