From 3f32716745e85f2aa2d5a95e2764ce13cb207efd Mon Sep 17 00:00:00 2001 From: George Reales Date: Sun, 6 Dec 2020 14:57:23 +0100 Subject: [PATCH 1/2] Documents folder permission crash fix --- Source/Images/main.png | Bin 27604 -> 28530 bytes Source/PluginEditor.cpp | 12 +++++++++--- Source/PluginEditor.h | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/Images/main.png b/Source/Images/main.png index 06fbfeedfb682fa5896227ec34ef1486a29e646e..d931cff088c8c6541fd82609b359e514357564b7 100644 GIT binary patch literal 28530 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 AQvd(} literal 27604 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�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 yzeOJY?Y#eUfgetTagName() == "PROPERTIES"){ @@ -483,7 +489,7 @@ void ObxdAudioProcessorEditor::updateFromHost() { } // Set to unlearn to false - if ( midiUnlearnButton->getToggleState()) { + if ( midiUnlearnButton && midiUnlearnButton->getToggleState()) { midiUnlearnButton->setToggleState(false, NotificationType:: sendNotification); } @@ -511,7 +517,7 @@ void ObxdAudioProcessorEditor::paint(Graphics& g) const File mainFile(skinFolder.getChildFile("main@2x.png")); #endif - if (skinFolder.exists() && mainFile.exists()) + if (!notLoadSkin && skinFolder.exists() && mainFile.exists()) { const Image image = ImageCache::getFromFile(mainFile); diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 03879df..a8b474c 100755 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -143,6 +143,7 @@ private: OwnedArray popupMenus; + bool notLoadSkin = false; int progStart; int bankStart; int skinStart; From 4ad33fded0e67612af0388b3849e378084d9e1a3 Mon Sep 17 00:00:00 2001 From: George Reales Date: Sun, 13 Dec 2020 19:06:22 +0100 Subject: [PATCH 2/2] Preset navigation + and - keys navigate between presets. Also works with numeric keyboard --- Source/PluginEditor.cpp | 17 +++++++++ Source/PluginEditor.h | 81 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 0dbc18f..54c766c 100755 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -23,6 +23,23 @@ ObxdAudioProcessorEditor::ObxdAudioProcessorEditor (ObxdAudioProcessor& ownerFil banks (processor.getBankFiles()) { // skinFolder = ownerFilter.getCurrentSkinFolder(); // initialized above + commandManager.registerAllCommandsForTarget(this); + commandManager.setFirstCommandTarget(this); + + // reset KeyPressMappingSet + commandManager.getKeyMappings()->resetToDefaultMappings(); + + // having set up the default key-mappings, you might now want to load the last set + // of mappings that the user configured. + //commandManager.getKeyMappings()->restoreFromXml(lastSavedKeyMappingsXML); + + // Now tell our top-level window to send any keypresses that arrive to the + // KeyPressMappingSet, which will use them to invoke the appropriate commands. + //addKeyListener(commandManager.getKeyMappings()); + getTopLevelComponent()->addKeyListener (commandManager.getKeyMappings()); + + //Timer::callAfterDelay (100, [this] { this->grabKeyboardFocus(); }); // ensure that key presses are sent to the KeyPressTarget object + startTimer(100); loadSkin (processor); repaint(); diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index a8b474c..a8bb5c3 100755 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -18,7 +18,14 @@ #include "Gui/TooglableButton.h" #include "Gui/ButtonList.h" - +enum KeyPressCommandIDs +{ + buttonNextProgram = 1, + buttonPrevProgram, + buttonPadNextProgram, + buttonPadPrevProgram, + +}; //============================================================================== /** */ @@ -28,6 +35,9 @@ class ObxdAudioProcessorEditor : public AudioProcessorEditor // , public Slider::Listener , public Button::Listener // , public ComboBox::Listener + , public ApplicationCommandTarget + , public Timer + { public: ObxdAudioProcessorEditor(ObxdAudioProcessor& ownerFilter); @@ -42,7 +52,73 @@ public: //============================================================================== void changeListenerCallback (ChangeBroadcaster* source) override; void buttonClicked (Button *) override; + //bool keyPressed(const KeyPress & press) override; + void timerCallback() override { + this->grabKeyboardFocus(); + } + ApplicationCommandTarget* getNextCommandTarget() override { + return nullptr; + }; + void getAllCommands (Array& commands) override { + Array ids { KeyPressCommandIDs::buttonNextProgram, KeyPressCommandIDs::buttonPrevProgram, + KeyPressCommandIDs::buttonPadNextProgram, KeyPressCommandIDs::buttonPadPrevProgram + }; + commands.addArray (ids); + }; + void getCommandInfo (CommandID commandID, ApplicationCommandInfo& result) override { + switch (commandID) + { + case KeyPressCommandIDs::buttonNextProgram: + result.setInfo ("Move up", "Move the button + ", "Button", 0); + result.addDefaultKeypress ('+', 0); + result.setActive (true); + break; + case KeyPressCommandIDs::buttonPrevProgram: + result.setInfo ("Move right", "Move the button - ", "Button", 0); + result.addDefaultKeypress ('-', 0); + result.setActive (true); + break; + case KeyPressCommandIDs::buttonPadNextProgram: + result.setInfo ("Move down", "Move the button Pad + ", "Button", 0); + result.addDefaultKeypress (KeyPress::numberPadAdd, 0); + result.setActive (true); + break; + case KeyPressCommandIDs::buttonPadPrevProgram: + result.setInfo ("Move left", "Move the button Pad -", "Button", 0); + result.addDefaultKeypress (KeyPress::numberPadSubtract, 0); + result.setActive (true); + break; + default: + break; + } + }; + bool perform (const InvocationInfo& info) override { + + switch (info.commandID) + { + case KeyPressCommandIDs::buttonNextProgram: + case KeyPressCommandIDs::buttonPadNextProgram: + nextProgram(); + break; + + case KeyPressCommandIDs::buttonPrevProgram: + case KeyPressCommandIDs::buttonPadPrevProgram: + prevProgram(); + break; + default: + return false; + } + return true; + };/* + bool keyPressed (const KeyPress& key, + Component* originatingComponent) override { + DBG("--- " << key.getKeyCode()); + + };*/ + + void nextProgram(); + void prevProgram(); private: Knob* addKnob (int x, int y, int d, ObxdAudioProcessor& filter, int parameter, String name, float defval); void placeLabel (int x, int y, String text); @@ -149,6 +225,9 @@ private: int skinStart; Array skins; Array banks; + + // Command manager + ApplicationCommandManager commandManager; }; #endif // PLUGINEDITOR_H_INCLUDED