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 | schoenebeck | 2124 | /* |
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 | schoenebeck | 2135 | EffectInfo* GetEffectInfo(); |
31 | schoenebeck | 2124 | 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 |