1
Fork 0

New pluginFactory::create(), use it in PluginManager

This commit is contained in:
gvnnz 2023-06-11 16:11:17 +02:00
parent 0cda95a0e6
commit 1957d8cc92
3 changed files with 22 additions and 5 deletions

View File

@ -27,6 +27,7 @@
#include "core/plugins/pluginFactory.h"
#include "core/idManager.h"
#include "core/plugins/plugin.h"
#include "core/plugins/pluginHost.h"
namespace giada::m::pluginFactory
{
@ -50,4 +51,16 @@ std::unique_ptr<Plugin> createInvalid(const std::string& pid, ID id)
{
return std::make_unique<Plugin>(pluginId_.generate(id), pid);
}
/* -------------------------------------------------------------------------- */
std::unique_ptr<Plugin> create(ID id, std::unique_ptr<juce::AudioPluginInstance> pi, const model::Sequencer& sequencer,
int sampleRate, int bufferSize)
{
return std::make_unique<Plugin>(
pluginId_.generate(id),
std::move(pi),
std::make_unique<PluginHost::Info>(sequencer, sampleRate),
sampleRate, bufferSize);
}
} // namespace giada::m::pluginFactory

View File

@ -28,6 +28,7 @@
#define G_PLUGIN_FACTORY_H
#include "core/types.h"
#include <juce_audio_processors/juce_audio_processors.h>
#include <memory>
#include <string>
@ -36,6 +37,11 @@ namespace giada::m
class Plugin;
}
namespace giada::m::model
{
class Sequencer;
}
namespace giada::m::pluginFactory
{
/* reset
@ -44,6 +50,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);
} // namespace giada::m::pluginFactory
#endif

View File

@ -123,11 +123,7 @@ std::unique_ptr<Plugin> PluginManager::makePlugin(const std::string& pid,
return pluginFactory::createInvalid(pid, id);
}
return std::make_unique<Plugin>(
m_pluginId.generate(id),
std::move(pi),
std::make_unique<PluginHost::Info>(sequencer, sampleRate),
sampleRate, bufferSize);
return pluginFactory::create(id, std::move(pi), sequencer, sampleRate, bufferSize);
}
/* -------------------------------------------------------------------------- */