1af4e7daf94965ae10e50e0ab1829847099072f2
[terminatorX.git] / src / tX_ladspa.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2003  Alexander K├Ânig
4  
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9  
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14  
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  
19     File: tX_ladspa.h
20  
21     Description: Header to ladspa.cc - see there for more info
22 */
23
24 #ifndef _h_tx_ladspa
25 #define _h_tx_ladspa 1
26
27 #include <list>
28 #include <ladspa.h>
29
30 using namespace std;
31
32 class LADSPA_Plugin
33 {
34         private:
35         const LADSPA_Descriptor *ladspa_descriptor;
36         LADSPA_Plugin(const LADSPA_Descriptor *ld, char *filename);
37         char info_string[4096];
38         char file[1024];
39         
40         static list <LADSPA_Plugin *> plugin_list;
41         static void scandir(char *dir);
42         static void handlelib(void *lib, LADSPA_Descriptor_Function desc_func, char* filename);
43         
44         public:
45         static void init();
46         static void status();
47         static void debug_display();
48         char *get_info_string() { return info_string; }
49         char *get_file_name() { return file; }
50         
51         long getUniqueID() { return ladspa_descriptor->UniqueID; }
52         const char * getName() { return ladspa_descriptor->Name; }
53         const char * getLabel() { return ladspa_descriptor->Label; }
54         long getPortCount() { return ladspa_descriptor->PortCount; }
55         
56         static int getPluginCount() { return plugin_list.size(); }
57         static LADSPA_Plugin * getPluginByIndex(int i);
58         static LADSPA_Plugin * getPluginByUniqueID(long ID);
59         const LADSPA_Descriptor *getDescriptor() { return ladspa_descriptor; }
60 };
61
62 #endif