[go: up one dir, main page]

Menu

[r99]: / MolossII / Source / GuiMain.h  Maximize  Restore  History

Download this file

144 lines (108 with data), 4.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*
==============================================================================
This is an automatically generated GUI class created by the Projucer!
Be careful when adding custom code to these files, as only the code within
the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
and re-saved.
Created with Projucer version: 7.0.4
------------------------------------------------------------------------------
The Projucer is part of the JUCE library.
Copyright (c) 2020 - Raw Material Software Limited.
==============================================================================
*/
#pragma once
//[Headers] -- You can add your own extra header files here --
#include "../JuceLibraryCode/JuceHeader.h"
#include "GuiVoice.h"
#include "GuiModVoice.h"
#include "GuiInfo.h"
//[/Headers]
//==============================================================================
/**
//[Comments]
An auto-generated component, created by the Projucer.
Describe your class and how it works here!
//[/Comments]
*/
class GuiMain : public Component,
public juce::ComboBox::Listener,
public juce::Button::Listener
{
public:
//==============================================================================
GuiMain ();
~GuiMain() override;
//==============================================================================
//[UserMethods] -- You can add your own custom methods in this section.
void setVCOParameters(int voiceIndex,
PitchParameters* paramPitch,
VCOParameters* paramVCO,
TVFParameters* paramTVF,
TVAParameters* paramTVA,
SynthParameters* paramSynth) {
getVoiceComponent(voiceIndex)->setParameters(paramPitch,paramVCO, paramTVF, paramTVA,this);
getModVoiceComponent(voiceIndex)->setParameters(paramPitch,paramVCO, paramTVF,paramTVA, paramSynth,this);
}
void updateFromParameters();
void setSynthParameters(SynthParameters* param);
GuiVoice*getVoiceComponent(int index) {
return dynamic_cast<GuiVoice*>(tabArray[index * 2].get());
}
GuiModVoice*getModVoiceComponent(int index) {
return dynamic_cast<GuiModVoice*>(tabArray[index * 2+1].get());
}
void updateCurrentFileState();
void updateCurrentFiles();
void updateActivity();
void lockMetronom();
void setVoiceNumberVisible(int voice, bool mod);
void setEffectsTab();
void setSettingsTab();
void displayInfo();
void closeInfo();
void initSoundCallback();
//[/UserMethods]
void paint (juce::Graphics& g) override;
void resized() override;
void comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged) override;
void buttonClicked (juce::Button* buttonThatWasClicked) override;
// Binary resources:
static const char* mainGb_png;
static const int mainGb_pngSize;
private:
//[UserVariables] -- You can add your own custom variables in this section.
MolossII *mProcessor;
SynthParameters* mSynthParameters = nullptr;
std::unique_ptr<GuiAttachment> mAttachment;
std::unique_ptr<MolossLookNFeel> molossLNF;
Array<WeakReference<Component>> tabArray;
WeakReference<Component> panelComponent;
WeakReference<Component> effectTab;
WeakReference<Component> settingsTab;
//[/UserVariables]
//==============================================================================
std::unique_ptr<juce::Component> tabView;
std::unique_ptr<juce::ComboBox> currentFile;
std::unique_ptr<juce::ImageButton> initSound;
std::unique_ptr<juce::ImageButton> loadSound;
std::unique_ptr<juce::ImageButton> saveSound;
std::unique_ptr<juce::ImageButton> saveSoundTo;
std::unique_ptr<juce::Slider> lvlVoice1;
std::unique_ptr<juce::Slider> lvlVoice2;
std::unique_ptr<juce::Slider> lvlVoice3;
std::unique_ptr<juce::Slider> lvlVoice4;
std::unique_ptr<juce::Slider> volume;
std::unique_ptr<juce::ToggleButton> active1;
std::unique_ptr<juce::ToggleButton> active2;
std::unique_ptr<juce::ToggleButton> active3;
std::unique_ptr<juce::ToggleButton> active4;
std::unique_ptr<juce::Component> sideTabView;
std::unique_ptr<GuiInfo> info;
std::unique_ptr<juce::ImageButton> size_minus;
std::unique_ptr<juce::ImageButton> size_plus;
juce::Image cachedImage_mainGb_png_1;
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GuiMain)
};
//[EndFile] You can add extra defines here...
//[/EndFile]