1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html 2 3 #ifndef SPECTMORPH_MORPH_OUTPUT_VIEW_HH 4 #define SPECTMORPH_MORPH_OUTPUT_VIEW_HH 5 6 #include "smmorphoperatorview.hh" 7 #include "smmorphoutput.hh" 8 #include "smcomboboxoperator.hh" 9 #include "smpropertyview.hh" 10 #include "smoperatorlayout.hh" 11 #include "smoutputadsrwidget.hh" 12 13 namespace SpectMorph 14 { 15 16 class MorphOutputView : public MorphOperatorView 17 { 18 ComboBoxOperator *source_combobox; 19 20 Label *unison_voices_title; 21 Label *unison_voices_label; 22 Slider *unison_voices_slider; 23 24 Label *unison_detune_title; 25 Label *unison_detune_label; 26 Slider *unison_detune_slider; 27 28 MorphOutput *morph_output; 29 30 MorphOutputProperties morph_output_properties; 31 32 PropertyView pv_adsr_skip; 33 PropertyView pv_adsr_attack; 34 PropertyView pv_adsr_decay; 35 PropertyView pv_adsr_sustain; 36 PropertyView pv_adsr_release; 37 38 PropertyView pv_portamento_glide; 39 PropertyView pv_vibrato_depth; 40 PropertyView pv_vibrato_frequency; 41 PropertyView pv_vibrato_attack; 42 PropertyView pv_velocity_sensitivity; 43 44 OutputADSRWidget *output_adsr_widget; 45 46 OperatorLayout op_layout; 47 48 void update_visible(); 49 50 public: 51 MorphOutputView (Widget *parent, MorphOutput *morph_morph_output, MorphPlanWindow *morph_plan_window); 52 53 double view_height() override; 54 bool is_output() override; 55 56 /* slots */ 57 void on_operator_changed(); 58 void on_unison_voices_changed (int voices); 59 void on_unison_detune_changed (int detune); 60 }; 61 62 } 63 64 #endif 65