SpectMorph
smmorphplansynth.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_MORPH_PLAN_SYNTH_HH
4 #define SPECTMORPH_MORPH_PLAN_SYNTH_HH
5 
6 #include "smmorphplan.hh"
7 #include "smmorphoperator.hh"
8 #include <map>
9 
10 namespace SpectMorph {
11 
12 class MorphPlanVoice;
13 class MorphModuleSharedState;
14 
16 protected:
17  std::vector<MorphPlanVoice *> voices;
18  std::map<std::string, MorphModuleSharedState *> m_shared_state;
19 
20  float m_mix_freq;
21  MorphPlanPtr plan;
22 
23 public:
24  MorphPlanSynth (float mix_freq);
25  ~MorphPlanSynth();
26 
27  MorphPlanVoice *add_voice();
28  void update_plan (MorphPlanPtr new_plan);
29 
30  MorphModuleSharedState *shared_state (MorphOperator *op);
31  void set_shared_state (MorphOperator *op, MorphModuleSharedState *shared_state);
32 
33  void update_shared_state (double time_ms);
34  void free_shared_state();
35 
36  float mix_freq() const;
37  bool have_output() const;
38 };
39 
40 }
41 
42 
43 #endif
Definition: smmorphplansynth.hh:15
Definition: smmorphplanvoice.hh:14
Definition: smmorphoperator.hh:19
Definition: smalignedarray.cc:7
Definition: smmorphoperatormodule.hh:16