73 int getNumTracks()
const {
return numTracks; }
74 int getNumAudioTracks()
const {
return numAudioTracks; }
75 int getIndexOfTrackID (EditItemID trackID)
const {
return trackIDs.indexOf (trackID); }
76 juce::String getTrackName (
int index)
const {
return trackNames[index]; }
77 juce::String getTrackNameFromID (EditItemID trackID)
const {
return trackNames[getIndexOfTrackID(trackID)]; }
78 bool isAudioTrack (
int trackIndex)
const {
return audioTracks[trackIndex]; }
79 bool isTrackMuted (
int trackIndex)
const {
return mutedTracks[trackIndex]; }
80 bool isTrackSoloed (
int trackIndex)
const {
return soloedTracks[trackIndex]; }
81 bool isTrackSoloIsolated (
int trackIndex)
const {
return soloIsolatedTracks[trackIndex]; }
82 int audioToGlobalTrackIndex (
int audioIndex)
const;
84 TimeDuration getLength()
const {
return TimeDuration::fromSeconds (length); }
85 TimePosition getMarkIn()
const {
return TimePosition::fromSeconds (markIn); }
86 TimePosition getMarkOut()
const {
return TimePosition::fromSeconds (markOut); }
87 bool areMarksActive()
const {
return marksActive; }
89 double getTempo()
const {
return tempo; }
90 int getTimeSigNumerator()
const {
return timeSigNumerator; }
91 int getTimeSigDenominator()
const {
return timeSigDenominator; }
92 int getPitch()
const {
return pitch; }
107 void addListener (
Listener* l) { listeners.add (l); }
108 void removeListener (Listener* l) { listeners.remove (l); }
123 int numTracks, numAudioTracks;
125 juce::BigInteger audioTracks, mutedTracks, soloedTracks, soloIsolatedTracks;
129 double length = 0.0, markIn = 0.0, markOut = 0.0, tempo = 0.0;
130 bool marksActive =
false;
131 int timeSigNumerator = 4, timeSigDenominator = 4, pitch = 60;
138 void refreshFromProjectItem (ProjectItem::Ptr);
140 void refreshFromState();
145 void addSubTracksRecursively (
const juce::XmlElement& parent,
int& audioTrackNameNumber);