try to correctly modify value tree and listen for changes

This commit is contained in:
Alex Birch
2019-07-14 17:45:08 +01:00
parent 8c1be957fe
commit 11d7296813
5 changed files with 29 additions and 13 deletions

View File

@ -347,6 +347,7 @@ void FluidSynthModel::loadFont(const String &absPath) {
banks.appendChild({ "bank", {
{ "num", initialBankOffset },
}, {} }, nullptr);
int greatestPersistedBank{initialBankOffset};
fluid_sfont_iteration_start(sfont);
@ -362,10 +363,11 @@ void FluidSynthModel::loadFont(const String &absPath) {
// fluid_preset_get_name(preset)
// )
// ));
if (bankOffset > initialBankOffset) {
if (bankOffset > greatestPersistedBank) {
banks.appendChild({ "bank", {
{ "num", bankOffset },
}, {} }, nullptr);
greatestPersistedBank = bankOffset;
}
presets.appendChild({ "preset", {
{ "num", fluid_preset_get_num(preset) },
@ -373,8 +375,15 @@ void FluidSynthModel::loadFont(const String &absPath) {
}, {} }, nullptr);
}
}
valueTreeState.state.getChildWithName("banks") = banks;
valueTreeState.state.getChildWithName("presets") = presets;
// valueTreeState.state.getChildWithName("banks") = banks;
// valueTreeState.state.getChildWithName("presets") = presets;
valueTreeState.state.getChildWithName("banks").copyPropertiesAndChildrenFrom(banks, nullptr);
valueTreeState.state.getChildWithName("presets").copyPropertiesAndChildrenFrom(presets, nullptr);
#if JUCE_DEBUG
unique_ptr<XmlElement> xml{valueTreeState.state.createXml()};
Logger::outputDebugString(xml->createDocument("",false,false));
#endif
}
// FluidSynthModel::Listener::~Listener() {