Audacity 3.2.0
TrackArtist.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 TrackArtist.h
6
7 Dominic Mazzoni
8
9 This singleton class handles the actual rendering of WaveTracks
10 (both waveforms and spectra), NoteTracks, and LabelTracks.
11
12 It's actually a little harder than it looks, because for
13 waveforms at least it needs to cache the samples that are
14 currently on-screen.
15
16**********************************************************************/
17
18#ifndef __AUDACITY_TRACKARTIST__
19#define __AUDACITY_TRACKARTIST__
20
21
22
23
24#include <wx/brush.h> // member variable
25#include <wx/pen.h> // member variables
26
27#include "Prefs.h"
28
29class wxRect;
30
31class PendingTracks;
32class TrackList;
33class TrackPanel;
34class SelectedRegion;
35class Track;
36class TrackPanel;
38class ZoomInfo;
39
40class AUDACITY_DLL_API TrackArtist final : private PrefsListener {
41
42public:
43
44 enum : unsigned {
53
54 NPasses
55 };
56
57 TrackArtist( TrackPanel *parent_ );
60
61 void SetColours(int iColorIndex);
62
63 void UpdatePrefs() override;
64 void UpdateSelectedPrefs( int id ) override;
65
67
68 // Preference values
69 float mdBrange; // "/GUI/EnvdBRange"
70 bool mShowClipping; // "/GUI/ShowClipping"
72
73 wxBrush blankBrush;
76 wxBrush sampleBrush;
78 wxBrush dragsampleBrush;// for samples which are draggable.
84 wxPen blankPen;
87 wxPen samplePen;
88 wxPen rmsPen;
97
98 wxPen beatSepearatorPen[2];
99 wxPen barSepearatorPen[2];
100 wxBrush beatStrongBrush[2];
101 wxBrush beatWeakBrush[2];
102 wxBrush beatStrongSelBrush[2];
103 wxBrush beatWeakSelBrush[2];
104
105#ifdef EXPERIMENTAL_FFT_Y_GRID
106 bool fftYGridOld;
107#endif //EXPERIMENTAL_FFT_Y_GRID
108
109#ifdef EXPERIMENTAL_FIND_NOTES
110 bool fftFindNotesOld;
111 int findNotesMinAOld;
112 int findNotesNOld;
113 bool findNotesQuantizeOld;
114#endif
115
116 const SelectedRegion *pSelectedRegion{};
117 ZoomInfo *pZoomInfo{};
118 const PendingTracks *pPendingTracks{};
119
120 bool drawEnvelope{ false };
121 bool bigPoints{ false };
122 bool drawSliders{ false };
123 bool onBrushTool{ false };
124 bool hasSolo{ false };
125};
126
127#endif // define __AUDACITY_TRACKARTIST__
A listener notified of changes in preferences.
Definition: Prefs.h:652
virtual void UpdateSelectedPrefs(int id)
Definition: Prefs.cpp:158
virtual void UpdatePrefs()=0
Definition: Prefs.cpp:154
Defines a selected portion of a project.
This class handles the actual rendering of WaveTracks (both waveforms and spectra),...
Definition: TrackArtist.h:40
wxBrush blankBrush
Definition: TrackArtist.h:73
wxBrush envelopeBackgroundBrush
Definition: TrackArtist.h:81
wxPen odProgressDonePen
Definition: TrackArtist.h:93
wxPen rmsPen
Definition: TrackArtist.h:88
wxPen unselectedPen
Definition: TrackArtist.h:85
float mdBrange
Definition: TrackArtist.h:69
wxPen muteSamplePen
Definition: TrackArtist.h:91
wxBrush sampleBrush
Definition: TrackArtist.h:76
wxPen muteClippedPen
Definition: TrackArtist.h:95
wxBrush selectedBrush
Definition: TrackArtist.h:75
wxBrush muteSampleBrush
Definition: TrackArtist.h:79
wxPen selectedPen
Definition: TrackArtist.h:86
wxPen samplePen
Definition: TrackArtist.h:87
wxPen odProgressNotYetPen
Definition: TrackArtist.h:92
wxPen clippedPen
Definition: TrackArtist.h:94
wxBrush selsampleBrush
Definition: TrackArtist.h:77
wxPen blankPen
Definition: TrackArtist.h:84
wxPen muteRmsPen
Definition: TrackArtist.h:89
TrackPanel * parent
Definition: TrackArtist.h:66
bool mShowClipping
Definition: TrackArtist.h:70
int mSampleDisplay
Definition: TrackArtist.h:71
wxBrush clipAffordanceBackgroundSelBrush
Definition: TrackArtist.h:83
wxBrush dragsampleBrush
Definition: TrackArtist.h:78
wxPen selsamplePen
Definition: TrackArtist.h:90
wxBrush clipAffordanceBackgroundBrush
Definition: TrackArtist.h:82
wxBrush unselectedBrush
Definition: TrackArtist.h:74
wxBrush blankSelectedBrush
Definition: TrackArtist.h:80
wxPen blankSelectedPen
Definition: TrackArtist.h:96
Abstract base class for an object holding data associated with points on a time axis.
Definition: Track.h:110
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Definition: Track.h:850
The TrackPanel class coordinates updates and operations on the main part of the screen which contains...
Definition: TrackPanel.h:63
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
Definition: BasicUI.cpp:202