Ardour  9.0-pre0-582-g084a23a80d
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 #pragma once
21 
22 #include "widgets/ardour_button.h"
23 
24 #include "stripable_colorpicker.h"
25 #include "stripable_time_axis.h"
26 #include "gain_meter.h"
27 
28 namespace ArdourCanvas {
29  class Canvas;
30 }
31 
32 namespace ARDOUR {
33  class Session;
34  class VCA;
35 }
36 
38 {
39 public:
41  virtual ~VCATimeAxisView ();
42 
43  std::shared_ptr<ARDOUR::Stripable> stripable() const;
45 
46  void set_vca (std::shared_ptr<ARDOUR::VCA>);
47  std::shared_ptr<ARDOUR::VCA> vca() const { return _vca; }
48 
49  std::string name() const;
50  Gdk::Color color () const;
51  std::string state_id() const;
52 
53  void set_height (uint32_t h, TrackHeightMode m = OnlySelf, bool from_idle = false);
54 
55  bool marked_for_display () const;
57 
58  void show_all_automation (bool apply_to_selection = false);
59  void show_existing_automation (bool apply_to_selection = false);
60  void hide_all_automation (bool apply_to_selection = false);
61 
62 protected:
63  std::shared_ptr<ARDOUR::VCA> _vca;
71 
75 
76  void create_automation_child (const Evoral::Parameter& param, bool show);
77  virtual void build_automation_action_menu (bool);
80 
81  bool name_entry_changed (std::string const&);
82 
83  void parameter_changed (std::string const& p);
85  void update_vca_name ();
94  void self_delete ();
95 
96  void drop_all_slaves ();
97  void choose_color ();
98 
99 private:
101 };
102 
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:79
ArdourWidgets::ArdourButton mute_button
Definition: vca_time_axis.h:65
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:70
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:66
void show_existing_automation(bool apply_to_selection=false)
void build_display_menu()
GainMeterBase gain_meter
Definition: vca_time_axis.h:69
ARDOUR::PresentationInfo const & presentation_info() const
std::shared_ptr< ARDOUR::VCA > _vca
Definition: vca_time_axis.h:63
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:68
ArdourWidgets::ArdourButton solo_button
Definition: vca_time_axis.h:64
void set_vca(std::shared_ptr< ARDOUR::VCA >)
void update_mute_display()
std::shared_ptr< ARDOUR::VCA > vca() const
Definition: vca_time_axis.h:47
virtual ~VCATimeAxisView()
bool drop_release(GdkEventButton *)
Gdk::Color color() const
ArdourWidgets::ArdourButton drop_button
Definition: vca_time_axis.h:67
void create_trim_automation_child(const Evoral::Parameter &, bool)
Definition: vca_time_axis.h:73
bool automation_click(GdkEventButton *)
void parameter_changed(std::string const &p)
void hide_all_automation(bool apply_to_selection=false)
DebugBits VCA