Revert "Modes: reusing submode for mode mask, more unittests"

This reverts commit f0bddfcb21.
This commit is contained in:
2023-03-10 14:50:16 +01:00
parent c162acb7df
commit 55f6825a03
2 changed files with 11 additions and 60 deletions

View File

@ -21,6 +21,7 @@ class ModeListEntry : public SerialLinkedListAdapter<SerializeIF>,
SerializeElement<uint32_t> value2 = 0;
SerializeElement<uint8_t> value3 = 0;
SerializeElement<uint8_t> value4 = 0;
SerializeElement<uint8_t> value5 = 0;
ModeListEntry(const ModeListEntry& other)
: SerialLinkedListAdapter(), LinkedElement<ModeListEntry>(this) {
@ -28,6 +29,7 @@ class ModeListEntry : public SerialLinkedListAdapter<SerializeIF>,
value2.entry = other.value2.entry;
value3.entry = other.value3.entry;
value4.entry = other.value4.entry;
value5.entry = other.value5.entry;
setLinks();
}
@ -36,6 +38,7 @@ class ModeListEntry : public SerialLinkedListAdapter<SerializeIF>,
this->value2.entry = other.value2.entry;
this->value3.entry = other.value3.entry;
this->value4.entry = other.value4.entry;
this->value5.entry = other.value5.entry;
return *this;
}
@ -44,6 +47,7 @@ class ModeListEntry : public SerialLinkedListAdapter<SerializeIF>,
value1.setNext(&value2);
value2.setNext(&value3);
value3.setNext(&value4);
value4.setNext(&value5);
}
// for Sequences
@ -80,7 +84,7 @@ class ModeListEntry : public SerialLinkedListAdapter<SerializeIF>,
bool submodesAllowed = (value4.entry & mode::SpecialSubmodeFlags::ALLOWED_MASK) ==
mode::SpecialSubmodeFlags::ALLOWED_MASK;
if (submodesAllowed and mask != nullptr) {
*mask = value3.entry;
*mask = value5.entry;
}
return submodesAllowed;
}
@ -109,14 +113,14 @@ class ModeListEntry : public SerialLinkedListAdapter<SerializeIF>,
*/
void enableSubmodeAllowed(uint8_t mask) {
value4.entry |= mode::SpecialSubmodeFlags::ALLOWED_MASK;
value3.entry = mask;
value5.entry = mask;
}
/**
* Enforce the equality of submodes for mode checks. This is the default.
*/
void disableSubmodeAllowed() {
value4.entry &= ~mode::SpecialSubmodeFlags::ALLOWED_MASK;
value3.entry = 0;
value5.entry = 0;
}
};