diff --git a/.clang-tidy b/.clang-tidy index 93feb93f..c455c6d6 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,8 @@ Checks: - + '*' - - modernize-use-override + '+ *, + - modernize-use-nodiscard, + - modernize-use-override, + - modernize-return-braced-init-list' CheckOptions: - key: modernize-use-nullptr.NullMacros value: NULL,CUSTOM_NULL diff --git a/MidiKraft-base b/MidiKraft-base index 4a090d5b..08aef976 160000 --- a/MidiKraft-base +++ b/MidiKraft-base @@ -1 +1 @@ -Subproject commit 4a090d5b99ec16c630651bf15c07da357d4f4848 +Subproject commit 08aef97649fb6c0e585eb067de5c67c80de6f32c diff --git a/MidiKraft-librarian b/MidiKraft-librarian index c3e5b901..ac8b722b 160000 --- a/MidiKraft-librarian +++ b/MidiKraft-librarian @@ -1 +1 @@ -Subproject commit c3e5b901d5491f67a35a5eee2e61ef863e84fb3d +Subproject commit ac8b722b4a081b1105875e70e04b7b6c8c6b9bfa diff --git a/The-Orm/AutoThumbnailingDialog.h b/The-Orm/AutoThumbnailingDialog.h index 85e4fa69..89e17b64 100644 --- a/The-Orm/AutoThumbnailingDialog.h +++ b/The-Orm/AutoThumbnailingDialog.h @@ -14,7 +14,7 @@ class AutoThumbnailingDialog : public ThreadWithProgressWindow, private ChangeListener { public: AutoThumbnailingDialog(PatchView &patchView, RecordingView &recordingView); - virtual ~AutoThumbnailingDialog(); + virtual ~AutoThumbnailingDialog() override; virtual void run() override; diff --git a/The-Orm/BCR2000_Component.h b/The-Orm/BCR2000_Component.h index b7d12e2a..3b357d41 100644 --- a/The-Orm/BCR2000_Component.h +++ b/The-Orm/BCR2000_Component.h @@ -21,7 +21,7 @@ class Synth; class BCR2000_Component: public Component, public midikraft::BCR2000Proxy, private ChangeListener { public: BCR2000_Component(std::shared_ptr bcr); - virtual ~BCR2000_Component(); + virtual ~BCR2000_Component() override; virtual void resized() override; @@ -62,7 +62,7 @@ class BCR2000_Component: public Component, public midikraft::BCR2000Proxy, priva class UpdateSynthListener : public ValueTree::Listener { public: UpdateSynthListener(BCR2000_Component* papa); - ~UpdateSynthListener(); + virtual ~UpdateSynthListener() override; void valueTreePropertyChanged(ValueTree& treeWhosePropertyHasChanged, const Identifier& property) override; void listenForMidiMessages(MidiInput* source, MidiMessage message); @@ -77,7 +77,7 @@ class BCR2000_Component: public Component, public midikraft::BCR2000Proxy, priva class UpdateControllerListener : public ValueTree::Listener { public: UpdateControllerListener(BCR2000_Component* papa); - ~UpdateControllerListener(); + virtual ~UpdateControllerListener() override; void listenForMidiMessages(MidiInput* source, MidiMessage message); void valueTreePropertyChanged(ValueTree& treeWhosePropertyHasChanged, const Identifier& property) override; diff --git a/The-Orm/CurrentPatchDisplay.h b/The-Orm/CurrentPatchDisplay.h index d93aa204..3da0697f 100644 --- a/The-Orm/CurrentPatchDisplay.h +++ b/The-Orm/CurrentPatchDisplay.h @@ -42,7 +42,7 @@ class CurrentPatchDisplay : public Component, CurrentPatchDisplay(midikraft::PatchDatabase &database, std::vector categories, std::function)> favoriteHandler); - virtual ~CurrentPatchDisplay(); + virtual ~CurrentPatchDisplay() override; std::function)> onCurrentPatchClicked; diff --git a/The-Orm/EditCategoryDialog.cpp b/The-Orm/EditCategoryDialog.cpp index 4492445e..78c72d4a 100644 --- a/The-Orm/EditCategoryDialog.cpp +++ b/The-Orm/EditCategoryDialog.cpp @@ -92,7 +92,7 @@ class CategoryListModel: public ListBoxModel { }; -EditCategoryDialog::EditCategoryDialog(midikraft::PatchDatabase &database) : propsTree_("categoryTree") +EditCategoryDialog::EditCategoryDialog() : propsTree_("categoryTree") { //parameters_.setRowHeight(60); parameters_ = std::make_unique(); @@ -100,7 +100,7 @@ EditCategoryDialog::EditCategoryDialog(midikraft::PatchDatabase &database) : pro propsTree_.addListener(this); - add_.onClick = [this, &database]() { + add_.onClick = [this]() { int nextID = nextId_++; addCategory({ nextID, true, "New category", Colour::fromString("191926")}); //parameters_.setModel(new CategoryListModel(props_)); @@ -108,11 +108,11 @@ EditCategoryDialog::EditCategoryDialog(midikraft::PatchDatabase &database) : pro add_.setButtonText("Add new category"); addAndMakeVisible(add_); - ok_.onClick = [this]() { sWindow_->exitModalState(true); }; + ok_.onClick = []() { sWindow_->exitModalState(true); }; ok_.setButtonText("Save"); addAndMakeVisible(ok_); - cancel_.onClick = [this]() { sWindow_->exitModalState(false); }; + cancel_.onClick = []() { sWindow_->exitModalState(false); }; cancel_.setButtonText("Cancel"); addAndMakeVisible(cancel_); @@ -163,7 +163,7 @@ static void dialogClosed(int modalResult, EditCategoryDialog* dialog) void EditCategoryDialog::showEditDialog(midikraft::PatchDatabase &db, Component *centeredAround, TCallback callback) { if (!sEditCategoryDialog_) { - sEditCategoryDialog_= std::make_unique(db); + sEditCategoryDialog_= std::make_unique(); } sCallback_ = callback; sEditCategoryDialog_->nextId_ = db.getNextBitindex(); // This is where we'll continue, but the user could press cancel using none of the newly made IDs diff --git a/The-Orm/EditCategoryDialog.h b/The-Orm/EditCategoryDialog.h index 9fee95e9..17b04def 100644 --- a/The-Orm/EditCategoryDialog.h +++ b/The-Orm/EditCategoryDialog.h @@ -14,7 +14,7 @@ class EditCategoryDialog : public Component, private ValueTree::Listener { public: typedef std::function const &)> TCallback; - EditCategoryDialog(midikraft::PatchDatabase &database); + EditCategoryDialog(); virtual ~EditCategoryDialog() override; virtual void resized() override; diff --git a/The-Orm/ElectraOneRouter.cpp b/The-Orm/ElectraOneRouter.cpp index c5a92d41..82bbc7b0 100644 --- a/The-Orm/ElectraOneRouter.cpp +++ b/The-Orm/ElectraOneRouter.cpp @@ -29,7 +29,7 @@ void ElectraOneRouter::enable(bool enabled) if (routerCallback_.isNull()) { // Install handler routerCallback_ = midikraft::MidiController::makeOneHandle(); - midikraft::MidiController::instance()->addMessageHandler(routerCallback_, [this](MidiInput *source, MidiMessage const &message) { + midikraft::MidiController::instance()->addMessageHandler(routerCallback_, [](MidiInput *source, MidiMessage const &message) { if (source->getName() == "Electra Controller") { auto toWhichSynthToForward = UIModel::currentSynth(); if (toWhichSynthToForward) { diff --git a/The-Orm/ExportDialog.cpp b/The-Orm/ExportDialog.cpp index 5611e250..3bafba73 100644 --- a/The-Orm/ExportDialog.cpp +++ b/The-Orm/ExportDialog.cpp @@ -20,11 +20,11 @@ ExportDialog::ExportDialog() parameters_.setProperties(props_); addAndMakeVisible(parameters_); - ok_.onClick = [this]() { sWindow_->exitModalState(true); }; + ok_.onClick = []() { sWindow_->exitModalState(true); }; ok_.setButtonText("Export"); addAndMakeVisible(ok_); - cancel_.onClick = [this]() { sWindow_->exitModalState(false); }; + cancel_.onClick = []() { sWindow_->exitModalState(false); }; cancel_.setButtonText("Cancel"); addAndMakeVisible(cancel_); diff --git a/The-Orm/ImportFromSynthDialog.h b/The-Orm/ImportFromSynthDialog.h index cdd6cd8a..cf5015d4 100644 --- a/The-Orm/ImportFromSynthDialog.h +++ b/The-Orm/ImportFromSynthDialog.h @@ -18,7 +18,7 @@ class ImportFromSynthDialog : public Component, private Button::Listener typedef std::function bankNo)> TSuccessHandler; ImportFromSynthDialog(midikraft::Synth *synth, TSuccessHandler onOk); - virtual ~ImportFromSynthDialog() = default; + virtual ~ImportFromSynthDialog() override = default; void resized() override; void buttonClicked(Button*) override; diff --git a/The-Orm/KeyboardMacroView.cpp b/The-Orm/KeyboardMacroView.cpp index 4c455135..81672d9d 100644 --- a/The-Orm/KeyboardMacroView.cpp +++ b/The-Orm/KeyboardMacroView.cpp @@ -30,7 +30,7 @@ class RecordProgress : public ThreadWithProgressWindow, private MidiKeyboardStat { } - virtual ~RecordProgress() { + virtual ~RecordProgress() override { state_.removeListener(this); } diff --git a/The-Orm/KeyboardMacroView.h b/The-Orm/KeyboardMacroView.h index 07e5b49c..1693ff64 100644 --- a/The-Orm/KeyboardMacroView.h +++ b/The-Orm/KeyboardMacroView.h @@ -19,7 +19,7 @@ class KeyboardMacroView : public Component, private ChangeListener, private Value::Listener { public: KeyboardMacroView(std::function callback); - virtual ~KeyboardMacroView(); + virtual ~KeyboardMacroView() override; virtual void resized() override; diff --git a/The-Orm/Main.cpp b/The-Orm/Main.cpp index d508dbab..ee83c66a 100644 --- a/The-Orm/Main.cpp +++ b/The-Orm/Main.cpp @@ -265,7 +265,7 @@ class TheOrmApplication : public JUCEApplication, private ChangeListener tooltipGlobalWindow_ = std::make_unique(); } - virtual ~MainWindow() { + virtual ~MainWindow() override { setLookAndFeel(nullptr); } diff --git a/The-Orm/MainComponent.cpp b/The-Orm/MainComponent.cpp index 468d88db..00a3a0fb 100644 --- a/The-Orm/MainComponent.cpp +++ b/The-Orm/MainComponent.cpp @@ -268,7 +268,7 @@ MainComponent::MainComponent(bool makeYourOwnSize) : std::stringstream buffer; buffer << "\"sysex\" : ["; // This is the very specific CF Sysex format bool first = true; - auto messages = patch.synth()->patchToSysex(patch.patch(), nullptr); + auto messages = patch.synth()->dataFileToSysex(patch.patch(), nullptr); for (const auto& m : messages) { for (int i = 0; i < m.getRawDataSize(); i++) { if (!first) { diff --git a/The-Orm/MainComponent.h b/The-Orm/MainComponent.h index 9cccc2e7..a30a2583 100644 --- a/The-Orm/MainComponent.h +++ b/The-Orm/MainComponent.h @@ -39,7 +39,7 @@ class MainComponent : public Component, private ChangeListener { public: MainComponent(bool makeYourOwnSize); - ~MainComponent(); + virtual ~MainComponent() override; virtual void resized() override; @@ -66,7 +66,7 @@ class MainComponent : public Component, private ChangeListener static void crashTheSoftware(); void setZoomFactor(float newZoomInPercentage) const; - static float calcAcceptableGlobalScaleFactor(); + float calcAcceptableGlobalScaleFactor(); Colour getUIColour(LookAndFeel_V4::ColourScheme::UIColour colourToGet); void refreshSynthList(); static void aboutBox(); diff --git a/The-Orm/PatchButtonPanel.cpp b/The-Orm/PatchButtonPanel.cpp index 3db861f6..8398d93d 100644 --- a/The-Orm/PatchButtonPanel.cpp +++ b/The-Orm/PatchButtonPanel.cpp @@ -203,7 +203,7 @@ void PatchButtonPanel::setupPageButtons() { } // Any more buttons unused? for (int i = 0; i < maxPageButtons_; i++) { - if (i >= pageButtonMap_.size()) { + if (static_cast(i) >= pageButtonMap_.size()) { pageNumbers_[i]->setVisible(false); } } @@ -276,9 +276,9 @@ void PatchButtonPanel::refresh(bool async, int autoSelectTarget /* = -1 */) { // Now set the button text and colors int active = indexOfActive(); - for (int i = 0; i < (int) std::max(patchButtons_->size(), patches_.size()); i++) { + for (size_t i = 0; i < std::max(patchButtons_->size(), patches_.size()); i++) { if (i < patchButtons_->size()) { - auto button = patchButtons_->buttonWithIndex(i); + auto button = patchButtons_->buttonWithIndex((int) i); if (i < patches_.size() && patches_[i].patch() && patches_[i].synth()) { auto displayMode = PatchHolderButton::getCurrentInfoForSynth(patches_[i].synth()->getName()); if (multiSynthMode) { @@ -287,7 +287,7 @@ void PatchButtonPanel::refresh(bool async, int autoSelectTarget /* = -1 */) { ); } button->setPatchHolder(&patches_[i], i == active, displayMode); - refreshThumbnail(i); + refreshThumbnail((int)i); } else { button->setPatchHolder(nullptr, false, PatchButtonInfo::CenterName); diff --git a/The-Orm/PatchButtonPanel.h b/The-Orm/PatchButtonPanel.h index e9d98cfe..c0d48df5 100644 --- a/The-Orm/PatchButtonPanel.h +++ b/The-Orm/PatchButtonPanel.h @@ -21,7 +21,7 @@ class PatchButtonPanel : public Component, typedef std::function)>)> TPageLoader; PatchButtonPanel(std::function handler); - virtual ~PatchButtonPanel(); + virtual ~PatchButtonPanel() override; void setPatchLoader(TPageLoader pageGetter); void setTotalCount(int totalCount); diff --git a/The-Orm/PatchDiff.cpp b/The-Orm/PatchDiff.cpp index 4eccf707..6231f11c 100644 --- a/The-Orm/PatchDiff.cpp +++ b/The-Orm/PatchDiff.cpp @@ -16,7 +16,15 @@ #include #include +// Turn off warning on unknown pragmas for VC++ +#pragma warning(push) +#pragma warning(disable: 4068) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" #include "dtl/dtl.hpp" +#pragma GCC diagnostic pop +#pragma warning(pop) + class DiffTokenizer : public CodeTokeniser { public: diff --git a/The-Orm/PatchDiff.h b/The-Orm/PatchDiff.h index 431152cb..23dd7b2b 100644 --- a/The-Orm/PatchDiff.h +++ b/The-Orm/PatchDiff.h @@ -17,7 +17,7 @@ class CoupledScrollCodeEditor; class PatchDiff : public Component, private Button::Listener { public: PatchDiff(midikraft::Synth *activeSynth, midikraft::PatchHolder const &patch1, midikraft::PatchHolder const &patch2); - ~PatchDiff(); + virtual ~PatchDiff() override; void resized() override; void buttonClicked(Button*) override; diff --git a/The-Orm/PatchListTree.cpp b/The-Orm/PatchListTree.cpp index 5b6a29fe..2165fc49 100644 --- a/The-Orm/PatchListTree.cpp +++ b/The-Orm/PatchListTree.cpp @@ -50,7 +50,7 @@ class ImportNameListener : public Value::Listener { SimpleLogger::instance()->postMessage("Changed name of import to " + value.getValue().toString()); String newValue = value.getValue(); db_.renameImport(importID_, newValue.toStdString()); - }; + } private: midikraft::PatchDatabase& db_; @@ -294,7 +294,7 @@ TreeViewItem* PatchListTree::newTreeViewItemForPatchList(midikraft::ListInfo lis if (onUserListSelected) onUserListSelected(list.id); }; - node->acceptsItem = [this, list](juce::var dropItem) { + node->acceptsItem = [list](juce::var dropItem) { String dropItemString = dropItem; auto infos = midikraft::PatchHolder::dragInfoFromString(dropItemString.toStdString()); return infos.contains("drag_type") && (infos["drag_type"] == "PATCH" || infos["drag_type"] == "PATCH_IN_LIST"); @@ -346,17 +346,17 @@ TreeViewItem* PatchListTree::newTreeViewItemForPatchList(midikraft::ListInfo lis std::string oldname = node->text().toStdString(); CreateListDialog::showCreateListDialog(std::make_shared(node->id().toStdString(), node->text().toStdString()), TopLevelWindow::getActiveTopLevelWindow(), - [this, oldname](std::shared_ptr list) { - jassert(list); - if (list) { - db_.putPatchList(*list); - SimpleLogger::instance()->postMessage((boost::format("Renamed list from %s to %s") % oldname % list->name()).str()); + [this, oldname](std::shared_ptr new_list) { + jassert(new_list); + if (new_list) { + db_.putPatchList(*new_list); + SimpleLogger::instance()->postMessage((boost::format("Renamed list from %s to %s") % oldname % new_list->name()).str()); regenerateUserLists(); } - }, [this](std::shared_ptr list) { - if (list) { - db_.deletePatchlist(midikraft::ListInfo({ list->id(), list->name() })); - SimpleLogger::instance()->postMessage("Deleted list " + list->name()); + }, [this](std::shared_ptr new_list) { + if (new_list) { + db_.deletePatchlist(midikraft::ListInfo({ new_list->id(), new_list->name() })); + SimpleLogger::instance()->postMessage("Deleted list " + new_list->name()); regenerateUserLists(); } }); diff --git a/The-Orm/PatchListTree.h b/The-Orm/PatchListTree.h index 60b3e40e..1fcf06a6 100644 --- a/The-Orm/PatchListTree.h +++ b/The-Orm/PatchListTree.h @@ -18,7 +18,7 @@ class PatchListTree : public Component, private ChangeListener { typedef std::function TPatchSelectionHandler; PatchListTree(midikraft::PatchDatabase &db, std::vector const& synths); - virtual ~PatchListTree(); + virtual ~PatchListTree() override; TSelectionHandler onImportListSelected; TSelectionHandler onUserListSelected; @@ -26,7 +26,7 @@ class PatchListTree : public Component, private ChangeListener { TPatchSelectionHandler onPatchSelected; - virtual void resized(); + virtual void resized() override; void refreshAllUserLists(); void refreshUserList(std::string list_id); diff --git a/The-Orm/PatchPerSynthList.h b/The-Orm/PatchPerSynthList.h index 5f37eca9..f88c6f86 100644 --- a/The-Orm/PatchPerSynthList.h +++ b/The-Orm/PatchPerSynthList.h @@ -13,7 +13,7 @@ class PatchPerSynthList : public Component, private ChangeListener { public: PatchPerSynthList(); - virtual ~PatchPerSynthList(); + virtual ~PatchPerSynthList() override; virtual void resized() override; diff --git a/The-Orm/PatchSearchComponent.cpp b/The-Orm/PatchSearchComponent.cpp index e9273be3..88cb0513 100644 --- a/The-Orm/PatchSearchComponent.cpp +++ b/The-Orm/PatchSearchComponent.cpp @@ -13,7 +13,7 @@ namespace { - const char* kAllDataTypesFilter = "All types"; + //const char* kAllDataTypesFilter = "All types"; std::vector> kDisplayChoices = { { "Name and #", static_cast(PatchButtonInfo::NameDisplay)}, @@ -23,9 +23,9 @@ namespace { }; // A little helper - CategoryButtons::Category synthCategory(midikraft::NamedDeviceCapability* name) { + /*CategoryButtons::Category synthCategory(midikraft::NamedDeviceCapability* name) { return CategoryButtons::Category(name->getName(), Colours::black); - } + }*/ std::map> allSynthsMap() { std::map> synthMap; @@ -158,7 +158,7 @@ void PatchSearchComponent::resized() Rectangle area(getLocalBounds()); // The left part with the search box gets 25% of the screen - int leftPart = area.getWidth() / 4; + int leftPart = 0; //area.getWidth() / 4; // Determine the reserved place for the filter auto sortAndDisplayTypeWidth = LAYOUT_BUTTON_WIDTH + LAYOUT_INSET_NORMAL; @@ -187,8 +187,8 @@ void PatchSearchComponent::resized() int normalFilterHeight = (int) flexBoxSize.getHeight() + categoryFilters_.getHeight(); - auto sourceRow = leftHalf.removeFromTop(normalFilterHeight); - textSearch_.setBounds(sourceRow.withSizeKeepingCentre(leftPart, LAYOUT_LARGE_LINE_HEIGHT)); + //auto sourceRow = leftHalf.removeFromTop(normalFilterHeight); + //textSearch_.setBounds(sourceRow.withSizeKeepingCentre(leftPart, LAYOUT_LARGE_LINE_HEIGHT)); buttonDisplayType_.setBounds(sortAndDisplayTypeArea.removeFromTop(normalFilterHeight).withSizeKeepingCentre(LAYOUT_BUTTON_WIDTH, LAYOUT_BUTTON_HEIGHT)); diff --git a/The-Orm/PatchSearchComponent.h b/The-Orm/PatchSearchComponent.h index 209c8dae..4047fcb4 100644 --- a/The-Orm/PatchSearchComponent.h +++ b/The-Orm/PatchSearchComponent.h @@ -17,7 +17,7 @@ class PatchSearchComponent : public Component, private ChangeListener public: PatchSearchComponent(PatchView* patchView, PatchButtonPanel* patchButtons, midikraft::PatchDatabase& database); - virtual ~PatchSearchComponent(); + virtual ~PatchSearchComponent() override; virtual void resized() override; diff --git a/The-Orm/PatchView.h b/The-Orm/PatchView.h index 05e16254..fff79609 100644 --- a/The-Orm/PatchView.h +++ b/The-Orm/PatchView.h @@ -42,7 +42,7 @@ class PatchView : public Component, { public: PatchView(midikraft::PatchDatabase &database, std::vector const &synths); - virtual ~PatchView(); + virtual ~PatchView() override; void resized() override; diff --git a/The-Orm/RecordingView.cpp b/The-Orm/RecordingView.cpp index f3574206..31836f5b 100644 --- a/The-Orm/RecordingView.cpp +++ b/The-Orm/RecordingView.cpp @@ -91,8 +91,8 @@ void RecordingView::sampleNote() { // b) send a MIDI note to the current synth // register a callback that the recorder will call when the signal is done, and then refresh the Thumbnail recorder_.startRecording(filename ,true, [this]() { - String filename = recorder_.getFilename(); - thumbnail_.loadFromFile(filename.toStdString(), ""); + String recorder_filename = recorder_.getFilename(); + thumbnail_.loadFromFile(recorder_filename.toStdString(), ""); UIModel::instance()->thumbnails_.sendChangeMessage(); }); diff --git a/The-Orm/RecordingView.h b/The-Orm/RecordingView.h index af462790..5d6c09c0 100644 --- a/The-Orm/RecordingView.h +++ b/The-Orm/RecordingView.h @@ -19,7 +19,7 @@ class RecordingView : public Component, private ChangeListener { public: RecordingView(PatchView &patchView); - ~RecordingView(); + ~RecordingView() override; void stopAudio(); diff --git a/The-Orm/SettingsView.h b/The-Orm/SettingsView.h index be19990a..3704a517 100644 --- a/The-Orm/SettingsView.h +++ b/The-Orm/SettingsView.h @@ -20,7 +20,7 @@ class SettingsView : public Component, { public: SettingsView(std::vector const &synths); - virtual ~SettingsView(); + virtual ~SettingsView() override; void loadGlobals(); diff --git a/The-Orm/SetupView.cpp b/The-Orm/SetupView.cpp index f64787fd..1f71499e 100644 --- a/The-Orm/SetupView.cpp +++ b/The-Orm/SetupView.cpp @@ -166,7 +166,7 @@ void SetupView::refreshSynthActiveness() { } void SetupView::refreshData() { - int prop = 0; + size_t prop = 0; for (auto &synth : sortedSynthList_) { if (!synth.device()) continue; diff --git a/The-Orm/SetupView.h b/The-Orm/SetupView.h index bfa508da..533ddbac 100644 --- a/The-Orm/SetupView.h +++ b/The-Orm/SetupView.h @@ -25,7 +25,7 @@ class SetupView : public Component, { public: SetupView(midikraft::AutoDetection *autoDetection /*, HueLightControl *lights*/); - virtual ~SetupView(); + virtual ~SetupView() override; virtual void resized() override; diff --git a/adaptions/GenericAdaptation.h b/adaptions/GenericAdaptation.h index a347449e..d90321c9 100644 --- a/adaptions/GenericAdaptation.h +++ b/adaptions/GenericAdaptation.h @@ -72,8 +72,8 @@ namespace knobkraft { // This generic synth method is overridden to allow throttling of messages for older synths like the Korg MS2000 virtual void sendBlockOfMessagesToSynth(std::string const& midiOutput, std::vector const& buffer) override; - virtual std::string friendlyProgramName(MidiProgramNumber programNo) const; //TODO this looks like a capability - virtual std::string setupHelpText() const; + virtual std::string friendlyProgramName(MidiProgramNumber programNo) const override; //TODO this looks like a capability + virtual std::string setupHelpText() const override; // Internal workings of the Generic Adaptation module bool pythonModuleHasFunction(std::string const &functionName) const; diff --git a/synths/MidiKraft-BCR2000 b/synths/MidiKraft-BCR2000 index ea594b87..3a7d8e77 160000 --- a/synths/MidiKraft-BCR2000 +++ b/synths/MidiKraft-BCR2000 @@ -1 +1 @@ -Subproject commit ea594b87b3a9b2894109c2fc4f26b0dbb3515e5c +Subproject commit 3a7d8e771919153b18e86f78a803e7dbf26d753d