Ardour  9.0-pre0-582-g084a23a80d
surround_strip.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Robin Gareus <robin@gareus.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef _gtkardour_surround_strip_
20 #define _gtkardour_surround_strip_
21 
22 #include <gtkmm/drawingarea.h>
23 #include <gtkmm/eventbox.h>
24 #include <gtkmm/frame.h>
25 #include <gtkmm/menu.h>
26 
27 #include "ardour/types.h"
28 
29 #include "widgets/ardour_button.h"
30 #include "widgets/ardour_knob.h"
31 #include "widgets/fastmeter.h"
32 
33 #include "io_button.h"
34 #include "route_ui.h"
35 
36 namespace ARDOUR
37 {
38 class Route;
39 class Session;
40 }
41 
42 class Mixer_UI;
43 
44 class SurroundStrip : public RouteUI, public Gtk::EventBox
45 {
46 public:
47  SurroundStrip (Mixer_UI&, ARDOUR::Session*, std::shared_ptr<ARDOUR::Route>);
49 
50  void fast_update ();
51  void hide_spacer (bool);
52 
54 
55 private:
56  void init ();
57  void set_route (std::shared_ptr<ARDOUR::Route>);
60  void name_changed ();
61  void update_spacers ();
64  void parameter_changed (std::string const&);
65 
69 
71 
72  uint32_t _width;
84 
89 
97 
98  std::vector<ARDOUR::DataType> _types;
99 };
100 
101 #endif
Gtk::HBox _binaural_meter_hbox
Gtk::Label _lufs_cap
Gtk::HBox _level_box
bool name_button_button_press(GdkEventButton *)
uint32_t _width
gint meter_metrics_expose(GdkEventExpose *)
Gtk::HBox _binaural_meter_box
void route_property_changed(const PBD::PropertyChange &)
void setup_comment_button()
Gtk::Menu * build_route_ops_menu()
void name_changed()
Gtk::DrawingArea _meter_ticks2_area
ArdourWidgets::ArdourButton _name_button
static PBD::Signal< void(SurroundStrip *)> CatchDeletion
SurroundStrip(Mixer_UI &, ARDOUR::Session *, std::shared_ptr< ARDOUR::Route >)
void parameter_changed(std::string const &)
Gtk::DrawingArea _meter_metric_area
Gtk::Label _dbtp_label
ArdourWidgets::ArdourButton _comment_button
gint meter_ticks1_expose(GdkEventExpose *)
void set_route(std::shared_ptr< ARDOUR::Route >)
void fast_update()
IOButton _output_button
Gtk::Label _lufs_label
std::vector< ARDOUR::DataType > _types
Gtk::EventBox _spacer
Gtk::EventBox _spacer_ctrl
Gtk::Frame _global_frame
Gtk::VBox _surround_meter_box
Gtk::EventBox _spacer_peak
Gtk::HBox _top_box
void set_button_names()
ArdourWidgets::FastMeter * _meter[14]
ArdourWidgets::ArdourKnob _level_control
void hide_spacer(bool)
Gtk::DrawingArea _meter_ticks1_area
gint meter_ticks2_expose(GdkEventExpose *)
Gtk::Label _dbtp_cap
void update_spacers()
Gtk::VBox _global_vpacker