Ardour  8.12
vca_time_axis.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 Paul Davis <paul@linuxaudiosystems.com>
3  * Copyright (C) 2017 Robin Gareus <robin@gareus.org>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 #ifndef __ardour_vca_time_axis_h__
21 #define __ardour_vca_time_axis_h__
22 
23 #include "widgets/ardour_button.h"
24 
25 #include "stripable_colorpicker.h"
26 #include "stripable_time_axis.h"
27 #include "gain_meter.h"
28 
29 namespace ArdourCanvas {
30  class Canvas;
31 }
32 
33 namespace ARDOUR {
34  class Session;
35  class VCA;
36 }
37 
39 {
40 public:
42  virtual ~VCATimeAxisView ();
43 
44  std::shared_ptr<ARDOUR::Stripable> stripable() const;
46 
47  void set_vca (std::shared_ptr<ARDOUR::VCA>);
48  std::shared_ptr<ARDOUR::VCA> vca() const { return _vca; }
49 
50  std::string name() const;
51  Gdk::Color color () const;
52  std::string state_id() const;
53 
54  void set_height (uint32_t h, TrackHeightMode m = OnlySelf, bool from_idle = false);
55 
56  bool marked_for_display () const;
58 
59  void show_all_automation (bool apply_to_selection = false);
60  void show_existing_automation (bool apply_to_selection = false);
61  void hide_all_automation (bool apply_to_selection = false);
62 
63 protected:
64  std::shared_ptr<ARDOUR::VCA> _vca;
72 
76 
77  void create_automation_child (const Evoral::Parameter& param, bool show);
78  virtual void build_automation_action_menu (bool);
81 
82  bool name_entry_changed (std::string const&);
83 
84  void parameter_changed (std::string const& p);
86  void update_vca_name ();
95  void self_delete ();
96 
97  void drop_all_slaves ();
98  void choose_color ();
99 
100 private:
102 };
103 
104 #endif /* __ardour_vca_time_axis_h__ */
Representation of the interface of the Editor class.
std::string name() const
bool marked_for_display() const
void update_vca_name()
Gtk::Menu * automation_action_menu
Definition: vca_time_axis.h:80
ArdourWidgets::ArdourButton mute_button
Definition: vca_time_axis.h:66
void update_solo_display()
void vca_property_changed(PBD::PropertyChange const &)
StripableColorDialog _color_picker
void set_height(uint32_t h, TrackHeightMode m=OnlySelf, bool from_idle=false)
PBD::ScopedConnectionList vca_connections
Definition: vca_time_axis.h:71
virtual void build_automation_action_menu(bool)
VCATimeAxisView(PublicEditor &, ARDOUR::Session *, ArdourCanvas::Canvas &canvas)
std::string state_id() const
bool set_marked_for_display(bool)
void drop_all_slaves()
bool name_entry_changed(std::string const &)
bool solo_release(GdkEventButton *)
ArdourWidgets::ArdourButton automation_button
Definition: vca_time_axis.h:67
void show_existing_automation(bool apply_to_selection=false)
void build_display_menu()
GainMeterBase gain_meter
Definition: vca_time_axis.h:70
ARDOUR::PresentationInfo const & presentation_info() const
std::shared_ptr< ARDOUR::VCA > _vca
Definition: vca_time_axis.h:64
void update_track_number_visibility()
void create_automation_child(const Evoral::Parameter &param, bool show)
void show_all_automation(bool apply_to_selection=false)
bool mute_release(GdkEventButton *)
void set_button_names()
void create_gain_automation_child(const Evoral::Parameter &, bool)
void create_mute_automation_child(const Evoral::Parameter &, bool)
std::shared_ptr< ARDOUR::Stripable > stripable() const
ArdourWidgets::ArdourButton number_label
Definition: vca_time_axis.h:69
ArdourWidgets::ArdourButton solo_button
Definition: vca_time_axis.h:65
void set_vca(std::shared_ptr< ARDOUR::VCA >)
void update_mute_display()
std::shared_ptr< ARDOUR::VCA > vca() const
Definition: vca_time_axis.h:48
virtual ~VCATimeAxisView()
bool drop_release(GdkEventButton *)
Gdk::Color color() const
ArdourWidgets::ArdourButton drop_button
Definition: vca_time_axis.h:68
void create_trim_automation_child(const Evoral::Parameter &, bool)
Definition: vca_time_axis.h:74
bool automation_click(GdkEventButton *)
void parameter_changed(std::string const &p)
void hide_all_automation(bool apply_to_selection=false)
DebugBits VCA