Header file | LV2UI_Descriptor

lv2-gtk2gui.h

Go to the documentation of this file.
00001 /************************************************************************
00002  *
00003  * GTK2 in-process UI extension for LV2
00004  *
00005  * Copyright (C) 2006 Lars Luthman <lars.luthman@gmail.com>
00006  * 
00007  * Based on lv2.h, which is 
00008  *
00009  * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, Stefan
00010  * 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 
00077 #ifndef LV2_GTK2GUI_H
00078 #define LV2_GTK2GUI_H
00079 
00080 #include <lv2.h>
00081 #include <gtk/gtkwidget.h>
00082 
00083 
00084 #ifdef __cplusplus
00085 extern "C" {
00086 #endif
00087 
00088 
00093 typedef void* LV2UI_Handle;
00094 
00095 
00100 typedef void* LV2UI_Controller;
00101 
00102 
00107 typedef void (*LV2UI_Set_Control_Function)(LV2UI_Controller controller,
00108                                            uint32_t port,
00109                                            float value);
00110 
00111 
00112 typedef struct _LV2UI_Descriptor {
00113   
00115   const char* URI;
00116   
00144   LV2UI_Handle (*instantiate)(const struct _LV2UI_Descriptor* descriptor,
00145                               const char*                     plugin_uri,
00146                               const char*                     bundle_path,
00147                               LV2UI_Set_Control_Function      control_function,
00148                               LV2UI_Controller                controller,
00149                               GtkWidget**                     widget,
00150                               const LV2_Host_Feature**        features);
00151 
00152   
00155   void (*cleanup)(LV2UI_Handle  gui);
00156   
00160   void (*set_control)(LV2UI_Handle   gui,
00161                       uint32_t       port,
00162                       float          value);
00163   
00171   void* (*extension_data)(LV2UI_Handle    gui,
00172                           const char*     uri);
00173 
00174 } LV2UI_Descriptor;
00175 
00176 
00177 
00194 const LV2UI_Descriptor* lv2ui_descriptor(uint32_t index);
00195 
00196 
00198 typedef const LV2UI_Descriptor* (*LV2UI_DescriptorFunction)(uint32_t index);
00199 
00200 
00201 
00202 #ifdef __cplusplus
00203 }
00204 #endif
00205 
00206 
00207 #endif

Generated on Tue Feb 6 16:07:54 2007 by  doxygen 1.5.1