| 193 | } |
| 194 | |
| 195 | XmlElement *CtrlrManager::saveState() |
| 196 | { |
| 197 | if (getInstanceMode() == InstanceMulti) |
| 198 | { |
| 199 | for (int i=0; i<getNumPanels(); i++) |
| 200 | { |
| 201 | CtrlrPanel *panel = getPanel (i); |
| 202 | |
| 203 | if (panel != nullptr) |
| 204 | { |
| 205 | panel->generateCustomData(); |
| 206 | if (panel->hasChangedSinceSavePoint()) |
| 207 | { |
| 208 | panel->setPanelDirty(true); |
| 209 | } |
| 210 | } |
| 211 | } |
| 212 | return (managerTree.createXml().release()); |
| 213 | } |
| 214 | else |
| 215 | { |
| 216 | if (getActivePanel()) |
| 217 | { |
| 218 | ValueTree program = getActivePanel()->getProgram(); |
| 219 | restoreProperties (managerTree, program); |
| 220 | restoreProperties (getActivePanel()->getPanelTree(), program, 0, "panelMidi"); |
| 221 | restoreProperties (getActivePanel()->getPanelTree(), program, 0, Ids::panelCustomData.toString()); |
| 222 | program.addChild (getActivePanel()->getCustomData(),-1,nullptr); |
| 223 | return (program.createXml().release()); |
| 224 | } |
| 225 | return (nullptr); |
| 226 | } |
| 227 | } |
| 228 | |
| 229 | ValueTree &CtrlrManager::getInstanceTree() |
| 230 | { |
no test coverage detected