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

Method SaveLayout

Source/MidiController.cpp:2501–2588  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2499}
2500
2501void MidiController::SaveLayout(ofxJSONElement& moduleInfo)
2502{
2503 mConnectionsJson.clear();
2504 mConnectionsJson.resize((int)mConnections.size() + (int)mGrids.size());
2505 int i = 0;
2506 for (auto iter = mConnections.begin(); iter != mConnections.end(); ++iter)
2507 {
2508 const UIControlConnection* connection = *iter;
2509 mConnectionsJson[i]["control"] = connection->mControl;
2510 if (connection->mSpecialBinding == kSpecialBinding_Hover)
2511 {
2512 mConnectionsJson[i]["uicontrol"] = "hover";
2513 }
2514 else if (connection->mSpecialBinding >= kSpecialBinding_HotBind0 &&
2515 connection->mSpecialBinding <= kSpecialBinding_HotBind9)
2516 {
2517 mConnectionsJson[i]["uicontrol"] = "hotbind" + ofToString(connection->mSpecialBinding - kSpecialBinding_HotBind0);
2518 }
2519 else if (connection->mUIControl)
2520 {
2521 mConnectionsJson[i]["uicontrol"] = connection->mUIControl->Path();
2522 }
2523
2524 if (connection->mMessageType == kMidiMessage_Control)
2525 mConnectionsJson[i]["type"] = "control";
2526 if (connection->mMessageType == kMidiMessage_Note)
2527 mConnectionsJson[i]["type"] = "note";
2528 if (connection->mMessageType == kMidiMessage_Program)
2529 mConnectionsJson[i]["type"] = "program";
2530 if (connection->mMessageType == kMidiMessage_PitchBend)
2531 mConnectionsJson[i]["type"] = "pitchbend";
2532
2533 if (connection->mChannel != -1)
2534 mConnectionsJson[i]["channel"] = connection->mChannel;
2535 if (!connection->mPageless)
2536 mConnectionsJson[i]["page"] = connection->mPage;
2537
2538 if (connection->mType == kControlType_SetValue)
2539 mConnectionsJson[i]["value"] = connection->mValue;
2540 else if (connection->mType == kControlType_Toggle)
2541 mConnectionsJson[i]["toggle"] = true;
2542 else if (connection->mType == kControlType_Direct)
2543 mConnectionsJson[i]["direct"] = true;
2544 else if (connection->mType == kControlType_SetValueOnRelease)
2545 {
2546 mConnectionsJson[i]["value"] = connection->mValue;
2547 mConnectionsJson[i]["release"] = true;
2548 }
2549
2550 if (connection->mMidiOffValue != 0)
2551 mConnectionsJson[i]["midi_off_value"] = connection->mMidiOffValue;
2552 if (connection->mMidiOnValue != 127)
2553 mConnectionsJson[i]["midi_on_value"] = connection->mMidiOnValue;
2554 if (connection->mScaleOutput)
2555 mConnectionsJson[i]["scale"] = true;
2556 if (connection->mBlink)
2557 mConnectionsJson[i]["blink"] = true;
2558 if (connection->mIncrementAmount != 0)

Callers

nothing calls this directly

Calls 4

ofToStringFunction · 0.85
resizeMethod · 0.80
sizeMethod · 0.80
PathMethod · 0.80

Tested by

no test coverage detected