Ardour  9.0-pre0-582-g084a23a80d
application_bar.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2024 Paul Davis <paul@linuxaudiosystems.com>
3  * Copyright (C) 2013-2024 Robin Gareus <robin@gareus.org>
4  * Copyright (C) 2014-2024 Ben Loftis <ben@harrisonconsoles.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program; if not, write to the Free Software Foundation, Inc.,
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19  */
20 
21 #pragma once
22 
23 #include <gtkmm/box.h>
24 #include <gtkmm/label.h>
25 #include <gtkmm/table.h>
26 
27 #include "ardour/ardour.h"
28 #include "ardour/types.h"
29 #include "ardour/session_handle.h"
30 
31 #include "widgets/ardour_button.h"
33 #include "widgets/ardour_spacer.h"
34 
35 #include "main_clock.h"
36 #include "mini_timeline.h"
37 #include "shuttle_control.h"
38 #include "startup_fsm.h"
39 #include "transport_control.h"
40 #include "transport_control_ui.h"
41 #include "main_clock.h"
42 #include "visibility_group.h"
43 #include "window_manager.h"
44 
45 class BasicUI;
46 class TimeInfoBox;
47 class LevelMeterHBox;
48 
49 namespace ARDOUR {
50  class Route;
51  class RouteGroup;
52 }
53 
54 #define MAX_LUA_ACTION_BUTTONS 12
55 
57 {
58 public:
61 
63 
64  void focus_on_clock ();
65 
66 private:
68 
70 
71  void parameter_changed (std::string);
73 
75 
78 
80 
83 
86 
87  void solo_blink (bool);
88  void audition_blink (bool);
89  void feedback_blink (bool);
90 
91  void soloing_changed (bool);
92  void auditioning_changed (bool);
93  void _auditioning_changed (bool);
94 
97 
100 
104 
108 
110 
112  void action_script_changed (int i, const std::string&);
113 
114  /* blinking alerts */
115  void sync_blink (bool);
116  void blink_handler (bool);
117 
160 
165 
166  std::vector<std::string> _record_mode_strings;
167 
168  sigc::connection _blink_connection;
171 };
#define MAX_LUA_ACTION_BUTTONS
ArdourWidgets::ArdourButton _latency_disable_button
ArdourWidgets::ArdourVSpacer _cuectrl_spacer
void reset_peak_display()
ArdourWidgets::ArdourButton _editor_meter_peak_display
ArdourWidgets::ArdourButton _cue_rec_enable
Gtk::Label _punch_label
ArdourWidgets::ArdourButton _follow_edits_button
void sync_blink(bool)
sigc::connection _blink_connection
Gtk::Label _layered_label
sigc::connection _point_zero_something_second_connection
ArdourWidgets::ArdourVSpacer * _secondary_clock_spacer
void soloing_changed(bool)
ArdourWidgets::ArdourButton _auditioning_alert_button
void audition_alert_clicked()
ArdourWidgets::ArdourVSpacer _monitor_spacer
void map_transport_state()
ArdourWidgets::ArdourButton _monitor_mute_button
ArdourWidgets::ArdourButton _punch_out_button
TransportClock _primary_clock
Gtk::Table _table
void solo_blink(bool)
Gtk::Label _punch_space
ArdourWidgets::ArdourButton _sync_button
bool solo_alert_press(GdkEventButton *ev)
ArdourWidgets::ArdourButton _feedback_alert_button
Gtk::Label _route_latency_value
Gtk::HBox _transport_hbox
Gtk::Table _editor_meter_table
void cue_rec_state_changed()
LevelMeterHBox * _editor_meter
void ui_actions_ready()
TransportControlUI _transport_ctrl
TransportClock _secondary_clock
void set_transport_sensitivity(bool)
std::vector< std::string > _record_mode_strings
void successful_graph_sort()
ArdourWidgets::ArdourVSpacer _recpunch_spacer
void latency_switch_changed()
void blink_handler(bool)
void session_latency_updated(bool)
void focus_on_clock()
void update_clock_visibility()
ArdourWidgets::ArdourButton _action_script_call_btn[12]
void reset_group_peak_display(ARDOUR::RouteGroup *)
void reset_route_peak_display(ARDOUR::Route *)
ShuttleControl _shuttle_box
ArdourWidgets::ArdourButton _solo_alert_button
void feedback_detected()
ArdourWidgets::ArdourVSpacer _latency_spacer
ArdourWidgets::ArdourButton _cue_play_enable
bool bind_lua_action_script(GdkEventButton *, int)
bool sync_button_clicked(GdkEventButton *)
void set_record_mode(ARDOUR::RecordMode)
void repack_transport_hbox()
void feedback_blink(bool)
void set_session(ARDOUR::Session *)
void every_point_zero_something_seconds()
void parameter_changed(std::string)
ArdourWidgets::ArdourDropdown _record_mode_selector
ArdourWidgets::ArdourButton _punch_in_button
void cue_rec_state_clicked()
void cue_ffwd_state_clicked()
void auditioning_changed(bool)
bool editor_meter_peak_button_release(GdkEventButton *)
Gtk::HBox _meterbox_spacer2
ArdourWidgets::ArdourButton _monitor_mono_button
void _auditioning_changed(bool)
TimeInfoBox * _time_info_box
ArdourWidgets::ArdourButton _auto_return_button
ArdourWidgets::ArdourVSpacer _scripts_spacer
BasicUI * _basic_ui
void audition_blink(bool)
Gtk::VBox _alert_box
ArdourWidgets::ArdourVSpacer _meterbox_spacer
ArdourWidgets::ArdourButton _monitor_dim_button
PBD::ScopedConnectionList _forever_connections
void on_parent_changed(Gtk::Widget *)
This is a default handler for the signal signal_parent_changed().
MiniTimeline _mini_timeline
void action_script_changed(int i, const std::string &)