| 435 | //} |
| 436 | |
| 437 | void GRainbowAudioProcessorEditor::loadFile(juce::File file) { |
| 438 | |
| 439 | if (file.getFileExtension() == ".gbow") { |
| 440 | Utils::Result res = mSynth.loadPreset(file); |
| 441 | if (res.success) { |
| 442 | mTitlePresetPanel.btnSavePreset.setEnabled(true); |
| 443 | mArcSpec.loadPreset(); |
| 444 | updateCenterComponent(ParamUI::CenterComponent::ARC_SPEC); |
| 445 | mPianoPanel.waveform.load(mSynth.getAudioBuffer()); |
| 446 | mTitlePresetPanel.labelFileName.setText(mParameters.ui.loadedFileName, juce::sendNotificationAsync); |
| 447 | resized(); |
| 448 | } else { |
| 449 | displayError(res.message); |
| 450 | } |
| 451 | } else { |
| 452 | Utils::Result r = mSynth.loadAudioFile(file); |
| 453 | if (r.success) { |
| 454 | // Show users which file is being loaded/processed |
| 455 | mParameters.ui.fileName = file.getFullPathName(); |
| 456 | mTitlePresetPanel.labelFileName.setText(mParameters.ui.fileName, juce::dontSendNotification); |
| 457 | mTrimSelection.parse(mSynth.getInputBuffer(), mSynth.getSampleRate(), mErrorMessage); |
| 458 | if (mErrorMessage.isEmpty()) { |
| 459 | // display screen to trim sample |
| 460 | updateCenterComponent(ParamUI::CenterComponent::TRIM_SELECTION); |
| 461 | } else { |
| 462 | displayError(mErrorMessage); |
| 463 | mErrorMessage.clear(); |
| 464 | return; |
| 465 | } |
| 466 | } else { |
| 467 | displayError(r.message); |
| 468 | } |
| 469 | } |
| 470 | } |
| 471 | |
| 472 | void GRainbowAudioProcessorEditor::savePreset() { |
| 473 | auto recentFiles = Utils::getRecentFiles(); |
nothing calls this directly
no test coverage detected