summaryrefslogtreecommitdiffstats
path: root/arts/modules/artsmodules.idl
blob: c502871df2ae58df1964e22c25c62ce94f009830 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
	/*

    Copyright (C) 2000-2001 Stefan Westerfeld
                            [email protected]
                  2001-2003 Matthias Kretz
                            [email protected]
                       2002 Arnold Krille
                            [email protected]

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.
  
    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public License
    along with this library; see the file COPYING.LIB.  If not, write to
    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.

    */

/*
 * DISCLAIMER: The interfaces in artsmodules.idl (and the derived .cc/.h files)
 *             DO NOT GUARANTEE BINARY COMPATIBILITY YET.
 *
 * They are intended for developers. You shouldn't expect that applications in
 * binary form will be fully compatibile with further releases of these
 * interfaces.
 */

#include <artsflow.idl>
#include <artsmidi.idl>
#include <artsgui.idl>

#include <artsmodulescommon.idl>
#include <artsmodulessynth.idl>
#include <artsmoduleseffects.idl>
#include <artsmodulesmixers.idl>

module Arts {

// EXPERIMENTAL ENVIRONMENT CODE:
//
//// moved to common
//
//module Environment {
//	interface Context;
//	interface Item;
//	interface Container;
//	interface InstrumentItem : Item;
//	interface InstrumentItemGuiFactory : Arts::GuiFactory;
//	interface StereoEffectItem : Item;
//	interface MixerChannel : Arts::StereoEffect;
//	interface MixerItem : Item;
//	interface EffectRackItem : Item;
//};

//// moved to mixers
//
//interface SimpleMixerChannel : Environment::MixerChannel;
//interface MonoSimpleMixerChannel : Environment::MixerChannel;
//interface Synth_AUX_BUS : SynthModule; {

//// moved to common
//
//// creates: Environment::MixerItem, SimpleMixerChannel
//interface MixerGuiFactory : GuiFactory;
//// creates: Environment::EffectRackItem
//interface EffectRackGuiFactory : GuiFactory;

//// moved to mixers
//
//// creates: MonoSimpleMixerChannel
//interface MonoSimpleMixerChannelGuiFactory : GuiFactory;
//// creates: SimpleMixerChannel
//interface SimpleMixerChannelGuiFactory : GuiFactory;

//// moved to common
//
//interface MixerItemGui;

//// moved to synth
//
//// EXPERIMENTAL MIDI
//interface ObjectCache;
//interface MidiReleaseHelper : SynthModule;
//// END EXPERIMENTAL MIDI

//// moved to synth
//
//interface Synth_CAPTURE_WAV : SynthModule;
//interface Synth_COMPRESSOR : SynthModule;

//// moved to effects
//
//interface Synth_STEREO_COMPRESSOR : StereoEffect;
//interface StereoCompressorGuiFactory : GuiFactory;

//// moved to synth
//
//interface Synth_NIL : SynthModule;
//interface Synth_DEBUG : SynthModule;
//interface Synth_DATA : SynthModule;
//interface Synth_ATAN_SATURATE : SynthModule;

//// moved to synth
//
//interface Synth_BRICKWALL_LIMITER : SynthModule;
//interface Synth_AUTOPANNER : SynthModule;
//interface Synth_DELAY : SynthModule;
//interface Synth_CDELAY : SynthModule;
//interface Synth_FM_SOURCE : SynthModule;
//interface Synth_TREMOLO : SynthModule;
//interface Synth_FX_CFLANGER : SynthModule;
//interface Synth_NOISE : SynthModule;
//interface Synth_WAVE_TRI : SynthModule;
//interface Synth_WAVE_SQUARE : SynthModule;
//interface Synth_WAVE_PULSE : SynthModule;
//interface Synth_WAVE_SOFTSAW : SynthModule;
//interface Synth_ENVELOPE_ADSR : SynthModule;
//interface Synth_SHELVE_CUTOFF : SynthModule;
//interface Synth_XFADE : SynthModule;
//interface Synth_MIDI_TEST : SynthModule, MidiPort;
//interface Synth_MIDI_DEBUG : SynthModule, MidiPort;

//// moved to effects
//
//interface Synth_FREEVERB : StereoEffect;
//interface FreeverbGuiFactory : GuiFactory;

//// moved to synth
//
//interface Synth_STD_EQUALIZER : SynthModule;
//interface Synth_RC : SynthModule;
//interface Synth_MOOG_VCF : SynthModule;
//interface Synth_PSCALE : SynthModule;
//interface Synth_SEQUENCE : SynthModule;
//interface Synth_PITCH_SHIFT : SynthModule;
//interface Synth_PITCH_SHIFT_FFT : SynthModule;

//// moved to effects
//
//interface Synth_STEREO_PITCH_SHIFT : StereoEffect;
//interface Synth_STEREO_PITCH_SHIFT_FFT : StereoEffect;
//interface Effect_WAVECAPTURE : StereoEffect;

//// moved to effects
//
//interface Synth_STEREO_FIR_EQUALIZER : StereoEffect;
//interface StereoFirEqualizerGuiFactory : GuiFactory;

//interface Synth_PLAY_PAT : SynthModule;

//// moved to synth
//
//enum SynthOscWaveForm;
//interface Synth_OSC : SynthModule;

//// moved to common
//
//interface EffectRackSlot;
//interface EffectRackItemGui;

//// moved to effects
//
//interface Synth_VOICE_REMOVAL : StereoEffect;
//interface VoiceRemovalGuiFactory : GuiFactory;

/*----------------------------------------------------------------------------
 * everything below this line is obsolete, but provided to help with porting
 * old structures
 */
interface Interface_MIDI_NOTE : SynthModule {
	out audio stream frequency,velocity,pressed;
};

interface Synth_STRUCT_KILL : SynthModule {
	in audio stream ready;
};

};