MCPcopy Create free account
hub / github.com/BespokeSynth/BespokeSynth / LoadLayoutFromFile

Method LoadLayoutFromFile

Source/ModularSynth.cpp:2457–2511  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2455}
2456
2457bool ModularSynth::LoadLayoutFromFile(std::string jsonFile, bool makeDefaultLayout /*= true*/)
2458{
2459 ofLog() << "Loading layout: " << jsonFile;
2460 mLoadedLayoutPath = String(jsonFile).replace(ofToDataPath("").c_str(), "").toStdString();
2461
2462 ofxJSONElement root;
2463 bool loaded = root.open(jsonFile);
2464
2465 if (!loaded)
2466 {
2467 LogEvent("Couldn't load, error parsing " + jsonFile, kLogEventType_Error);
2468 LogEvent("Try loading it up in a json validator", kLogEventType_Error);
2469 return false;
2470 }
2471
2472 LoadLayout(root);
2473
2474 if (juce::String(jsonFile).endsWith("blank.json"))
2475 {
2476 IDrawableModule* gain = FindModule("gain");
2477 IDrawableModule* splitter = FindModule("splitter");
2478 IDrawableModule* output1 = FindModule("output 1");
2479 IDrawableModule* output2 = FindModule("output 2");
2480 if (output1 != nullptr && output1->GetPosition().y > ofGetHeight() / gDrawScale - 40)
2481 {
2482 float offset = ofGetHeight() / gDrawScale - output1->GetPosition().y - 40;
2483 if (gain != nullptr)
2484 gain->SetPosition(gain->GetPosition().x, gain->GetPosition().y + offset);
2485 if (splitter != nullptr)
2486 splitter->SetPosition(splitter->GetPosition().x, splitter->GetPosition().y + offset);
2487 if (output1 != nullptr)
2488 output1->SetPosition(output1->GetPosition().x, output1->GetPosition().y + offset);
2489 if (output2 != nullptr)
2490 output2->SetPosition(output2->GetPosition().x, output2->GetPosition().y + offset);
2491 }
2492
2493 if (output2 != nullptr && output2->GetPosition().x > ofGetWidth() / gDrawScale - 100)
2494 {
2495 float offset = ofGetWidth() / gDrawScale - output2->GetPosition().x - 100;
2496 if (gain != nullptr)
2497 gain->SetPosition(gain->GetPosition().x + offset, gain->GetPosition().y);
2498 if (splitter != nullptr)
2499 splitter->SetPosition(splitter->GetPosition().x + offset, splitter->GetPosition().y);
2500 if (output1 != nullptr)
2501 output1->SetPosition(output1->GetPosition().x + offset, output1->GetPosition().y);
2502 if (output2 != nullptr)
2503 output2->SetPosition(output2->GetPosition().x + offset, output2->GetPosition().y);
2504 }
2505 }
2506
2507 if (makeDefaultLayout)
2508 UpdateUserPrefsLayout();
2509
2510 return true;
2511}
2512
2513bool ModularSynth::LoadLayoutFromString(std::string jsonString)
2514{

Callers 1

DropdownUpdatedMethod · 0.80

Calls 8

ofLogClass · 0.85
StringClass · 0.85
ofToDataPathFunction · 0.85
ofGetHeightFunction · 0.85
ofGetWidthFunction · 0.85
openMethod · 0.80
GetPositionMethod · 0.45
SetPositionMethod · 0.45

Tested by

no test coverage detected