[apps/sequence] Make controllers inherit from StorageFunction controllers when required

This commit is contained in:
Émilie Feral
2019-02-28 14:51:22 +01:00
parent 184d2f0802
commit 2bc2506b60
29 changed files with 270 additions and 285 deletions

View File

@@ -9,23 +9,32 @@ namespace Sequence {
constexpr const char * SequenceStore::k_sequenceNames[MaxNumberOfSequences];
Ion::Storage::Record::ErrorStatus SequenceStore::addEmptyModel() {
const char * SequenceStore::firstAvailableName(int * nameIndex) {
// Choose available name
const char * name;
int currentNameIndex = 0;
while (currentNameIndex < MaxNumberOfSequences) {
name = k_sequenceNames[currentNameIndex];
if (Ion::Storage::sharedStorage()->recordBaseNamedWithExtension(name, Sequence::extension).isNull()) {
break;
const char * name = k_sequenceNames[currentNameIndex];
if (Ion::Storage::sharedStorage()->recordBaseNamedWithExtension(name, Shared::GlobalContext::seqExtension).isNull()) {
if (nameIndex) {
*nameIndex = currentNameIndex;
}
return name;
}
currentNameIndex++;
}
assert(currentNameIndex < MaxNumberOfSequences);
return nullptr;
}
Ion::Storage::Record::ErrorStatus SequenceStore::addEmptyModel() {
// Choose available name
int nameIndex;
const char * name = firstAvailableName(&nameIndex);
assert(name);
// Choose the corresponding color
KDColor color = Palette::DataColor[currentNameIndex];
KDColor color = Palette::DataColor[nameIndex];
Sequence::SequenceRecordData data(color);
// m_sequences
return Ion::Storage::sharedStorage()->createRecordWithExtension(name, Sequence::extension, &data, sizeof(data));
return Ion::Storage::sharedStorage()->createRecordWithExtension(name, modelExtension(), &data, sizeof(data));
}
void SequenceStore::setMemoizedModelAtIndex(int cacheIndex, Ion::Storage::Record record) const {