Ardour  9.0-18-g01809b426c
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_time_axis.h"
25 #include "gain_meter.h"
26 
27 namespace ArdourCanvas {
28  class Canvas;
29 }
30 
31 namespace ARDOUR {
32  class Session;
33  class VCA;
34 }
35 
37 {
38 public:
40  virtual ~VCATimeAxisView ();
41 
42  std::shared_ptr<ARDOUR::Stripable> stripable() const;
44 
45  void set_vca (std::shared_ptr<ARDOUR::VCA>);
46  std::shared_ptr<ARDOUR::VCA> vca() const { return _vca; }
47 
48  std::string name() const;
49  Gdk::Color color () const;
50  std::string state_id() const;
51 
52  void set_height (uint32_t h, TrackHeightMode m = OnlySelf, bool from_idle = false);
53 
54  bool marked_for_display () const;
56 
57  void show_all_automation (bool apply_to_selection = false);
58  void show_existing_automation (bool apply_to_selection = false);
59  void hide_all_automation (bool apply_to_selection = false);
60 
61 protected:
62  std::shared_ptr<ARDOUR::VCA> _vca;
70 
74 
75  void create_automation_child (const Evoral::Parameter& param, bool show);
76  virtual void build_automation_action_menu (bool);
79 
80  bool name_entry_changed (std::string const&);
81 
82  void parameter_changed (std::string const& p);
84  void update_vca_name ();
93  void self_delete ();
94 
95  void drop_all_slaves ();
96  void choose_color ();
97 };
98 
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:78
ArdourWidgets::ArdourButton mute_button
Definition: vca_time_axis.h:64
void update_solo_display()
void vca_property_changed(PBD::PropertyChange const &)
void set_height(uint32_t h, TrackHeightMode m=OnlySelf, bool from_idle=false)
PBD::ScopedConnectionList vca_connections
Definition: vca_time_axis.h:69
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:65
void show_existing_automation(bool apply_to_selection=false)
void build_display_menu()
GainMeterBase gain_meter
Definition: vca_time_axis.h:68
ARDOUR::PresentationInfo const & presentation_info() const
std::shared_ptr< ARDOUR::VCA > _vca
Definition: vca_time_axis.h:62
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:67
ArdourWidgets::ArdourButton solo_button
Definition: vca_time_axis.h:63
void set_vca(std::shared_ptr< ARDOUR::VCA >)
void update_mute_display()
std::shared_ptr< ARDOUR::VCA > vca() const
Definition: vca_time_axis.h:46
virtual ~VCATimeAxisView()
bool drop_release(GdkEventButton *)
Gdk::Color color() const
ArdourWidgets::ArdourButton drop_button
Definition: vca_time_axis.h:66
void create_trim_automation_child(const Evoral::Parameter &, bool)
Definition: vca_time_axis.h:72
bool automation_click(GdkEventButton *)
void parameter_changed(std::string const &p)
void hide_all_automation(bool apply_to_selection=false)
DebugBits VCA