Gin
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
ProcessorOptions Class Reference

Plugin metadata and configuration options for Processor. More...

#include <gin_processor.h>

Public Member Functions

 ProcessorOptions ()
 
ProcessorOptions withAdditionalCredits (juce::StringArray names) &&
 
ProcessorOptions withoutUpdateChecker () &&
 
ProcessorOptions withoutNewsChecker () &&
 
ProcessorOptions withoutTitleBar () &&
 
ProcessorOptions withMidiLearn () &&
 
ProcessorOptions withMidiLearn (juce::Array< int > ccsToIgnore) &&
 
ProcessorOptions withPresetMetadata () &&
 

Public Attributes

juce::String pluginName
 
juce::String devId
 
juce::String developer
 
juce::String pluginVersion
 
juce::String updatesURL
 
juce::String newsURL
 Feed the news checker reads, derived from the developer's own site the same way updatesURL is.
 
juce::String url
 
juce::String urlTitle
 
bool wantsMidi = false
 
bool makesMidi = false
 
bool useUpdateChecker = true
 
bool useNewsChecker = true
 
bool hasMidiLearn = false
 
bool usePresetMetadata = false
 
juce::Array< intmidiLearnIgnoredCCs
 CCs the plugin handles itself (sustain pedal, mod wheel, etc), so MIDI learn should neither learn them nor apply mappings loaded for them.
 
bool useTitleBar = true
 Whether ProcessorEditor builds its own TitleBar.
 
juce::StringArray programmingCredits
 
std::unique_ptr< juce::LookAndFeel > lookAndFeel
 

Detailed Description

Plugin metadata and configuration options for Processor.

ProcessorOptions provides configuration and metadata for a Gin-based plugin, including plugin identity (name, version, developer), capabilities (MIDI I/O), and optional features (update checker, news checker). When using a standard JUCE plugin project, the default constructor automatically fills these from JucePlugin_* preprocessor defines. For custom applications, you can manually configure all options.

Configuration Categories:

The class provides builder-style methods for common customizations:

Usage:

// Standard plugin (auto-configured from JucePlugin_* defines)
// Custom configuration
customOpts.pluginName = "My Synth";
customOpts.developer = "My Company";
customOpts.devId = "MYCO";
customOpts.pluginVersion = "1.0.0";
customOpts.wantsMidi = true;
customOpts.makesMidi = false;
// Builder pattern
.withAdditionalCredits({"Jane Smith", "Additional DSP"})
// Pass to Processor
MyProcessor processor(opts);
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25
Plugin metadata and configuration options for Processor.
Definition gin_processor.h:120
ProcessorOptions withoutNewsChecker() &&
Definition gin_processor.h:172
ProcessorOptions withoutUpdateChecker() &&
Definition gin_processor.h:166
See also
Processor

Constructor & Destructor Documentation

◆ ProcessorOptions()

ProcessorOptions::ProcessorOptions ( )

Member Function Documentation

◆ withAdditionalCredits()

ProcessorOptions ProcessorOptions::withAdditionalCredits ( juce::StringArray  names) &&

References programmingCredits.

◆ withoutUpdateChecker()

ProcessorOptions ProcessorOptions::withoutUpdateChecker ( ) &&

References useUpdateChecker.

◆ withoutNewsChecker()

ProcessorOptions ProcessorOptions::withoutNewsChecker ( ) &&

References useNewsChecker.

◆ withoutTitleBar()

ProcessorOptions ProcessorOptions::withoutTitleBar ( ) &&

References useTitleBar.

◆ withMidiLearn() [1/2]

ProcessorOptions ProcessorOptions::withMidiLearn ( ) &&

References hasMidiLearn.

◆ withMidiLearn() [2/2]

ProcessorOptions ProcessorOptions::withMidiLearn ( juce::Array< int ccsToIgnore) &&

◆ withPresetMetadata()

ProcessorOptions ProcessorOptions::withPresetMetadata ( ) &&

References usePresetMetadata.

Member Data Documentation

◆ pluginName

juce::String ProcessorOptions::pluginName

◆ devId

juce::String ProcessorOptions::devId

◆ developer

juce::String ProcessorOptions::developer

◆ pluginVersion

juce::String ProcessorOptions::pluginVersion

◆ updatesURL

juce::String ProcessorOptions::updatesURL

◆ newsURL

juce::String ProcessorOptions::newsURL

Feed the news checker reads, derived from the developer's own site the same way updatesURL is.

It used to be hard coded, which meant every plugin built on gin fetched socalabs' blog whoever had written it.

◆ url

juce::String ProcessorOptions::url

◆ urlTitle

juce::String ProcessorOptions::urlTitle

◆ wantsMidi

bool ProcessorOptions::wantsMidi = false

◆ makesMidi

bool ProcessorOptions::makesMidi = false

◆ useUpdateChecker

bool ProcessorOptions::useUpdateChecker = true

Referenced by withoutUpdateChecker().

◆ useNewsChecker

bool ProcessorOptions::useNewsChecker = true

Referenced by withoutNewsChecker().

◆ hasMidiLearn

bool ProcessorOptions::hasMidiLearn = false

Referenced by withMidiLearn(), and withMidiLearn().

◆ usePresetMetadata

bool ProcessorOptions::usePresetMetadata = false

Referenced by withPresetMetadata().

◆ midiLearnIgnoredCCs

juce::Array<int> ProcessorOptions::midiLearnIgnoredCCs

CCs the plugin handles itself (sustain pedal, mod wheel, etc), so MIDI learn should neither learn them nor apply mappings loaded for them.

Referenced by withMidiLearn().

◆ useTitleBar

bool ProcessorOptions::useTitleBar = true

Whether ProcessorEditor builds its own TitleBar.

Turn it off in a plugin that supplies its own header: the stock bar is not just hidden but never constructed, so it does not also stand up an update and a news checker behind the one you replaced it with.

Referenced by withoutTitleBar().

◆ programmingCredits

juce::StringArray ProcessorOptions::programmingCredits
Initial value:
=
{
"Roland Rabien",
"RAW Material Software JUCE Framework"
}

Referenced by withAdditionalCredits().

◆ lookAndFeel

std::unique_ptr<juce::LookAndFeel> ProcessorOptions::lookAndFeel

The documentation for this class was generated from the following file: