3 #ifndef SPECTMORPH_MORPH_PLAN_SYNTH_HH 
    4 #define SPECTMORPH_MORPH_PLAN_SYNTH_HH 
    6 #include "smmorphplan.hh" 
    7 #include "smmorphoperator.hh" 
    9 #include "smtimeinfo.hh" 
   13 namespace SpectMorph {
 
   16 class MorphModuleSharedState;
 
   17 class MorphOperatorModule;
 
   18 class MorphOutputModule;
 
   22   std::vector<MorphPlanVoice *> voices;
 
   23   std::vector<std::unique_ptr<MorphModuleSharedState>> voices_shared_states;
 
   25   std::vector<std::string>                          m_last_update_ids;
 
   26   std::string                                       m_last_plan_id;
 
   27   std::vector<std::unique_ptr<MorphOperatorConfig>> m_active_configs;
 
   31   bool            m_have_cycle = 
false;
 
   35     std::unique_ptr<MorphOperatorModule> module;
 
   36     MorphOperator::PtrID ptr_id;
 
   42     std::vector<OpModule> new_modules;
 
   48       MorphOperator::PtrID ptr_id;
 
   53     bool            have_cycle = 
false; 
 
   55     std::vector<std::unique_ptr<MorphOperatorConfig>>    new_configs;
 
   56     std::vector<FullUpdateVoice>                         voice_full_updates;
 
   57     std::vector<std::unique_ptr<MorphModuleSharedState>> new_shared_states; 
 
   59   typedef std::shared_ptr<Update> UpdateP;
 
   64   UpdateP prepare_update (
const MorphPlan& new_plan);
 
   65   void apply_update (UpdateP update);
 
   67   void update_shared_state (
const TimeInfo& time_info);
 
   71   float   mix_freq() 
const;
 
   72   bool    have_output() 
const;
 
   74   bool    have_cycle() 
const;
 
Definition: smmorphoutputmodule.hh:14
 
Definition: smmorphplansynth.hh:20
 
Definition: smmorphplanvoice.hh:16
 
Definition: smmorphplan.hh:18
 
Definition: smrandom.hh:15
 
Definition: smtimeinfo.hh:11
 
Definition: smmorphoperator.hh:18
 
Definition: smmorphplansynth.hh:40
 
Definition: smmorphplansynth.hh:34
 
Definition: smmorphplansynth.hh:47
 
Definition: smmorphplansynth.hh:45