1 |
/*************************************************************************** |
/*************************************************************************** |
2 |
* * |
* * |
3 |
* Copyright (C) 2008 Christian Schoenebeck * |
* Copyright (C) 2008 - 2010 Christian Schoenebeck * |
4 |
* * |
* * |
5 |
* This program is free software; you can redistribute it and/or modify * |
* 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 * |
* it under the terms of the GNU General Public License as published by * |
40 |
* |
* |
41 |
* @param pDevice - audio output context for the effects, providing |
* @param pDevice - audio output context for the effects, providing |
42 |
* informations like samplerate |
* informations like samplerate |
43 |
|
* @param iEffectChainId - (optional) numerical ID of the effect chain, |
44 |
|
* intended for master effect chains, unique among |
45 |
|
* all master effect chains which share the same |
46 |
|
* audio output device |
47 |
*/ |
*/ |
48 |
EffectChain(AudioOutputDevice* pDevice); |
EffectChain(AudioOutputDevice* pDevice, int iEffectChainId = -1); |
49 |
|
|
50 |
/** |
/** |
51 |
* Add the given effect to the end of the effect chain. |
* Add the given effect to the end of the effect chain. |
103 |
*/ |
*/ |
104 |
void ClearAllChannels(); |
void ClearAllChannels(); |
105 |
|
|
106 |
|
/** |
107 |
|
* Returns numerical ID of this effect chain, intended for master effect |
108 |
|
* chains. The ID is unique among all master effect chains which share the |
109 |
|
* same audio output device. |
110 |
|
* |
111 |
|
* There is no ID for insert effect chains, since a sampler channel |
112 |
|
* always provides exactly one insert effect chain. |
113 |
|
* |
114 |
|
* @returns id equal or larger than zero if master effect chain, negative |
115 |
|
* number if this is an insert effect chain |
116 |
|
*/ |
117 |
|
int ID() const; |
118 |
|
|
119 |
private: |
private: |
120 |
struct _ChainEntry { |
struct _ChainEntry { |
121 |
Effect* pEffect; |
Effect* pEffect; |
124 |
|
|
125 |
std::vector<_ChainEntry> vEntries; |
std::vector<_ChainEntry> vEntries; |
126 |
AudioOutputDevice* pDevice; |
AudioOutputDevice* pDevice; |
127 |
|
int iID; |
128 |
}; |
}; |
129 |
|
|
130 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |