#include #include #include "ladspa.h" void quit (char * s) { fprintf (stderr, s); exit (1); } int main (int argc, char ** argv) { void * dlhandle; LADSPA_Descriptor_Function get_descriptor; const LADSPA_Descriptor * d; const LADSPA_PortValueEnum * e; int i; dlhandle = dlopen ("/usr/local/lib/ladspa/ambience.so", RTLD_LAZY); if (!dlhandle) quit ("can't open plugin\n"); get_descriptor = (LADSPA_Descriptor_Function) dlsym (dlhandle, "ladspa_descriptor"); if (!get_descriptor) quit ("no get_descriptor\n"); d = get_descriptor (0); if (d == 0) quit ("no plugin 0\n"); if (d->Properties & LADSPA_PROPERTY_HAVE_VERSION == 0) quit ("not version 2"); printf ("version: %d.%d\n", d->Version.major, d->Version.minor); printf ("latency: %.1f\n", d->Latency); for (i = 0; i < d->PortCount; ++i) { printf ("--------------------------------------------\n"); printf ("port: %s\n", d->PortNames[i]); printf (" default: %.1f\n", d->DefaultValues[i]); printf (" unit: %s\n", d->PortUnits[i]); if (d->PortValueEnum) { e = d->PortValueEnum[i]; while (e && e->Label) { printf (" value: %.2f = %s\n", e->Value, e->Label); ++e; } } } return 0; }