/[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 2183 - (hide annotations) (download) (as text)
Sat Jun 11 17:53:32 2011 UTC (12 years, 10 months ago) by persson
File MIME type: text/x-c++hdr
File size: 1497 byte(s)
* Mac OS X fixes: support the new dir for Core Audio SDK, fixed name
  collision of enum in EffectControl, fixed building outside source
  directory, fixed wrong name of destructor in
  AudioOutputDeviceCoreAudio.cpp
* made sure all source files for hostplugins are included when doing
  "make dist"
* removed empty directories left from the cvs to svn migration

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 schoenebeck 2135 #include <vector>
11 schoenebeck 2124
12     namespace LinuxSampler {
13    
14     // just symbol prototyping
15     class Effect;
16    
17     /**
18     * Represents an effect parameter. As the set of parameters an effect offers,
19     * varies quite a bit, this class provides necessary informations about the
20     * respective effect parameter.
21     */
22     class EffectControl {
23     public:
24     enum Type_t {
25 persson 2183 EFFECT_TYPE_FLOAT,
26     EFFECT_TYPE_INT,
27     EFFECT_TYPE_BOOL
28 schoenebeck 2124 };
29    
30     EffectControl();
31 schoenebeck 2135 virtual ~EffectControl();
32 schoenebeck 2124 virtual void SetValue(float val) throw (Exception);
33     virtual float& Value();
34     Type_t Type() const;
35     String TypeAsString() const;
36     String Description() const;
37     optional<float> DefaultValue() const;
38     optional<float> MinValue() const;
39     optional<float> MaxValue() const;
40 schoenebeck 2135 std::vector<float> Possibilities() const;
41 schoenebeck 2124
42     protected:
43     void SetDefaultValue(float val);
44     void SetMinValue(float val);
45     void SetMaxValue(float val);
46     void SetType(Type_t t);
47     void SetDescription(String s);
48 schoenebeck 2135 void SetPossibilities(const std::vector<float>& v);
49 schoenebeck 2124
50     friend class Effect;
51    
52     private:
53     float value;
54     Type_t type;
55     String description;
56     optional<float> defaultValue;
57     optional<float> minValue;
58     optional<float> maxValue;
59 schoenebeck 2135 std::vector<float> possibilities;
60 schoenebeck 2124 };
61    
62     } // namespace LinuxSampler
63    
64     #endif // LS_EFFECTCONTROL_H

  ViewVC Help
Powered by ViewVC