/[svn]/linuxsampler/trunk/src/effects/LadspaEffect.h
ViewVC logotype

Annotation of /linuxsampler/trunk/src/effects/LadspaEffect.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2135 - (hide annotations) (download) (as text)
Thu Sep 30 20:00:43 2010 UTC (13 years, 7 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 1207 byte(s)
* 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