Return potential invalid Plugin from pluginFactory::create()
This commit is contained in:
parent
f6631ece91
commit
877272441f
|
@ -54,9 +54,16 @@ std::unique_ptr<Plugin> createInvalid(const std::string& pid, ID id)
|
|||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
std::unique_ptr<Plugin> create(ID id, std::unique_ptr<juce::AudioPluginInstance> pi, const model::Sequencer& sequencer,
|
||||
int sampleRate, int bufferSize)
|
||||
std::unique_ptr<Plugin> create(ID id, const std::string& pid, std::unique_ptr<juce::AudioPluginInstance> pi,
|
||||
const model::Sequencer& sequencer, int sampleRate, int bufferSize)
|
||||
{
|
||||
/* If the original juce::AudioPluginInstance is invalid, just return an
|
||||
invalid giada::m::Plugin object. This way we can keep track of invalid
|
||||
plug-ins. */
|
||||
|
||||
if (pi == nullptr)
|
||||
return pluginFactory::createInvalid(pid, id);
|
||||
|
||||
return std::make_unique<Plugin>(
|
||||
pluginId_.generate(id),
|
||||
std::move(pi),
|
||||
|
@ -69,14 +76,7 @@ std::unique_ptr<Plugin> create(ID id, std::unique_ptr<juce::AudioPluginInstance>
|
|||
std::unique_ptr<Plugin> deserializePlugin(const Patch::Plugin& pplugin, std::unique_ptr<juce::AudioPluginInstance> pi,
|
||||
const model::Sequencer& sequencer, int sampleRate, int bufferSize)
|
||||
{
|
||||
/* If the original juce::AudioPluginInstance is invalid, just return an
|
||||
invalid giada::m::Plugin object. This way we can keep track of invalid
|
||||
plug-ins. */
|
||||
|
||||
if (pi == nullptr)
|
||||
return pluginFactory::createInvalid(pplugin.path, pplugin.id);
|
||||
|
||||
std::unique_ptr<Plugin> plugin = create(pplugin.id, std::move(pi), sequencer, sampleRate, bufferSize);
|
||||
std::unique_ptr<Plugin> plugin = create(pplugin.id, pplugin.path, std::move(pi), sequencer, sampleRate, bufferSize);
|
||||
|
||||
plugin->setBypass(pplugin.bypass);
|
||||
plugin->setState(PluginState(pplugin.state));
|
||||
|
|
|
@ -51,8 +51,8 @@ Resets internal ID generator. */
|
|||
void reset();
|
||||
|
||||
std::unique_ptr<Plugin> createInvalid(const std::string& pid, ID id);
|
||||
std::unique_ptr<Plugin> create(ID id, std::unique_ptr<juce::AudioPluginInstance>, const model::Sequencer&,
|
||||
int sampleRate, int bufferSize);
|
||||
std::unique_ptr<Plugin> create(ID id, const std::string& pid, std::unique_ptr<juce::AudioPluginInstance>,
|
||||
const model::Sequencer&, int sampleRate, int bufferSize);
|
||||
|
||||
std::unique_ptr<Plugin> deserializePlugin(const Patch::Plugin&, std::unique_ptr<juce::AudioPluginInstance>,
|
||||
const model::Sequencer&, int sampleRate, int bufferSize);
|
||||
|
|
|
@ -110,10 +110,7 @@ std::unique_ptr<Plugin> PluginManager::makePlugin(const std::string& pid,
|
|||
int sampleRate, int bufferSize, const model::Sequencer& sequencer, ID id)
|
||||
{
|
||||
std::unique_ptr<juce::AudioPluginInstance> pi = makeJucePlugin(pid, sampleRate, bufferSize);
|
||||
if (pi == nullptr)
|
||||
return pluginFactory::createInvalid(pid, id);
|
||||
|
||||
return pluginFactory::create(id, std::move(pi), sequencer, sampleRate, bufferSize);
|
||||
return pluginFactory::create(id, pid, std::move(pi), sequencer, sampleRate, bufferSize);
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
|
Loading…
Reference in New Issue