Parent Directory | Revision Log
* added and implemented a set of 19 new LSCP commands for controlling internal effects: - added LSCP command "GET AVAILABLE_EFFECTS" - added LSCP command "LIST AVAILABLE_EFFECTS" - added LSCP command "GET EFFECT INFO <effect-index>" - added LSCP command "CREATE EFFECT_INSTANCE <effect-index>" - added LSCP command "CREATE EFFECT_INSTANCE <effect-system> <module> <effect-name>" - added LSCP command "DESTROY EFFECT_INSTANCE <effect-instance>" - added LSCP command "GET EFFECT_INSTANCES" - added LSCP command "LIST EFFECT_INSTANCES" - added LSCP command "GET EFFECT_INSTANCE INFO <effect-instance>" - added LSCP command "GET EFFECT_INSTANCE_INPUT_CONTROL INFO <effect-instance> <input-control>" - added LSCP command "SET EFFECT_INSTANCE_INPUT_CONTROL <effect-instance> <input-control> <value>" - added LSCP command "GET MASTER_EFFECT_CHAINS <audio-device>" - added LSCP command "LIST MASTER_EFFECT_CHAINS <audio-device>" - added LSCP command "ADD MASTER_EFFECT_CHAIN <audio-device>" - added LSCP command "REMOVE MASTER_EFFECT_CHAIN <audio-device> <effect-chain>" - added LSCP command "GET MASTER_EFFECT_CHAIN INFO <audio-device> <effect-chain>" - added LSCP command "APPEND MASTER_EFFECT_CHAIN EFFECT <audio-device> <effect-chain> <effect-instance>" - added LSCP command "INSERT MASTER_EFFECT_CHAIN EFFECT <audio-device> <effect-chain> <effect-instance> <effect-chain-pos>" - added LSCP command "REMOVE MASTER_EFFECT_CHAIN EFFECT <audio-device> <effect-chain> <effect-instance>" * bumped version to 1.0.0.cvs7
1 | /* |
2 | Copyright (C) 2010 Christian Schoenebeck |
3 | */ |
4 | |
5 | #ifndef LS_LADSPAEFFECT_H |
6 | #define LS_LADSPAEFFECT_H |
7 | |
8 | #include "Effect.h" |
9 | #include "EffectInfo.h" |
10 | #include "../common/ladspa.h" |
11 | #include "../common/Exception.h" |
12 | #include <vector> |
13 | |
14 | namespace LinuxSampler { |
15 | |
16 | class LadspaEffectInfo; |
17 | class AudioOutputDevice; |
18 | |
19 | /** |
20 | * Implementation of internal effects using the LADSPA effect system. |
21 | * |
22 | * @e Note: this class is only sampler internal and won't be exported to the |
23 | * external C++ API of the sampler. Use the static class EffectFactory instead |
24 | * for managing LADSPA effects by external applications. |
25 | */ |
26 | class LadspaEffect : public Effect { |
27 | public: |
28 | LadspaEffect(EffectInfo* pInfo) throw (Exception); |
29 | ~LadspaEffect(); |
30 | EffectInfo* GetEffectInfo(); |
31 | void RenderAudio(uint Samples); |
32 | void InitEffect(AudioOutputDevice* pDevice) throw (Exception); |
33 | static std::vector<EffectInfo*> AvailableEffects(); |
34 | |
35 | private: |
36 | LadspaEffectInfo* pInfo; |
37 | void* hDLL; |
38 | const LADSPA_Descriptor* pDescriptor; |
39 | LADSPA_Handle hEffect; |
40 | AudioOutputDevice* pDevice; |
41 | |
42 | float getLowerB(int iPort) const; |
43 | float getUpperB(int iPort) const; |
44 | }; |
45 | |
46 | } // namespace LinuxSampler |
47 | |
48 | #endif // LS_LADSPAEFFECT_H |
ViewVC Help | |
Powered by ViewVC |