Mercurial > hg > svcore
diff data/model/SparseTimeValueModel.h @ 1742:52705a328b34 by-id
Rejig ById so as to put everything in a single pool, so that at the core you can go from numeric id (untyped) to anything the object can be dynamic_cast to. Useful for building other abstractions like PlayParameter-type registrations that don't know about e.g. Models. Probably some more tweaking needed. Also add tests
author | Chris Cannam |
---|---|
date | Fri, 28 Jun 2019 17:36:30 +0100 |
parents | 9d82b164f264 |
children | 77543124651b |
line wrap: on
line diff
--- a/data/model/SparseTimeValueModel.h Thu Jun 27 13:08:10 2019 +0100 +++ b/data/model/SparseTimeValueModel.h Fri Jun 28 17:36:30 2019 +0100 @@ -54,7 +54,7 @@ m_completion(100) { // Model is playable, but may not sound (if units not Hz or // range unsuitable) - PlayParameterRepository::getInstance()->addPlayable(this); + PlayParameterRepository::getInstance()->addPlayable(getId().untyped); } SparseTimeValueModel(sv_samplerate_t sampleRate, int resolution, @@ -73,11 +73,11 @@ m_completion(100) { // Model is playable, but may not sound (if units not Hz or // range unsuitable) - PlayParameterRepository::getInstance()->addPlayable(this); + PlayParameterRepository::getInstance()->addPlayable(getId().untyped); } virtual ~SparseTimeValueModel() { - PlayParameterRepository::getInstance()->removePlayable(this); + PlayParameterRepository::getInstance()->removePlayable(getId().untyped); } QString getTypeName() const override { return tr("Sparse Time-Value"); } @@ -289,7 +289,7 @@ case 3: e1 = e0.withLabel(value.toString()); break; } - auto command = new ChangeEventsCommand<Model>(getId(), tr("Edit Data")); + auto command = new ChangeEventsCommand(getId().untyped, tr("Edit Data")); command->remove(e0); command->add(e1); return command->finish();