Lines Matching full:plugin
3 Linux Audio Developer's Simple Plugin API Version 1.1[LGPL].
38 Developer's Simple Plugin API') attempts to give programmers the
39 ability to write simple `plugin' audio processors in C/C++ and link
41 It should be possible for any host and any plugin to communicate
54 control data and each plugin is `run' for a `block' corresponding
57 to be processed by the plugin in a single pass. Control data is
61 duration. The plugin may assume that all its input and output ports
67 `plugin types' that can be used to instantiate actual plugins
68 (sometimes known as `plugin instances') that can be connected
75 /* Fundamental data type passed in and out of plugin. This data type
77 assumed that the plugin will work sensibly given any numeric input
87 /* Special Plugin Properties:
89 Optional features of the plugin type are encapsulated in the
95 /* Property LADSPA_PROPERTY_REALTIME indicates that the plugin has a
100 /* Property LADSPA_PROPERTY_INPLACE_BROKEN indicates that the plugin
104 hosts to use the plugin to process audio `in-place.' */
107 /* Property LADSPA_PROPERTY_HARD_RT_CAPABLE indicates that the plugin
109 `hard real-time' environment. To qualify for this the plugin must
112 (1) The plugin must not use malloc(), free() or other heap memory
117 (2) The plugin will not attempt to make use of any library
121 (3) The plugin will not access files, devices, pipes, sockets, IPC
125 (4) The plugin will take an amount of time to execute a run() or
128 may not depend on input signals or plugin state. The host is left
139 /* Plugin Ports:
174 /* Plugin Port Range Hints:
177 leaving a plugin (e.g. to generate a GUI automatically). To make
178 this more meaningful, the plugin should provide `hints' to the host
182 plugin must not assume that data supplied to it is meaningful. If
183 the plugin receives invalid input data it is expected to continue
355 /* Plugin Handles:
357 This plugin handle indicates a particular instance of the plugin
359 otherwise the host should not attempt to interpret it. The plugin
366 /* Descriptor for a Type of Plugin:
368 This structure is used to describe a plugin type. It provides a
374 /* This numeric identifier indicates the plugin type
375 uniquely. Plugin programmers may reserve ranges of IDs from a
381 identifier for the plugin type within the plugin file. Plugin
383 or plugin name, which may be changed in new plugin
387 /* This indicates a number of properties of the plugin. */
390 /* This member points to the null-terminated name of the plugin
395 maker of the plugin. This can be an empty string but not NULL. */
399 copyright applying to the plugin. If no Copyright applies the
404 the plugin. */
420 /* This may be used by the plugin developer to pass any custom
422 or interpreted by the host. It is expected that most plugin
427 /* This member is a function pointer that instantiates a plugin. A
428 handle is returned indicating the new plugin instance. The
430 plugin descriptor from which this instantiate function was found
440 instantiated plugin to a memory location at which a block of data
444 managed by the host. The plugin must read/write the data at these
449 connect_port() may be called more than once for a plugin instance
450 to allow the host to change the buffers that the plugin is
456 LADSPA_Data the plugin should pay careful attention to the block
460 Plugin writers should be aware that the host may elect to use the
469 /* This member is a function pointer that initialises a plugin
472 reinitialise a plugin instance by calling deactivate() and then
473 activate(). In this case the plugin instance must reset all state
474 information dependent on the history of the plugin instance
477 activate() to do then the plugin writer may provide a NULL rather
491 plugin for a block. Two parameters are required: the first is a
493 indicates the block size (in samples) for which the plugin
498 plugin instance then the plugin instance may not be reused until
501 If the plugin has the property LADSPA_PROPERTY_HARD_RT_CAPABLE
502 then there are various things that the plugin should not do
508 plugin for a block. This has identical behaviour to run() except
509 in the way data is output from the plugin. When run() is used,
517 run_adding() is optional. When it is not provided by a plugin,
529 This function should be provided by the plugin if and only if the
536 nothing for deactivate() to do then the plugin writer may provide
546 Deactivation is not similar to pausing as the plugin instance
550 /* Once an instance of a plugin has been finished with it can be
554 If activate() was called for a plugin instance then a
563 /* Accessing a Plugin: */
567 object file containing the plugin types. To allow multiple hosts to
568 share plugin types, hosts may wish to check for environment
571 (in order) when loading plugin types.
573 A plugin programmer must include a function called
579 A host will find the plugin shared object file by one means or
583 Plugin types are accessed by index (not ID) using values from 0
585 returning NULL, so the plugin count can be determined by checking