2 * Copyright (C) 2005-2014 Paul Davis <paul@linuxaudiosystems.com>
3 * Copyright (C) 2005 Karsten Wiese <fzuuzf@googlemail.com>
4 * Copyright (C) 2005 Taybin Rutkin <taybin@taybin.com>
5 * Copyright (C) 2006-2014 David Robillard <d@drobilla.net>
6 * Copyright (C) 2007-2012 Carl Hetherington <carl@carlh.net>
7 * Copyright (C) 2017-2019 Robin Gareus <robin@gareus.org>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 #ifndef __ardour_audio_time_axis_h__
25 #define __ardour_audio_time_axis_h__
27 #include <gtkmm/table.h>
28 #include <gtkmm/button.h>
29 #include <gtkmm/box.h>
30 #include <gtkmm/menu.h>
31 #include <gtkmm/menuitem.h>
32 #include <gtkmm/radiomenuitem.h>
33 #include <gtkmm/checkmenuitem.h>
37 #include "ardour/types.h"
39 #include "ardour_dialog.h"
43 #include "route_time_axis.h"
56 class AudioStreamView;
60 class AudioRegionView;
62 class AutomationGainLine;
63 class AutomationPanLine;
65 class AutomationTimeAxisView;
67 class AudioTimeAxisView : public RouteTimeAxisView
70 AudioTimeAxisView (PublicEditor&, ARDOUR::Session*, ArdourCanvas::Canvas& canvas);
71 virtual ~AudioTimeAxisView ();
73 void set_route (boost::shared_ptr<ARDOUR::Route>);
75 AudioStreamView* audio_view();
77 void set_show_waveforms_recording (bool yn);
79 /* Overridden from parent to store display state */
80 guint32 show_at (double y, int& nth, Gtk::VBox *parent);
82 void create_automation_child (const Evoral::Parameter& param, bool show);
87 friend class AudioStreamView;
88 friend class AudioRegionView;
90 void route_active_changed ();
91 void parameter_changed (std::string const &);
93 Gtk::Menu* build_mode_menu();
94 void build_automation_action_menu (bool);
96 void show_all_automation (bool apply_to_selection = false);
97 void show_existing_automation (bool apply_to_selection = false);
98 void hide_all_automation (bool apply_to_selection = false);
102 void update_control_names ();
105 #endif /* __ardour_audio_time_axis_h__ */