⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ladspa.h

📁 Aqualung is an advanced music player primarily targeted for the GNU/Linux operating system, but als
💻 H
📖 第 1 页 / 共 2 页
字号:
#define LADSPA_HINT_DEFAULT_100     0x280/* This default hint indicates that the Hz frequency of `concert A'   should be used. This will be 440 unless the host uses an unusual   tuning convention, in which case it may be within a few Hz. */#define LADSPA_HINT_DEFAULT_440     0x2C0#define LADSPA_IS_HINT_BOUNDED_BELOW(x)   ((x) & LADSPA_HINT_BOUNDED_BELOW)#define LADSPA_IS_HINT_BOUNDED_ABOVE(x)   ((x) & LADSPA_HINT_BOUNDED_ABOVE)#define LADSPA_IS_HINT_TOGGLED(x)         ((x) & LADSPA_HINT_TOGGLED)#define LADSPA_IS_HINT_SAMPLE_RATE(x)     ((x) & LADSPA_HINT_SAMPLE_RATE)#define LADSPA_IS_HINT_LOGARITHMIC(x)     ((x) & LADSPA_HINT_LOGARITHMIC)#define LADSPA_IS_HINT_INTEGER(x)         ((x) & LADSPA_HINT_INTEGER)#define LADSPA_IS_HINT_HAS_DEFAULT(x)     ((x) & LADSPA_HINT_DEFAULT_MASK)#define LADSPA_IS_HINT_DEFAULT_MINIMUM(x) (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_MINIMUM)#define LADSPA_IS_HINT_DEFAULT_LOW(x)     (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_LOW)#define LADSPA_IS_HINT_DEFAULT_MIDDLE(x)  (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_MIDDLE)#define LADSPA_IS_HINT_DEFAULT_HIGH(x)    (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_HIGH)#define LADSPA_IS_HINT_DEFAULT_MAXIMUM(x) (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_MAXIMUM)#define LADSPA_IS_HINT_DEFAULT_0(x)       (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_0)#define LADSPA_IS_HINT_DEFAULT_1(x)       (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_1)#define LADSPA_IS_HINT_DEFAULT_100(x)     (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                           == LADSPA_HINT_DEFAULT_100)#define LADSPA_IS_HINT_DEFAULT_440(x)     (((x) & LADSPA_HINT_DEFAULT_MASK)   \                                            == LADSPA_HINT_DEFAULT_440)typedef struct _LADSPA_PortRangeHint {  /* Hints about the port. */  LADSPA_PortRangeHintDescriptor HintDescriptor;  /* Meaningful when hint LADSPA_HINT_BOUNDED_BELOW is active. When     LADSPA_HINT_SAMPLE_RATE is also active then this value should be     multiplied by the relevant sample rate. */  LADSPA_Data LowerBound;  /* Meaningful when hint LADSPA_HINT_BOUNDED_ABOVE is active. When     LADSPA_HINT_SAMPLE_RATE is also active then this value should be     multiplied by the relevant sample rate. */  LADSPA_Data UpperBound;} LADSPA_PortRangeHint;/*****************************************************************************//* Plugin Handles:    This plugin handle indicates a particular instance of the plugin   concerned. It is valid to compare this to NULL (0 for C++) but   otherwise the host should not attempt to interpret it. The plugin   may use it to reference internal instance data. */typedef void * LADSPA_Handle;/*****************************************************************************//* Descriptor for a Type of Plugin:    This structure is used to describe a plugin type. It provides a   number of functions to examine the type, instantiate it, link it to   buffers and workspaces and to run it. */typedef struct _LADSPA_Descriptor {   /* This numeric identifier indicates the plugin type     uniquely. Plugin programmers may reserve ranges of IDs from a     central body to avoid clashes. Hosts may assume that IDs are     below 0x1000000. */  unsigned long UniqueID;  /* This identifier can be used as a unique, case-sensitive     identifier for the plugin type within the plugin file. Plugin     types should be identified by file and label rather than by index     or plugin name, which may be changed in new plugin     versions. Labels must not contain white-space characters. */  const char * Label;  /* This indicates a number of properties of the plugin. */  LADSPA_Properties Properties;  /* This member points to the null-terminated name of the plugin     (e.g. "Sine Oscillator"). */  const char * Name;  /* This member points to the null-terminated string indicating the     maker of the plugin. This can be an empty string but not NULL. */  const char * Maker;  /* This member points to the null-terminated string indicating any     copyright applying to the plugin. If no Copyright applies the     string "None" should be used. */  const char * Copyright;  /* This indicates the number of ports (input AND output) present on     the plugin. */  unsigned long PortCount;  /* This member indicates an array of port descriptors. Valid indices     vary from 0 to PortCount-1. */  const LADSPA_PortDescriptor * PortDescriptors;  /* This member indicates an array of null-terminated strings     describing ports (e.g. "Frequency (Hz)"). Valid indices vary from     0 to PortCount-1. */  const char * const * PortNames;  /* This member indicates an array of range hints for each port (see     above). Valid indices vary from 0 to PortCount-1. */  const LADSPA_PortRangeHint * PortRangeHints;  /* This may be used by the plugin developer to pass any custom     implementation data into an instantiate call. It must not be used     or interpreted by the host. It is expected that most plugin     writers will not use this facility as LADSPA_Handle should be     used to hold instance data. */  void * ImplementationData;  /* This member is a function pointer that instantiates a plugin. A     handle is returned indicating the new plugin instance. The     instantiation function accepts a sample rate as a parameter. The     plugin descriptor from which this instantiate function was found     must also be passed. This function must return NULL if     instantiation fails.      Note that instance initialisation should generally occur in     activate() rather than here. */  LADSPA_Handle (*instantiate)(const struct _LADSPA_Descriptor * Descriptor,                               unsigned long                     SampleRate);  /* This member is a function pointer that connects a port on an     instantiated plugin to a memory location at which a block of data     for the port will be read/written. The data location is expected     to be an array of LADSPA_Data for audio ports or a single     LADSPA_Data value for control ports. Memory issues will be     managed by the host. The plugin must read/write the data at these     locations every time run() or run_adding() is called and the data     present at the time of this connection call should not be     considered meaningful.     connect_port() may be called more than once for a plugin instance     to allow the host to change the buffers that the plugin is     reading or writing. These calls may be made before or after     activate() or deactivate() calls.     connect_port() must be called at least once for each port before     run() or run_adding() is called. When working with blocks of     LADSPA_Data the plugin should pay careful attention to the block     size passed to the run function as the block allocated may only     just be large enough to contain the block of samples.     Plugin writers should be aware that the host may elect to use the     same buffer for more than one port and even use the same buffer     for both input and output (see LADSPA_PROPERTY_INPLACE_BROKEN).     However, overlapped buffers or use of a single buffer for both     audio and control data may result in unexpected behaviour. */   void (*connect_port)(LADSPA_Handle Instance,                        unsigned long Port,                        LADSPA_Data * DataLocation);  /* This member is a function pointer that initialises a plugin     instance and activates it for use. This is separated from     instantiate() to aid real-time support and so that hosts can     reinitialise a plugin instance by calling deactivate() and then     activate(). In this case the plugin instance must reset all state     information dependent on the history of the plugin instance     except for any data locations provided by connect_port() and any     gain set by set_run_adding_gain(). If there is nothing for     activate() to do then the plugin writer may provide a NULL rather     than an empty function.     When present, hosts must call this function once before run() (or     run_adding()) is called for the first time. This call should be     made as close to the run() call as possible and indicates to     real-time plugins that they are now live. Plugins should not rely     on a prompt call to run() after activate(). activate() may not be     called again unless deactivate() is called first. Note that     connect_port() may be called before or after a call to     activate(). */  void (*activate)(LADSPA_Handle Instance);  /* This method is a function pointer that runs an instance of a     plugin for a block. Two parameters are required: the first is a     handle to the particular instance to be run and the second     indicates the block size (in samples) for which the plugin     instance may run.     Note that if an activate() function exists then it must be called     before run() or run_adding(). If deactivate() is called for a     plugin instance then the plugin instance may not be reused until     activate() has been called again.     If the plugin has the property LADSPA_PROPERTY_HARD_RT_CAPABLE     then there are various things that the plugin should not do     within the run() or run_adding() functions (see above). */  void (*run)(LADSPA_Handle Instance,              unsigned long SampleCount);  /* This method is a function pointer that runs an instance of a     plugin for a block. This has identical behaviour to run() except     in the way data is output from the plugin. When run() is used,     values are written directly to the memory areas associated with     the output ports. However when run_adding() is called, values     must be added to the values already present in the memory     areas. Furthermore, output values written must be scaled by the     current gain set by set_run_adding_gain() (see below) before     addition.     run_adding() is optional. When it is not provided by a plugin,     this function pointer must be set to NULL. When it is provided,     the function set_run_adding_gain() must be provided also. */  void (*run_adding)(LADSPA_Handle Instance,                     unsigned long SampleCount);  /* This method is a function pointer that sets the output gain for     use when run_adding() is called (see above). If this function is     never called the gain is assumed to default to 1. Gain     information should be retained when activate() or deactivate()     are called.     This function should be provided by the plugin if and only if the     run_adding() function is provided. When it is absent this     function pointer must be set to NULL. */  void (*set_run_adding_gain)(LADSPA_Handle Instance,                              LADSPA_Data   Gain);  /* This is the counterpart to activate() (see above). If there is     nothing for deactivate() to do then the plugin writer may provide     a NULL rather than an empty function.     Hosts must deactivate all activated units after they have been     run() (or run_adding()) for the last time. This call should be     made as close to the last run() call as possible and indicates to     real-time plugins that they are no longer live. Plugins should     not rely on prompt deactivation. Note that connect_port() may be     called before or after a call to deactivate().     Deactivation is not similar to pausing as the plugin instance     will be reinitialised when activate() is called to reuse it. */  void (*deactivate)(LADSPA_Handle Instance);  /* Once an instance of a plugin has been finished with it can be     deleted using the following function. The instance handle passed     ceases to be valid after this call.       If activate() was called for a plugin instance then a     corresponding call to deactivate() must be made before cleanup()     is called. */  void (*cleanup)(LADSPA_Handle Instance);} LADSPA_Descriptor;/**********************************************************************//* Accessing a Plugin: *//* The exact mechanism by which plugins are loaded is host-dependent,   however all most hosts will need to know is the name of shared   object file containing the plugin types. To allow multiple hosts to   share plugin types, hosts may wish to check for environment   variable LADSPA_PATH. If present, this should contain a   colon-separated path indicating directories that should be searched   (in order) when loading plugin types.   A plugin programmer must include a function called   "ladspa_descriptor" with the following function prototype within   the shared object file. This function will have C-style linkage (if   you are using C++ this is taken care of by the `extern "C"' clause   at the top of the file).   A host will find the plugin shared object file by one means or   another, find the ladspa_descriptor() function, call it, and   proceed from there.   Plugin types are accessed by index (not ID) using values from 0   upwards. Out of range indexes must result in this function   returning NULL, so the plugin count can be determined by checking   for the least index that results in NULL being returned. */const LADSPA_Descriptor * ladspa_descriptor(unsigned long Index);/* Datatype corresponding to the ladspa_descriptor() function. */typedef const LADSPA_Descriptor * (*LADSPA_Descriptor_Function)(unsigned long Index);/**********************************************************************/#ifdef __cplusplus}#endif#endif /* LADSPA_INCLUDED *//* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -