Skip to content

Commit

Permalink
added vstinstance id
Browse files Browse the repository at this point in the history
  • Loading branch information
igorkorsukov committed Jan 24, 2025
1 parent d02be6f commit ae6ef85
Show file tree
Hide file tree
Showing 23 changed files with 306 additions and 213 deletions.
14 changes: 14 additions & 0 deletions src/framework/global/containers.h
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,20 @@ inline bool remove(Map& c, const T& k)
return false;
}

template<typename Map, typename Predicate>
inline int remove_if(Map& c, Predicate pred)
{
auto old_size = c.size();
for (auto first = c.begin(), last = c.end(); first != last;) {
if (pred(*first)) {
first = c.erase(first);
} else {
++first;
}
}
return old_size - c.size();
}

template<typename Map, typename K>
inline auto take(Map& m, const K& k) -> typename Map::mapped_type
{
Expand Down
6 changes: 3 additions & 3 deletions src/framework/vst/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ set(MODULE_SRC
${CMAKE_CURRENT_LIST_DIR}/ivstmodulesrepository.h
${CMAKE_CURRENT_LIST_DIR}/ivstconfiguration.h
${CMAKE_CURRENT_LIST_DIR}/ivstinstancesregister.h
${CMAKE_CURRENT_LIST_DIR}/ivstinstance.h
${CMAKE_CURRENT_LIST_DIR}/ivstplugininstance.h
${CMAKE_CURRENT_LIST_DIR}/vsterrors.h
${CMAKE_CURRENT_LIST_DIR}/vsttypes.h
${CMAKE_CURRENT_LIST_DIR}/vstmodule.cpp
Expand All @@ -45,8 +45,8 @@ set(MODULE_SRC
${CMAKE_CURRENT_LIST_DIR}/internal/vstinstancesregister.h
${CMAKE_CURRENT_LIST_DIR}/internal/vstconfiguration.cpp
${CMAKE_CURRENT_LIST_DIR}/internal/vstconfiguration.h
${CMAKE_CURRENT_LIST_DIR}/internal/vstinstance.cpp
${CMAKE_CURRENT_LIST_DIR}/internal/vstinstance.h
${CMAKE_CURRENT_LIST_DIR}/internal/vstplugininstance.cpp
${CMAKE_CURRENT_LIST_DIR}/internal/vstplugininstance.h
${CMAKE_CURRENT_LIST_DIR}/internal/vstcomponenthandler.cpp
${CMAKE_CURRENT_LIST_DIR}/internal/vstcomponenthandler.h
${CMAKE_CURRENT_LIST_DIR}/internal/vstaudioclient.cpp
Expand Down
2 changes: 1 addition & 1 deletion src/framework/vst/internal/fx/vstfxprocessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ using namespace muse::vst;
using namespace muse::audio;
using namespace muse::audioplugins;

VstFxProcessor::VstFxProcessor(IVstInstancePtr&& instance, const AudioFxParams& params)
VstFxProcessor::VstFxProcessor(IVstPluginInstancePtr&& instance, const AudioFxParams& params)
: m_pluginPtr(instance),
m_vstAudioClient(std::make_unique<VstAudioClient>()),
m_params(params)
Expand Down
6 changes: 3 additions & 3 deletions src/framework/vst/internal/fx/vstfxprocessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@
#include "audio/iaudioconfiguration.h"

#include "../vstaudioclient.h"
#include "../../ivstinstance.h"
#include "../../ivstplugininstance.h"
#include "vsttypes.h"

namespace muse::vst {
class VstFxProcessor : public muse::audio::IFxProcessor, public async::Asyncable
{
muse::Inject<muse::audio::IAudioConfiguration> config;
public:
explicit VstFxProcessor(IVstInstancePtr&& instance, const muse::audio::AudioFxParams& params);
explicit VstFxProcessor(IVstPluginInstancePtr&& instance, const muse::audio::AudioFxParams& params);

void init();

Expand All @@ -54,7 +54,7 @@ class VstFxProcessor : public muse::audio::IFxProcessor, public async::Asyncable
private:
bool m_inited = false;

IVstInstancePtr m_pluginPtr = nullptr;
IVstPluginInstancePtr m_pluginPtr = nullptr;
std::unique_ptr<VstAudioClient> m_vstAudioClient = nullptr;

muse::audio::AudioFxParams m_params;
Expand Down
6 changes: 3 additions & 3 deletions src/framework/vst/internal/fx/vstfxresolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ IFxProcessorPtr VstFxResolver::createMasterFx(const AudioFxParams& fxParams) con
return nullptr;
}

IVstInstancePtr pluginPtr = instancesRegister()->makeAndRegisterMasterFxPlugin(fxParams.resourceMeta.id, fxParams.chainOrder);
IVstPluginInstancePtr pluginPtr = instancesRegister()->makeAndRegisterMasterFxPlugin(fxParams.resourceMeta.id, fxParams.chainOrder);

std::shared_ptr<VstFxProcessor> fx = std::make_shared<VstFxProcessor>(std::move(pluginPtr), fxParams);
fx->init();
Expand All @@ -70,7 +70,7 @@ IFxProcessorPtr VstFxResolver::createTrackFx(const TrackId trackId, const AudioF
return nullptr;
}

IVstInstancePtr pluginPtr = instancesRegister()->makeAndRegisterFxPlugin(trackId, fxParams.resourceMeta.id, fxParams.chainOrder);
IVstPluginInstancePtr pluginPtr = instancesRegister()->makeAndRegisterFxPlugin(fxParams.resourceMeta.id, trackId, fxParams.chainOrder);

std::shared_ptr<VstFxProcessor> fx = std::make_shared<VstFxProcessor>(std::move(pluginPtr), fxParams);
fx->init();
Expand All @@ -85,5 +85,5 @@ void VstFxResolver::removeMasterFx(const AudioResourceId& resoureId, AudioFxChai

void VstFxResolver::removeTrackFx(const TrackId trackId, const AudioResourceId& resoureId, AudioFxChainOrder chainOrder)
{
instancesRegister()->unregisterFxPlugin(trackId, resoureId, chainOrder);
instancesRegister()->unregisterFxPlugin(resoureId, trackId, chainOrder);
}
4 changes: 2 additions & 2 deletions src/framework/vst/internal/synth/vstsynthesiser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ VstSynthesiser::VstSynthesiser(const TrackId trackId, const muse::audio::AudioIn

VstSynthesiser::~VstSynthesiser()
{
instancesRegister()->unregisterInstrPlugin(m_trackId, m_params.resourceMeta.id);
instancesRegister()->unregisterInstrPlugin(m_params.resourceMeta.id, m_trackId);
}

void VstSynthesiser::init()
{
m_pluginPtr = instancesRegister()->makeAndRegisterInstrPlugin(m_trackId, m_params.resourceMeta.id);
m_pluginPtr = instancesRegister()->makeAndRegisterInstrPlugin(m_params.resourceMeta.id, m_trackId);

m_audioChannelsCount = config()->audioChannelsCount();
m_vstAudioClient->init(AudioPluginType::Instrument, m_pluginPtr, m_audioChannelsCount);
Expand Down
2 changes: 1 addition & 1 deletion src/framework/vst/internal/synth/vstsynthesiser.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class VstSynthesiser : public muse::audio::synth::AbstractSynthesizer
void toggleVolumeGain(const bool isActive);
audio::samples_t processSequence(const VstSequencer::EventSequence& sequence, const audio::samples_t samples, float* buffer);

IVstInstancePtr m_pluginPtr = nullptr;
IVstPluginInstancePtr m_pluginPtr = nullptr;
std::unique_ptr<VstAudioClient> m_vstAudioClient = nullptr;

unsigned int m_audioChannelsCount = 2;
Expand Down
2 changes: 1 addition & 1 deletion src/framework/vst/internal/vstaudioclient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ VstAudioClient::~VstAudioClient()
m_pluginComponent->terminate();
}

void VstAudioClient::init(AudioPluginType type, IVstInstancePtr instance, audioch_t audioChannelsCount)
void VstAudioClient::init(AudioPluginType type, IVstPluginInstancePtr instance, audioch_t audioChannelsCount)
{
IF_ASSERT_FAILED(instance && type != AudioPluginType::Undefined) {
return;
Expand Down
6 changes: 3 additions & 3 deletions src/framework/vst/internal/vstaudioclient.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

#include "audioplugins/audiopluginstypes.h"

#include "../ivstinstance.h"
#include "../ivstplugininstance.h"
#include "../vsttypes.h"

namespace muse::vst {
Expand All @@ -34,7 +34,7 @@ class VstAudioClient
VstAudioClient() = default;
~VstAudioClient();

void init(audioplugins::AudioPluginType type, IVstInstancePtr instance, muse::audio::audioch_t audioChannelsCount = 2);
void init(audioplugins::AudioPluginType type, IVstPluginInstancePtr instance, muse::audio::audioch_t audioChannelsCount = 2);

void loadSupportedParams();

Expand Down Expand Up @@ -85,7 +85,7 @@ class VstAudioClient
bool m_isActive = false;
muse::audio::gain_t m_volumeGain = 1.f; // 0.0 - 1.0

IVstInstancePtr m_pluginPtr = nullptr;
IVstPluginInstancePtr m_pluginPtr = nullptr;
mutable PluginComponentPtr m_pluginComponent = nullptr;

SamplesInfo m_samplesInfo;
Expand Down
Loading

0 comments on commit ae6ef85

Please sign in to comment.