43 uint8_t getCount()
const;
47 bool removeByInstanceId(uint8_t instanceId);
51 const InstanceRecord *findBySubDeviceId(uint8_t subDeviceId)
const;
56 bool resize(uint8_t newCount);
74 struct StoredInstanceHeader {
77 uint32_t definitionId = 0;
78 uint16_t definitionVersion = 0;
79 uint8_t channelCount = 0;
80 uint16_t configSize = 0;
83 struct StoredChannelMapping {
84 uint8_t channelId = 0;
85 uint8_t channelNumber = 0;
89 bool loadVariant(uint8_t instanceId, uint8_t variant,
InstanceRecord *record)
91 bool loadVariant(uint8_t instanceId,
94 bool loadConfig)
const;
95 bool loadActiveVariant(uint8_t instanceId,
96 uint8_t *activeVariant,
101 bool eraseVariant(uint8_t instanceId, uint8_t variant);
102 bool eraseInstance(uint8_t instanceId);
103 bool cleanupLoadedInstance(uint8_t instanceId,
104 uint8_t activeVariant,
105 uint8_t loadedVariant);
106 bool slotExists(uint8_t instanceId)
const;
107 void makeActKey(uint8_t instanceId,
char *output)
const;
108 void makeHeaderKey(uint8_t instanceId, uint8_t variant,
char *output)
const;
109 void makeChannelMapKey(uint8_t instanceId,
112 void makeConfigKey(uint8_t instanceId, uint8_t variant,
char *output)
const;
113 bool readBlobExact(
const char *key,
char *output,
size_t expectedSize)
const;