14#ifndef __AUDACITY_MIXER_BOARD__
15#define __AUDACITY_MIXER_BOARD__
18#include <wx/scrolwin.h>
56 void OnFocus(wxFocusEvent &event);
87 const wxPoint& pos = wxDefaultPosition,
88 const wxSize&
size = wxDefaultSize);
106 void UpdateMeter(
const double t0,
const double t1);
116 void OnPaint(wxPaintEvent& evt);
145 DECLARE_EVENT_TABLE()
152 MusicalInstrument(std::unique_ptr<wxBitmap> &&pBitmap,
const wxString & strXPMfilename);
171 const wxPoint& pos = wxDefaultPosition,
172 const wxSize&
size = wxDefaultSize,
173 long style = wxHSCROLL | wxVSCROLL);
184 DECLARE_EVENT_TABLE()
198 const wxPoint& pos = wxDefaultPosition,
199 const wxSize&
size = wxDefaultSize);
217 void UpdateMeters(
const double t1,
const bool bLoopedPlay);
232 void OnPaint(wxPaintEvent& evt);
233 void OnSize(wxSizeEvent &evt);
263 DECLARE_EVENT_TABLE()
281 void OnSize(wxSizeEvent &evt);
292 DECLARE_EVENT_TABLE()
std::vector< std::unique_ptr< MusicalInstrument > > MusicalInstrumentArray
std::vector< std::vector< AudioSegmentSampleView > > ChannelGroupSampleView
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
void HandleSliderVelocity(const bool bWantPushState=false)
MixerTrackCluster(wxWindow *parent, MixerBoard *grandParent, AudacityProject *project, PlayableTrack &track, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
wxBitmapButton * mBitmapButton_MusicalInstrument
void OnSlider_Gain(wxCommandEvent &event)
void HandleSliderGain(const bool bWantPushState=false)
void UpdateForStateChange()
void OnButton_MusicalInstrument(wxCommandEvent &event)
std::shared_ptr< PlayableTrack > mTrack
Invariant not null.
AudacityProject * mProject
NoteTrack * GetNote() const
void ResetMeter(const bool bResetClipping)
void OnSlider_Pan(wxCommandEvent &event)
WaveTrack * GetWave() const
AButton * mToggleButton_Mute
ChannelGroupSampleView mSampleView
wxWeakRef< MeterPanel > mMeter
MixerTrackSlider * mSlider_Volume
void UpdateMeter(const double t0, const double t1)
void OnPaint(wxPaintEvent &evt)
void OnButton_Mute(wxCommandEvent &event)
WaveChannel * GetRight() const
void HandleSelect(bool bShiftDown, bool bControlDown)
void OnKeyEvent(wxKeyEvent &event)
void OnMouseEvent(wxMouseEvent &event)
void OnSlider_Velocity(wxCommandEvent &event)
virtual ~MixerTrackCluster()
MixerTrackSlider * mSlider_Velocity
void OnButton_Solo(wxCommandEvent &event)
MixerTrackSlider * mSlider_Pan
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.