18 {
return std::make_unique<ProjectTempo>(*
this); }
28 [](
auto &) {
return std::make_unique<ProjectTempo>(); } };
54 return [](
auto&,
auto&,
auto){ };
Abstract class ChannelGroup with two discrete iterable dimensions, channels and intervals; subclasses...
const std::optional< double > & GetProjectTempo(const ChannelGroup &group)
void DoProjectTempoChange(ChannelGroup &group, double newTempo)
DEFINE_ATTACHED_VIRTUAL(OnProjectTempoChange)
Class template generates single-dispatch, open method registry tables.
static Return Call(This &obj, Arguments ...arguments)
Invoke the method – but only after static initialization time.
Client code makes static instance from a factory of attachments; passes it to Get or Find as a retrie...
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
template struct REGISTRIES_API Cloneable<>
const ChannelGroup::Attachments::RegisteredFactory projectTempoDataFactory
A convenient base class defining abstract virtual Clone() for a given kind of pointer.
std::optional< double > mProjectTempo
std::unique_ptr< ClientData::Cloneable<> > Clone() const override