/usr/include/CLAM/LadspaLibrary.hxx is in libclam-dev 1.4.0-5build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #ifndef LadspaLibrary_hxx
#define LadspaLibrary_hxx
#include <ladspa.h>
#include <vector>
namespace CLAM
{
/**
A LadspaLibrary represents a pool of ladspa plugins descriptors.
You can register new plugin type by calling AddPluginType.
Normally you want to implicitly add plugins by creating a
CLAM::LadspaNetworkExporter or a CLAM::LadspaProcessingExporter.
@see CLAM::LadspaNetworkExporter
@see CLAM::LadspaProcessingExporter
@group Ladspa
*/
class LadspaLibrary
{
std::vector<LADSPA_Descriptor * > _descriptors;
static void CleanUpDescriptor(LADSPA_Descriptor *& descriptor)
{
if (not descriptor) return;
delete[] descriptor->Label;
delete[] descriptor->Name;
delete[] descriptor->Maker;
delete[] descriptor->Copyright;
delete[] descriptor->PortDescriptors;
for (unsigned long lIndex = 0; lIndex < descriptor->PortCount; lIndex++)
delete[] descriptor->PortNames[lIndex];
delete[] descriptor->PortNames;
delete[] descriptor->PortRangeHints;
delete descriptor;
descriptor = 0;
}
public:
LadspaLibrary()
{
}
~LadspaLibrary()
{
for (unsigned i=0; i<_descriptors.size(); i++)
CleanUpDescriptor(_descriptors[i]);
}
void AddPluginType(LADSPA_Descriptor * descriptor)
{
_descriptors.push_back(descriptor);
}
LADSPA_Descriptor * pluginAt(unsigned long i)
{
if (i>=_descriptors.size()) return 0;
return _descriptors[i];
}
static char *dupstr( char const *args )
{
const size_t v = strlen(args) + 1;
char * s = new char[v];
memcpy( s, args, v);
return s;
}
};
}
#endif//LadspaLibrary_hxx
|