LMMS
Loading...
Searching...
No Matches
DSSIaudiooutput.h
Go to the documentation of this file.
1/*
2 ZynAddSubFX - a software synthesizer
3
4 VSTaudiooutput.h - Audio output for VST
5 Copyright (C) 2002 Nasca Octavian Paul
6 Author: Nasca Octavian Paul
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of version 2 of the GNU General Public License
10 as published by the Free Software Foundation.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License (version 2 or later) for more details.
16
17 You should have received a copy of the GNU General Public License (version 2)
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
21*/
22#ifndef VST_AUDIO_OUTPUT_H
23#define VST_AUDIO_OUTPUT_H
24
25#include <pthread.h>
26
27#include "../globals.h"
28#include "../Misc/Master.h"
29
30#include <dssi.h>
31#include <ladspa.h>
32#include <vector>
33
35{
36 public:
37 //
38 // Static stubs for LADSPA member functions
39 //
40 static void stub_connectPort(LADSPA_Handle instance,
41 unsigned long port,
43 static void stub_activate(LADSPA_Handle instance);
44 static void stub_run(LADSPA_Handle instance, unsigned long sample_count);
45 static void stub_deactivate(LADSPA_Handle Instance);
46 static void stub_cleanup(LADSPA_Handle instance);
47
48 //
49 // Static stubs for DSSI member functions
50 //
52 LADSPA_Handle instance,
53 unsigned long Index);
54 static void stub_selectProgram(LADSPA_Handle instance,
55 unsigned long bank,
56 unsigned long program);
58 unsigned long port);
59 static void stub_runSynth(LADSPA_Handle instance,
60 unsigned long sample_count,
61 snd_seq_event_t *events,
62 unsigned long event_count);
63
64 /*
65 * LADSPA member functions
66 */
68 unsigned long s_rate);
69 void connectPort(unsigned long port, LADSPA_Data *data);
70 void activate();
71 void run(unsigned long sample_count);
72 void deactivate();
73 void cleanup();
74 static const LADSPA_Descriptor *getLadspaDescriptor(unsigned long index);
75
76 /*
77 * DSSI member functions
78 */
79 const DSSI_Program_Descriptor *getProgram(unsigned long Index);
80 void selectProgram(unsigned long bank, unsigned long program);
81 int getMidiControllerForPort(unsigned long port);
82 void runSynth(unsigned long sample_count,
83 snd_seq_event_t *events,
84 unsigned long event_count);
85 static const DSSI_Descriptor *getDssiDescriptor(unsigned long index);
86
88 unsigned long bank;
89 unsigned long program;
90 std::string name;
91 ProgramDescriptor(unsigned long _bank,
92 unsigned long _program,
93 char *_name);
94 };
95
96 private:
97
98 DSSIaudiooutput(unsigned long sampleRate);
101 static DSSIaudiooutput *getInstance(LADSPA_Handle instance);
102 void initBanks();
103 bool mapNextBank();
104
110 static std::string bankDirNames[];
111 static
112 std::vector<ProgramDescriptor> programMap;
113
118
119 static
121};
122
123#endif
static const LV2_Descriptor descriptor
Definition bindings_test_plugin.c:165
static DSSI_Descriptor * dssiDescriptor
Definition DSSIaudiooutput.h:109
LADSPA_Data * outr
Definition DSSIaudiooutput.h:106
static void stub_selectProgram(LADSPA_Handle instance, unsigned long bank, unsigned long program)
Definition DSSIaudiooutput.cpp:108
~DSSIaudiooutput()
Definition DSSIaudiooutput.cpp:640
static const DSSI_Program_Descriptor * stub_getProgram(LADSPA_Handle instance, unsigned long Index)
Definition DSSIaudiooutput.cpp:101
long sampleRate
Definition DSSIaudiooutput.h:107
void selectProgram(unsigned long bank, unsigned long program)
Definition DSSIaudiooutput.cpp:361
static void stub_activate(LADSPA_Handle instance)
Definition DSSIaudiooutput.cpp:65
static long bankNoToMap
Definition DSSIaudiooutput.h:120
static DSSI_Descriptor * initDssiDescriptor()
Definition DSSIaudiooutput.cpp:533
static std::string bankDirNames[]
Definition DSSIaudiooutput.h:110
bool banksInited
Definition DSSIaudiooutput.h:117
void activate()
Definition DSSIaudiooutput.cpp:209
const DSSI_Program_Descriptor * getProgram(unsigned long Index)
Definition DSSIaudiooutput.cpp:321
static void stub_runSynth(LADSPA_Handle instance, unsigned long sample_count, snd_seq_event_t *events, unsigned long event_count)
Definition DSSIaudiooutput.cpp:121
static int stub_getMidiControllerForPort(LADSPA_Handle instance, unsigned long port)
Definition DSSIaudiooutput.cpp:115
void initBanks()
Definition DSSIaudiooutput.cpp:646
static void stub_run(LADSPA_Handle instance, unsigned long sample_count)
Definition DSSIaudiooutput.cpp:70
static std::vector< ProgramDescriptor > programMap
Definition DSSIaudiooutput.h:112
static void stub_deactivate(LADSPA_Handle Instance)
Definition DSSIaudiooutput.cpp:76
DSSIaudiooutput(unsigned long sampleRate)
Definition DSSIaudiooutput.cpp:617
void runSynth(unsigned long sample_count, snd_seq_event_t *events, unsigned long event_count)
Definition DSSIaudiooutput.cpp:436
static const LADSPA_Descriptor * getLadspaDescriptor(unsigned long index)
Definition DSSIaudiooutput.cpp:281
static LADSPA_Handle instantiate(const LADSPA_Descriptor *descriptor, unsigned long s_rate)
Definition DSSIaudiooutput.cpp:154
Master * master
Definition DSSIaudiooutput.h:108
static DSSIaudiooutput * getInstance(LADSPA_Handle instance)
Definition DSSIaudiooutput.cpp:603
void connectPort(unsigned long port, LADSPA_Data *data)
Definition DSSIaudiooutput.cpp:181
int getMidiControllerForPort(unsigned long port)
Definition DSSIaudiooutput.cpp:406
void cleanup()
Definition DSSIaudiooutput.cpp:260
static void stub_cleanup(LADSPA_Handle instance)
Definition DSSIaudiooutput.cpp:82
LADSPA_Data * outl
Definition DSSIaudiooutput.h:105
void run(unsigned long sample_count)
Definition DSSIaudiooutput.cpp:227
void deactivate()
Definition DSSIaudiooutput.cpp:243
bool mapNextBank()
Definition DSSIaudiooutput.cpp:688
static const DSSI_Descriptor * getDssiDescriptor(unsigned long index)
Definition DSSIaudiooutput.cpp:514
static void stub_connectPort(LADSPA_Handle instance, unsigned long port, LADSPA_Data *data)
Definition DSSIaudiooutput.cpp:58
Definition Master.h:55
struct _DSSI_Descriptor DSSI_Descriptor
struct _DSSI_Program_Descriptor DSSI_Program_Descriptor
float LADSPA_Data
Definition ladspa.h:84
void * LADSPA_Handle
Definition ladspa.h:363
struct _LADSPA_Descriptor LADSPA_Descriptor
JSAMPIMAGE data
Definition jpeglib.h:945
struct snd_seq_event snd_seq_event_t
std::string name
Definition DSSIaudiooutput.h:90
unsigned long bank
Definition DSSIaudiooutput.h:88
unsigned long program
Definition DSSIaudiooutput.h:89
ProgramDescriptor(unsigned long _bank, unsigned long _program, char *_name)
Definition DSSIaudiooutput.cpp:664