0fff4ca6748d0f2369257879fde73e6e7d3c69ca
[terminatorX.git] / terminatorX / src / tX_ladspa.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999, 2000  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 class LADSPA_Plugin
31 {
32         private:
33         const LADSPA_Descriptor *ladspa_descriptor;
34         LADSPA_Plugin(const LADSPA_Descriptor *ld, char *filename);
35         char info_string[4096];
36         char file[1024];
37         
38         static list <LADSPA_Plugin *> plugin_list;
39         static void scandir(char *dir);
40         static void handlelib(void *lib, LADSPA_Descriptor_Function desc_func, char* filename);
41         
42         public:
43         static void init();
44         static void status();
45         static void debug_display();
46         char *get_info_string() { return info_string; }
47         char *get_file_name() { return file; }
48         
49         long getUniqueID() { return ladspa_descriptor->UniqueID; }
50         const char * getName() { return ladspa_descriptor->Name; }
51         const char * getLabel() { return ladspa_descriptor->Label; }
52         long getPortCount() { return ladspa_descriptor->PortCount; }
53         
54         static int getPluginCount() { return plugin_list.size(); }
55         static LADSPA_Plugin * getPluginByIndex(int i);
56         static LADSPA_Plugin * getPluginByUniqueID(long ID);
57         const LADSPA_Descriptor *getDescriptor() { return ladspa_descriptor; }
58 };
59
60 #endif