Header file | LV2UI_Descriptor

lv2-gui.h

Go to the documentation of this file.
00001 /************************************************************************
00002  *
00003  * In-process UI extension for LV2
00004  *
00005  * Copyright (C) 2006-2007 Lars Luthman <lars.luthman@gmail.com>
00006  * 
00007  * Based on lv2.h, which was
00008  *
00009  * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, 
00010  *                         Stefan Westerfeld
00011  * Copyright (C) 2006 Steve Harris, Dave Robillard.
00012  *
00013  * This header is free software; you can redistribute it and/or modify it
00014  * under the terms of the GNU Lesser General Public License as published
00015  * by the Free Software Foundation; either version 2.1 of the License,
00016  * or (at your option) any later version.
00017  *
00018  * This header is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00021  * Lesser General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU Lesser General Public
00024  * License along with this library; if not, write to the Free Software
00025  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
00026  * USA.
00027  *
00028  ***********************************************************************/
00029 
00096 #ifndef LV2_IPGUI_H
00097 #define LV2_IPGUI_H
00098 
00099 #include "lv2.h"
00100 
00101 
00102 #ifdef __cplusplus
00103 extern "C" {
00104 #endif
00105 
00106 
00117 typedef void* LV2UI_Widget;
00118 
00119   
00124 typedef void* LV2UI_Handle;
00125 
00126 
00131 typedef void* LV2UI_Controller;
00132 
00133 
00156 typedef void (*LV2UI_Write_Function)(LV2UI_Controller controller,
00157                                      uint32_t         port_index,
00158                                      uint32_t         buffer_size,
00159                                      const void*      buffer);
00160 
00161 
00163 typedef struct _LV2UI_Descriptor {
00164   
00166   const char* URI;
00167   
00189   LV2UI_Handle (*instantiate)(const struct _LV2UI_Descriptor* descriptor,
00190                               const char*                     plugin_uri,
00191                               const char*                     bundle_path,
00192                               LV2UI_Write_Function            write_function,
00193                               LV2UI_Controller                controller,
00194                               LV2UI_Widget*                   widget,
00195                               const LV2_Feature* const*       features);
00196 
00197   
00201   void (*cleanup)(LV2UI_Handle gui);
00202   
00246   void (*port_event)(LV2UI_Handle   gui,
00247                      uint32_t       port,
00248                      uint32_t       buffer_size,
00249                      const void*    buffer);
00250   
00258   const void* (*extension_data)(const char*  uri);
00259 
00260 } LV2UI_Descriptor;
00261 
00262 
00263 
00278 const LV2UI_Descriptor* lv2ui_descriptor(uint32_t index);
00279 
00280 
00282 typedef const LV2UI_Descriptor* (*LV2UI_DescriptorFunction)(uint32_t index);
00283 
00284 
00285 
00286 #ifdef __cplusplus
00287 }
00288 #endif
00289 
00290 
00291 #endif

Generated on Fri Dec 14 22:38:04 2007 by  doxygen 1.5.3-20071008