SpectMorph
smmorphoperatormodule.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_MORPH_OPERATOR_MODULE_HH
4 #define SPECTMORPH_MORPH_OPERATOR_MODULE_HH
5 
6 #include "smmorphoperator.hh"
7 #include "smlivedecodersource.hh"
8 
9 #include <string>
10 
11 namespace SpectMorph
12 {
13 
14 class MorphPlanVoice;
15 
17 {
18 public:
20  virtual ~MorphModuleSharedState();
21 };
22 
24 {
25 protected:
26  MorphPlanVoice *morph_plan_voice;
27  std::vector<MorphOperatorModule *> m_dependencies;
28  int m_update_value_tag;
29 
30  void clear_dependencies();
31  void add_dependency (MorphOperatorModule *dep_mod);
32 public:
34  virtual ~MorphOperatorModule();
35 
36  virtual void set_config (MorphOperator *op) = 0;
37  virtual LiveDecoderSource *source();
38  virtual float value();
39  virtual void reset_value();
40  virtual void update_value (double time_ms);
41  virtual void update_shared_state (double time_ms);
42 
43  const std::vector<MorphOperatorModule *>& dependencies() const;
44  int& update_value_tag();
45 
46  static MorphOperatorModule *create (MorphOperator *op, MorphPlanVoice *voice);
47 };
48 
49 }
50 
51 #endif
Definition: smmorphoperatormodule.hh:23
Definition: smlivedecodersource.hh:10
Definition: smmorphplanvoice.hh:14
Definition: smmorphoperator.hh:19
Definition: smalignedarray.cc:7
Definition: smmorphoperatormodule.hh:16