From a4a57ae3e5ef5a6e757698ffb9c71d878bc4c047 Mon Sep 17 00:00:00 2001 From: waxfrenzy Date: Sun, 8 Dec 2002 18:56:26 +0000 Subject: [PATCH] Added option to supply paths and override LADSPA_PATH --- .../Plugins/LADSPAPlugin/LADSPAPlugin.C | 22 +++++++++++-------- .../Plugins/LADSPAPlugin/LADSPAPlugin.h | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.C b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.C index 174c930..0aa109b 100644 --- a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.C +++ b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.C @@ -48,6 +48,8 @@ int GetID() LADSPAPlugin::LADSPAPlugin() { + m_LADSPAInfo = new LADSPAInfo(false, ""); + m_PlugDesc = NULL; ClearPlugin(); @@ -61,7 +63,7 @@ LADSPAPlugin::LADSPAPlugin() m_PluginInfo.NumOutputs=1; m_PluginInfo.PortTips.push_back("Nuffink yet"); - m_MaxInputPortCount = m_LADSPAInfo.GetMaxInputPortCount(); + m_MaxInputPortCount = m_LADSPAInfo->GetMaxInputPortCount(); // For receiving from GUI m_AudioCH->RegisterData("SetPluginIndex", ChannelHandler::INPUT,&(m_InData.PluginIndex), sizeof(m_InData.PluginIndex)); @@ -106,6 +108,8 @@ LADSPAPlugin::~LADSPAPlugin() if (m_OutData.InputPortSettings) free(m_OutData.InputPortSettings); if (m_OutData.InputPortValues) free(m_OutData.InputPortValues); if (m_OutData.InputPortDefaults) free(m_OutData.InputPortDefaults); + + delete m_LADSPAInfo; } PluginInfo &LADSPAPlugin::Initialise(const HostInfo *Host) @@ -119,7 +123,7 @@ PluginInfo &LADSPAPlugin::Initialise(const HostInfo *Host) SpiralGUIType *LADSPAPlugin::CreateGUI() { return new LADSPAPluginGUI(m_PluginInfo.Width, m_PluginInfo.Height, - this, m_AudioCH, m_HostInfo, m_LADSPAInfo.GetPluginList()); + this, m_AudioCH, m_HostInfo, m_LADSPAInfo->GetPluginList()); } void LADSPAPlugin::Execute() @@ -196,7 +200,7 @@ void LADSPAPlugin::ExecuteCommands() break; case (SELECTPLUGIN): { - vector pe = m_LADSPAInfo.GetPluginList(); + vector pe = m_LADSPAInfo->GetPluginList(); UpdatePlugin(pe[m_InData.PluginIndex - 1].UniqueID); } break; @@ -662,7 +666,7 @@ void LADSPAPlugin::StreamIn(istream &s) if (Filename!="None") { // Get Unique ID from filename and label - UniqueID = m_LADSPAInfo.GetIDFromFilenameAndLabel(Filename, Label); + UniqueID = m_LADSPAInfo->GetIDFromFilenameAndLabel(Filename, Label); } } break; @@ -703,7 +707,7 @@ void LADSPAPlugin::StreamIn(istream &s) if (Filename!="None") { // Get Unique ID from filename and label - UniqueID = m_LADSPAInfo.GetIDFromFilenameAndLabel(Filename, Label); + UniqueID = m_LADSPAInfo->GetIDFromFilenameAndLabel(Filename, Label); } } break; @@ -719,7 +723,7 @@ void LADSPAPlugin::StreamIn(istream &s) if (Filename!="None") { // Get Unique ID from filename and label - UniqueID = m_LADSPAInfo.GetIDFromFilenameAndLabel(Filename, Label); + UniqueID = m_LADSPAInfo->GetIDFromFilenameAndLabel(Filename, Label); } } break; @@ -758,13 +762,13 @@ bool LADSPAPlugin::SelectPlugin(unsigned long UniqueID) // Reject trivial case if (UniqueID == 0) return false; - m_PlugDesc = m_LADSPAInfo.GetDescriptorByID(UniqueID, true); + m_PlugDesc = m_LADSPAInfo->GetDescriptorByID(UniqueID, true); if (m_PlugDesc) { // Create instance if (!(m_PlugInstHandle = m_PlugDesc->instantiate(m_PlugDesc, m_HostInfo->SAMPLERATE))) { cerr << "WARNING: Could not instantiate plugin " << UniqueID << endl; - m_LADSPAInfo.UnloadLibraryByID(UniqueID); + m_LADSPAInfo->UnloadLibraryByID(UniqueID); m_PlugDesc = 0; return false; } @@ -848,7 +852,7 @@ bool LADSPAPlugin::SelectPlugin(unsigned long UniqueID) UpdatePluginInfoWithHost(); m_UniqueID = m_PlugDesc->UniqueID; - m_PluginIndex = m_LADSPAInfo.GetPluginListEntryByID(m_UniqueID) + 1; + m_PluginIndex = m_LADSPAInfo->GetPluginListEntryByID(m_UniqueID) + 1; m_InputPortCount = m_PluginInfo.NumInputs; int lbl_length; diff --git a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.h b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.h index 18d10ad..952fd28 100644 --- a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.h +++ b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.h @@ -106,7 +106,7 @@ private: int m_Version; // our database of ladspa plugins - LADSPAInfo m_LADSPAInfo; + LADSPAInfo *m_LADSPAInfo; unsigned long m_PluginIndex; unsigned long m_UniqueID;