| 2499 | } |
| 2500 | |
| 2501 | void 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) |
nothing calls this directly
no test coverage detected