@@ -1 +1 @@ | |||
Subproject commit 30489c5aa1392f698e904c6aced1d7a486634c40 | |||
Subproject commit 682f1cf203707f21c2eed4fa3f89c23c52accc49 |
@@ -23,7 +23,6 @@ struct SVGPanel; | |||
// A 1U module should be 15x380. Thus the width of a module should be a factor of 15. | |||
#define RACK_GRID_WIDTH 15 | |||
#define RACK_GRID_HEIGHT 380 | |||
static const Vec RACK_GRID_SIZE = Vec(15, 380); | |||
@@ -1,59 +1,12 @@ | |||
#pragma once | |||
#include <string> | |||
#include <list> | |||
#include "tags.hpp" | |||
namespace rack { | |||
enum ModelTag { | |||
AMPLIFIER_TAG, | |||
ATTENUATOR_TAG, | |||
BLANK_TAG, | |||
CLOCK_TAG, | |||
CONTROLLER_TAG, | |||
DELAY_TAG, | |||
DIGITAL_TAG, | |||
DISTORTION_TAG, | |||
DRUM_TAG, | |||
DUAL_TAG, | |||
DYNAMICS_TAG, | |||
EFFECT_TAG, | |||
ENVELOPE_FOLLOWER_TAG, | |||
ENVELOPE_GENERATOR_TAG, | |||
EQUALIZER_TAG, | |||
EXTERNAL_TAG, | |||
FILTER_TAG, | |||
FUNCTION_GENERATOR_TAG, | |||
GRANULAR_TAG, | |||
LFO_TAG, | |||
LOGIC_TAG, | |||
LOW_PASS_GATE_TAG, | |||
MIDI_TAG, | |||
MIXER_TAG, | |||
MULTIPLE_TAG, | |||
NOISE_TAG, | |||
OSCILLATOR_TAG, | |||
PANNING_TAG, | |||
QUAD_TAG, | |||
QUANTIZER_TAG, | |||
RANDOM_TAG, | |||
REVERB_TAG, | |||
RING_MODULATOR_TAG, | |||
SAMPLE_AND_HOLD_TAG, | |||
SAMPLER_TAG, | |||
SEQUENCER_TAG, | |||
SLEW_LIMITER_TAG, | |||
SWITCH_TAG, | |||
SYNTH_VOICE_TAG, | |||
TUNER_TAG, | |||
UTILITY_TAG, | |||
VISUAL_TAG, | |||
WAVESHAPER_TAG, | |||
NUM_TAGS | |||
}; | |||
struct ModuleWidget; | |||
struct Model; | |||
@@ -118,7 +71,6 @@ std::string pluginGetLoginStatus(); | |||
extern std::list<Plugin*> gPlugins; | |||
extern std::string gToken; | |||
extern std::string gTagNames[NUM_TAGS]; | |||
} // namespace rack | |||
@@ -0,0 +1,72 @@ | |||
#pragma once | |||
#include <string> | |||
namespace rack { | |||
/** Describes the type(s) of each module | |||
To see comments, turn word wrap on. I'm using inline comments so I can automatically sort the list when more tags are added. | |||
*/ | |||
enum ModelTag { | |||
AMPLIFIER_TAG, | |||
ATTENUATOR_TAG, | |||
BLANK_TAG, | |||
CHORUS_TAG, | |||
CLOCK_TAG, | |||
COMPRESSOR_TAG, | |||
CONTROLLER_TAG, // Use only if the artist "performs" with this module. Knobs are not sufficient. Examples: on-screen keyboard, XY pad. | |||
DELAY_TAG, | |||
DIGITAL_TAG, | |||
DISTORTION_TAG, | |||
DRUM_TAG, | |||
DUAL_TAG, // The core functionality times two. If multiple channels are a requirement for the module to exist (ring modulator, mixer, etc), it is not a Dual module. | |||
DYNAMICS_TAG, | |||
EFFECT_TAG, | |||
ENVELOPE_FOLLOWER_TAG, | |||
ENVELOPE_GENERATOR_TAG, | |||
EQUALIZER_TAG, | |||
EXTERNAL_TAG, | |||
FILTER_TAG, | |||
FLANGER_TAG, | |||
FUNCTION_GENERATOR_TAG, | |||
GRANULAR_TAG, | |||
LFO_TAG, | |||
LIMITER_TAG, | |||
LOGIC_TAG, | |||
LOW_PASS_GATE_TAG, | |||
MIDI_TAG, | |||
MIXER_TAG, | |||
MULTIPLE_TAG, | |||
NOISE_TAG, | |||
OSCILLATOR_TAG, | |||
PANNING_TAG, | |||
PHASER_TAG, | |||
PHYSICAL_MODELING_TAG, | |||
QUAD_TAG, // The core functionality times four. If multiple channels are a requirement for the module to exist (ring modulator, mixer, etc), it is not a Quad module. | |||
QUANTIZER_TAG, | |||
RANDOM_TAG, | |||
RECORDING_TAG, | |||
REVERB_TAG, | |||
RING_MODULATOR_TAG, | |||
SAMPLE_AND_HOLD_TAG, | |||
SAMPLER_TAG, | |||
SEQUENCER_TAG, | |||
SLEW_LIMITER_TAG, | |||
SWITCH_TAG, | |||
SYNTH_VOICE_TAG, // A synth voice must have an envelope built-in. | |||
TUNER_TAG, | |||
UTILITY_TAG, // Serves only extremely basic functions, like inverting, max, min, multiplying by 2, etc. | |||
VISUAL_TAG, | |||
VOCODER_TAG, | |||
WAVESHAPER_TAG, | |||
NUM_TAGS | |||
}; | |||
void tagsInit(); | |||
extern std::string gTagNames[NUM_TAGS]; | |||
} // namespace rack |
@@ -31,52 +31,6 @@ namespace rack { | |||
std::list<Plugin*> gPlugins; | |||
std::string gToken; | |||
std::string gTagNames[NUM_TAGS] = { | |||
"Amplifier/VCA", | |||
"Attenuator", | |||
"Blank", | |||
"Clock", | |||
"Controller", | |||
"Delay", | |||
"Digital", | |||
"Distortion", | |||
"Drum", | |||
"Dual/Stereo", | |||
"Dynamics", | |||
"Effect", | |||
"Envelope Follower", | |||
"Envelope Generator", | |||
"Equalizer", | |||
"External", | |||
"Filter/VCF", | |||
"Function Generator", | |||
"Granular", | |||
"LFO", | |||
"Logic", | |||
"Low Pass Gate", | |||
"MIDI", | |||
"Mixer", | |||
"Multiple", | |||
"Noise", | |||
"Oscillator/VCO", | |||
"Panning", | |||
"Quad", | |||
"Quantizer", | |||
"Random", | |||
"Reverb", | |||
"Ring Modulator", | |||
"Sample and Hold", | |||
"Sampler", | |||
"Sequencer", | |||
"Slew Limiter", | |||
"Switch", | |||
"Synth Voice", | |||
"Tuner", | |||
"Utility", | |||
"Visual", | |||
"Waveshaper", | |||
}; | |||
static bool isDownloading = false; | |||
static float downloadProgress = 0.0; | |||
@@ -293,6 +247,7 @@ static void refreshPurchase(json_t *pluginJ) { | |||
//////////////////// | |||
void pluginInit() { | |||
tagsInit(); | |||
// Load core | |||
// This function is defined in core.cpp | |||
Plugin *coreManufacturer = new Plugin(); | |||
@@ -0,0 +1,64 @@ | |||
#include "tags.hpp" | |||
namespace rack { | |||
std::string gTagNames[NUM_TAGS]; | |||
void tagsInit() { | |||
gTagNames[AMPLIFIER_TAG] = "Amplifier/VCA"; | |||
gTagNames[ATTENUATOR_TAG] = "Attenuator"; | |||
gTagNames[BLANK_TAG] = "Blank"; | |||
gTagNames[CHORUS_TAG] = "Chorus"; | |||
gTagNames[CLOCK_TAG] = "Clock"; | |||
gTagNames[COMPRESSOR_TAG] = "Compressor"; | |||
gTagNames[CONTROLLER_TAG] = "Controller"; | |||
gTagNames[DELAY_TAG] = "Delay"; | |||
gTagNames[DIGITAL_TAG] = "Digital"; | |||
gTagNames[DISTORTION_TAG] = "Distortion"; | |||
gTagNames[DRUM_TAG] = "Drum"; | |||
gTagNames[DUAL_TAG] = "Dual/Stereo"; | |||
gTagNames[DYNAMICS_TAG] = "Dynamics"; | |||
gTagNames[EFFECT_TAG] = "Effect"; | |||
gTagNames[ENVELOPE_FOLLOWER_TAG] = "Envelope Follower"; | |||
gTagNames[ENVELOPE_GENERATOR_TAG] = "Envelope Generator"; | |||
gTagNames[EQUALIZER_TAG] = "Equalizer"; | |||
gTagNames[EXTERNAL_TAG] = "External"; | |||
gTagNames[FILTER_TAG] = "Filter/VCF"; | |||
gTagNames[FLANGER_TAG] = "Flanger"; | |||
gTagNames[FUNCTION_GENERATOR_TAG] = "Function Generator"; | |||
gTagNames[GRANULAR_TAG] = "Granular"; | |||
gTagNames[LFO_TAG] = "LFO"; | |||
gTagNames[LIMITER_TAG] = "Limiter"; | |||
gTagNames[LOGIC_TAG] = "Logic"; | |||
gTagNames[LOW_PASS_GATE_TAG] = "Low Pass Gate"; | |||
gTagNames[MIDI_TAG] = "MIDI"; | |||
gTagNames[MIXER_TAG] = "Mixer"; | |||
gTagNames[MULTIPLE_TAG] = "Multiple"; | |||
gTagNames[NOISE_TAG] = "Noise"; | |||
gTagNames[OSCILLATOR_TAG] = "Oscillator/VCO"; | |||
gTagNames[PANNING_TAG] = "Panning"; | |||
gTagNames[PHASER_TAG] = "Phaser"; | |||
gTagNames[QUAD_TAG] = "Quad"; | |||
gTagNames[QUANTIZER_TAG] = "Quantizer"; | |||
gTagNames[RANDOM_TAG] = "Random"; | |||
gTagNames[RECORDING_TAG] = "Recording"; | |||
gTagNames[REVERB_TAG] = "Reverb"; | |||
gTagNames[RING_MODULATOR_TAG] = "Ring Modulator"; | |||
gTagNames[SAMPLE_AND_HOLD_TAG] = "Sample and Hold"; | |||
gTagNames[SAMPLER_TAG] = "Sampler"; | |||
gTagNames[SEQUENCER_TAG] = "Sequencer"; | |||
gTagNames[SLEW_LIMITER_TAG] = "Slew Limiter"; | |||
gTagNames[SWITCH_TAG] = "Switch"; | |||
gTagNames[SYNTH_VOICE_TAG] = "Synth Voice"; | |||
gTagNames[TUNER_TAG] = "Tuner"; | |||
gTagNames[UTILITY_TAG] = "Utility"; | |||
gTagNames[VISUAL_TAG] = "Visual"; | |||
gTagNames[VOCODER_TAG] = "Vocoder"; | |||
gTagNames[WAVESHAPER_TAG] = "Waveshaper"; | |||
} | |||
} // namespace rack |