• Main Page
  • Data Structures
  • Files
  • File List
  • Globals

lv2.h

Go to the documentation of this file.
00001 /* LV2 - LADSPA (Linux Audio Developer's Simple Plugin API) Version 2
00002  * Revision 1
00003  *
00004  * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis,
00005  *                         Stefan Westerfeld.
00006  * Copyright (C) 2006-2008 Steve Harris, David Robillard.
00007  *
00008  * This header is free software; you can redistribute it and/or modify it
00009  * under the terms of the GNU Lesser General Public License as published
00010  * by the Free Software Foundation; either version 2.1 of the License,
00011  * or (at your option) any later version.
00012  *
00013  * This header is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
00021  * USA.
00022  */
00023 
00024 #ifndef LV2_H_INCLUDED
00025 #define LV2_H_INCLUDED
00026 
00027 #include <stdint.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032 
00033 
00034 /* ************************************************************************* */
00035 
00036 
00109 /* ************************************************************************* */
00110 
00111 
00118 typedef void * LV2_Handle;
00119 
00120 
00121 /* ************************************************************************* */
00122 
00123 
00132 typedef struct _LV2_Feature {
00137     const char * URI;
00138 
00147     void * data;
00148 } LV2_Feature;
00149 
00150 
00151 /* ************************************************************************* */
00152 
00153 
00158 typedef struct _LV2_Descriptor {
00159 
00171     const char * URI;
00172 
00196     LV2_Handle (*instantiate)(const struct _LV2_Descriptor * descriptor,
00197                               double                         sample_rate,
00198                               const char *                   bundle_path,
00199                               const LV2_Feature *const *     features);
00200 
00236     void (*connect_port)(LV2_Handle instance,
00237                          uint32_t   port,
00238                          void *     data_location);
00239 
00262     void (*activate)(LV2_Handle instance);
00263 
00278     void (*run)(LV2_Handle instance,
00279                 uint32_t   sample_count);
00280 
00296     void (*deactivate)(LV2_Handle instance);
00297 
00307     void (*cleanup)(LV2_Handle instance);
00308 
00333     const void* (*extension_data)(const char * uri);
00334 
00335 } LV2_Descriptor;
00336 
00337 
00338 /* ****************************************************************** */
00339 
00340 
00366 const LV2_Descriptor * lv2_descriptor(uint32_t index);
00367 
00368 
00370 typedef const LV2_Descriptor *
00371 (*LV2_Descriptor_Function)(uint32_t index);
00372 
00373 
00374 /* ******************************************************************** */
00375 
00376 
00377 /* Put this (LV2_SYMBOL_EXPORT) before any functions that are to be loaded
00378  * by the host as a symbol from the dynamic library.
00379  */
00380 #ifdef WIN32
00381 #define LV2_SYMBOL_EXPORT __declspec(dllexport)
00382 #else
00383 #define LV2_SYMBOL_EXPORT
00384 #endif
00385 
00386 
00387 #ifdef __cplusplus
00388 }
00389 #endif
00390 
00391 #endif /* LV2_H_INCLUDED */
00392 

Generated on Fri Sep 16 2011 for LV2Core by  doxygen 1.7.1