SpectMorph
smmorphlinear.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_MORPH_LINEAR_HH
4 #define SPECTMORPH_MORPH_LINEAR_HH
5 
6 #include "smmorphoperator.hh"
7 
8 #include <string>
9 
10 namespace SpectMorph
11 {
12 
13 class MorphLinear : public MorphOperator
14 {
15  Q_OBJECT
16 public:
17  enum ControlType {
18  CONTROL_GUI = 1,
19  CONTROL_SIGNAL_1 = 2,
20  CONTROL_SIGNAL_2 = 3,
21  CONTROL_OP = 4
22  };
23 protected:
24  std::string load_left, load_right, load_control;
25 
26  MorphOperator *m_left_op;
27  MorphOperator *m_right_op;
28  MorphOperator *m_control_op;
29  double m_morphing;
30  ControlType m_control_type;
31  bool m_db_linear;
32  bool m_use_lpc;
33 
34 public:
35  MorphLinear (MorphPlan *morph_plan);
36  ~MorphLinear();
37 
38  // inherited from MorphOperator
39  const char *type();
40  int insert_order();
41  bool save (OutFile& out_file);
42  bool load (InFile& in_file);
43  void post_load (OpNameMap& op_name_map);
44  OutputType output_type();
45 
46  MorphOperator *left_op();
47  void set_left_op (MorphOperator *op);
48 
49  MorphOperator *right_op();
50  void set_right_op (MorphOperator *op);
51 
52  MorphOperator *control_op();
53  void set_control_op (MorphOperator *op);
54 
55  double morphing();
56  void set_morphing (double new_morphing);
57 
58  ControlType control_type();
59  void set_control_type (ControlType new_control_type);
60 
61  bool db_linear();
62  void set_db_linear (bool new_db_linear);
63 
64  bool use_lpc();
65  void set_use_lpc (bool new_use_lpc);
66 
67 public slots:
68  void on_operator_removed (MorphOperator *op);
69 };
70 
71 }
72 
73 #endif
Definition: smmorphlinear.hh:13
Definition: smoutfile.hh:15
Definition: smmorphplan.hh:14
Class to read SpectMorph binary data.
Definition: sminfile.hh:25
Definition: smmorphoperator.hh:19
Definition: smaudio.hh:15