11namespace tracktion {
inline namespace engine
14TimeSigSetting::TimeSigSetting (TempoSequence& ts,
const juce::ValueTree& v)
15 : TrackItem (ts.edit, {}, Type::timeSig),
16 state (v), ownerSequence (ts)
18 auto* um = ts.getUndoManager();
20 startBeatNumber.referTo (state, IDs::startBeat, um);
21 numerator.referTo (state, IDs::numerator, um, 4);
22 denominator.referTo (state, IDs::denominator, um, 4);
23 triplets.referTo (state, IDs::triplets, um);
25 state.addListener (
this);
28TimeSigSetting::~TimeSigSetting()
30 state.removeListener (
this);
32 notifyListenersOfDeletion();
37 return TRANS(
"Time Signature");
45void TimeSigSetting::setStringTimeSig (
const juce::String& s)
54void TimeSigSetting::removeFromEdit()
56 jassert (Selectable::isSelectableValid (&edit));
57 ownerSequence.removeTimeSig (ownerSequence.indexOfTimeSig (
this));
60Track* TimeSigSetting::getTrack()
const
62 return edit.getTempoTrack();
67 ownerSequence.updateTempoDataIfNeeded();
70 if (
auto nextTimeSig = ownerSequence.getTimeSig (ownerSequence.indexOfTimeSig (
this) + 1))
71 return { { s, nextTimeSig->startTime },
TimeDuration() };
73 return { { s, s + TimeDuration::fromSeconds (1.0) },
TimeDuration() };
78 return getStringTimeSig();
String upToFirstOccurrenceOf(StringRef substringToEndWith, bool includeSubStringInResult, bool ignoreCase) const
bool containsChar(juce_wchar character) const noexcept
String fromLastOccurrenceOf(StringRef substringToFind, bool includeSubStringInResult, bool ignoreCase) const
int getIntValue() const noexcept
Base class for tracks which contain clips and plugins and can be added to Edit[s].
#define TRANS(stringLiteral)
Represents a duration in real-life time.
Represents the position of a clip on a timeline.