/[svn]/linuxsampler/trunk/src/engines/FxSend.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/FxSend.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1040 by schoenebeck, Wed Feb 7 15:41:31 2007 UTC revision 1722 by schoenebeck, Thu Apr 10 17:41:32 2008 UTC
# Line 3  Line 3 
3   *   LinuxSampler - modular, streaming capable sampler                     *   *   LinuxSampler - modular, streaming capable sampler                     *
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *
6   *   Copyright (C) 2005 - 2007 Christian Schoenebeck                       *   *   Copyright (C) 2005 - 2008 Christian Schoenebeck                       *
7   *                                                                         *   *                                                                         *
8   *   This library is free software; you can redistribute it and/or modify  *   *   This library is free software; you can redistribute it and/or modify  *
9   *   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  *
# Line 38  namespace LinuxSampler { Line 38  namespace LinuxSampler {
38      /** @brief Engine Channel Effect Send      /** @brief Engine Channel Effect Send
39       *       *
40       * This class is used to manage effect sends on Engine Channels. An effect       * This class is used to manage effect sends on Engine Channels. An effect
41       * send is used to route sampler channel's audio signals to sampler       * send is used to route sampler channel's audio signals to either sampler
42       * external effect processors. Each effect send entity can define an       * external effect processors or to sampler internal effect processors.
43       * arbitrary MIDI controller number which can alter the effect send's       * Each effect send entity can define an arbitrary MIDI controller number
44       * send level.       * which can alter the effect send's send level.
45         *
46         * Regarding sampler internal effects: only master effects are supported
47         * ATM, no insert effects yet. See AudioOutputDevice regarding management
48         * of master effects, since master effects only live in the context of
49         * exactly @e ONE AudioOutputDevice.
50       *       *
51       * Note: effect sends cannot be routed to a different AudioOutputDevice       * Note: effect sends cannot be routed to a different AudioOutputDevice
52       * than assigned to the FxSend's EngineChannel. Also note that an effect       * than assigned to the FxSend's EngineChannel. Also note that an effect
# Line 67  namespace LinuxSampler { Line 72  namespace LinuxSampler {
72              FxSend(EngineChannel* pEngineChannel, uint8_t MidiCtrl, String Name = "") throw (Exception);              FxSend(EngineChannel* pEngineChannel, uint8_t MidiCtrl, String Name = "") throw (Exception);
73    
74              /**              /**
75                 * Index of the master effect chain this FX send is routed to or
76                 * -1 if FX send is not routed to a master effect.
77                 */
78                int DestinationMasterEffectChain() const;
79    
80                /**
81                 * Index of the master effect of the master effect chain given by
82                 * DestinationMasterEffectChain(), in case FX send is routed to
83                 * a master effect or -1 otherwise.
84                 */
85                int DestinationMasterEffect() const;
86    
87                /**
88                 * Route this FX send to the given master effect given by index
89                 * @a iEffect of the master effect chain given by @a iChain .
90                 *
91                 * If you want to remove the routing of an FX send, currently
92                 * directed to a master effect processor, and want to route it
93                 * directly to an audio output device channel instead, then set
94                 * both arguments to @c -1 .
95                 *
96                 * @throw Exception - if given effect / effect chain doesn't exist
97                 * @see AudioOutputDevice::MasterEffectChain()
98                 */
99                void SetDestinationMasterEffect(int iChain, int iEffect) throw (Exception);
100    
101                /**
102               * Returns the audio output device's audio channel to which effect               * Returns the audio output device's audio channel to which effect
103               * send's channel \a SrcChan is currently routed to.               * send's channel \a SrcChan is currently routed to.
104               */               */
# Line 135  namespace LinuxSampler { Line 167  namespace LinuxSampler {
167              String Name();              String Name();
168    
169              /**              /**
170                 * Sets the name of this effect send entity.
171                 * @param Name The new name of this effect send entity.
172                 */
173                void SetName(String Name);
174    
175                /**
176               * Returns the (at least sampler-channel-) unique ID of the               * Returns the (at least sampler-channel-) unique ID of the
177               * effect send instance. This is actually not used by the engine               * effect send instance. This is actually not used by the engine
178               * at all. It is at the moment only used by the LSCP server to               * at all. It is at the moment only used by the LSCP server to
# Line 142  namespace LinuxSampler { Line 180  namespace LinuxSampler {
180               */               */
181              uint Id();              uint Id();
182    
183                /**
184                 * Determines whether the effect send's settings are changed.
185                 */
186                bool IsInfoChanged();
187    
188                /**
189                 * Sets whether the effect send's settings are changed.
190                 */
191                void SetInfoChanged(bool b);
192    
193          protected:          protected:
194              EngineChannel*   pEngineChannel;              EngineChannel*   pEngineChannel;
195                int              iMasterEffectChain;
196                int              iMasterEffect;
197              std::vector<int> Routing;              std::vector<int> Routing;
198              uint8_t          MidiFxSendController;              uint8_t          MidiFxSendController;
199              String           sName;              String           sName;
200              uint             iId;              uint             iId;
201              float            fLevel;              float            fLevel;
202                bool             bInfoChanged;  // Determines whether there are changes to the settings.
203      };      };
204    
205  } // namespace LinuxSampler  } // namespace LinuxSampler

Legend:
Removed from v.1040  
changed lines
  Added in v.1722

  ViewVC Help
Powered by ViewVC