14#ifndef __AUDACITY_MIXER_BOARD__
15#define __AUDACITY_MIXER_BOARD__
18#include <wx/scrolwin.h>
56 void OnFocus(wxFocusEvent &event);
86 const std::shared_ptr<PlayableTrack> &pTrack,
87 const wxPoint& pos = wxDefaultPosition,
88 const wxSize&
size = wxDefaultSize);
93#ifdef EXPERIMENTAL_MIDI_OUT
102#ifdef EXPERIMENTAL_MIDI_OUT
103 void HandleSliderVelocity(
const bool bWantPushState =
false);
110 void UpdateMeter(
const double t0,
const double t1);
120 void OnPaint(wxPaintEvent& evt);
124#ifdef EXPERIMENTAL_MIDI_OUT
125 void OnSlider_Velocity(wxCommandEvent& event);
147#ifdef EXPERIMENTAL_MIDI_OUT
154 DECLARE_EVENT_TABLE()
161 MusicalInstrument(std::unique_ptr<wxBitmap> &&pBitmap,
const wxString & strXPMfilename);
180 const wxPoint& pos = wxDefaultPosition,
181 const wxSize&
size = wxDefaultSize,
182 long style = wxHSCROLL | wxVSCROLL);
193 DECLARE_EVENT_TABLE()
207 const wxPoint& pos = wxDefaultPosition,
208 const wxSize&
size = wxDefaultSize);
226 void UpdateMeters(
const double t1,
const bool bLoopedPlay);
241 void OnPaint(wxPaintEvent& evt);
242 void OnSize(wxSizeEvent &evt);
272 DECLARE_EVENT_TABLE()
290 void OnSize(wxSizeEvent &evt);
301 DECLARE_EVENT_TABLE()
const TranslatableString name
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
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
ChannelGroupSampleView mSampleView
wxWeakRef< MeterPanel > mMeter
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)
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
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.