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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2124 - (hide annotations) (download) (as text)
Sat Sep 18 09:24:41 2010 UTC (13 years, 8 months ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 1288 byte(s)
* implemented support for internal LADSPA effects (work in progress)

1 schoenebeck 2124 /*
2     Copyright (C) 2010 Christian Schoenebeck
3     */
4    
5     #ifndef LS_EFFECTCONTROL_H
6     #define LS_EFFECTCONTROL_H
7    
8     #include "../common/Exception.h"
9     #include "../common/optional.h"
10    
11     namespace LinuxSampler {
12    
13     // just symbol prototyping
14     class Effect;
15    
16     /**
17     * Represents an effect parameter. As the set of parameters an effect offers,
18     * varies quite a bit, this class provides necessary informations about the
19     * respective effect parameter.
20     */
21     class EffectControl {
22     public:
23     enum Type_t {
24     TYPE_FLOAT,
25     TYPE_INT,
26     TYPE_BOOL
27     };
28    
29     EffectControl();
30     virtual void SetValue(float val) throw (Exception);
31     virtual float& Value();
32     Type_t Type() const;
33     String TypeAsString() const;
34     String Description() const;
35     optional<float> DefaultValue() const;
36     optional<float> MinValue() const;
37     optional<float> MaxValue() const;
38    
39     protected:
40     void SetDefaultValue(float val);
41     void SetMinValue(float val);
42     void SetMaxValue(float val);
43     void SetType(Type_t t);
44     void SetDescription(String s);
45    
46     friend class Effect;
47    
48     private:
49     float value;
50     Type_t type;
51     String description;
52     optional<float> defaultValue;
53     optional<float> minValue;
54     optional<float> maxValue;
55     };
56    
57     } // namespace LinuxSampler
58    
59     #endif // LS_EFFECTCONTROL_H

  ViewVC Help
Powered by ViewVC