mirror of
https://codeberg.org/armin/sm-26.git
synced 2026-10-12 01:11:53 +02:00
SM-26 synthesizer: initial implementation
This commit is contained in:
commit
8734ac25f1
18 changed files with 2619 additions and 0 deletions
53
Source/PluginEditor.h
Normal file
53
Source/PluginEditor.h
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#pragma once
|
||||
|
||||
#include <JuceHeader.h>
|
||||
#include "PluginProcessor.h"
|
||||
#include "LcdDisplay.h"
|
||||
#include "MenuSystem.h"
|
||||
#include "Presets.h"
|
||||
#include "SynthParams.h"
|
||||
|
||||
class SM26AudioProcessorEditor : public juce::AudioProcessorEditor,
|
||||
private juce::Timer,
|
||||
private juce::Slider::Listener
|
||||
{
|
||||
public:
|
||||
SM26AudioProcessorEditor (SM26AudioProcessor&);
|
||||
~SM26AudioProcessorEditor() override;
|
||||
|
||||
void paint (juce::Graphics&) override;
|
||||
void resized() override;
|
||||
void timerCallback() override;
|
||||
|
||||
private:
|
||||
void sliderValueChanged (juce::Slider*) override;
|
||||
|
||||
void setupKnobs();
|
||||
void setupNavButtons();
|
||||
void buildRootMenu();
|
||||
void updateLCD();
|
||||
|
||||
SM26AudioProcessor& proc;
|
||||
MenuSystem menu;
|
||||
|
||||
LcdDisplay lcd;
|
||||
|
||||
juce::Slider knobSliders[4];
|
||||
juce::Label knobLabels[4];
|
||||
juce::Label knobValueLabels[4];
|
||||
|
||||
juce::TextButton navUp { "UP" };
|
||||
juce::TextButton navDown { "DOWN" };
|
||||
juce::TextButton navLeft { "LEFT" };
|
||||
juce::TextButton navRight { "RIGHT" };
|
||||
juce::TextButton navEnter { "ENTER" };
|
||||
juce::TextButton navEsc { "ESC" };
|
||||
|
||||
juce::Label footer;
|
||||
|
||||
bool menuWasOpen = false;
|
||||
|
||||
static juce::String buildGitFooter();
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SM26AudioProcessorEditor)
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue