ardour
audio_time_axis.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000-2006 Paul Davis
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
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #ifndef __ardour_audio_time_axis_h__
21 #define __ardour_audio_time_axis_h__
22 
23 #include <gtkmm/table.h>
24 #include <gtkmm/button.h>
25 #include <gtkmm/box.h>
26 #include <gtkmm/menu.h>
27 #include <gtkmm/menuitem.h>
28 #include <gtkmm/radiomenuitem.h>
29 #include <gtkmm/checkmenuitem.h>
30 
31 #include <gtkmm2ext/selector.h>
32 #include <list>
33 
34 #include "ardour/types.h"
35 
36 #include "ardour_dialog.h"
37 #include "route_ui.h"
38 #include "enums.h"
39 #include "editing.h"
40 #include "route_time_axis.h"
41 
42 namespace ARDOUR {
43  class Session;
44  class RouteGroup;
45  class IOProcessor;
46  class Processor;
47  class Location;
48  class AudioPlaylist;
49 }
50 
51 class PublicEditor;
52 class AudioThing;
53 class AudioStreamView;
54 class Selection;
55 class Selectable;
56 class RegionView;
57 class AudioRegionView;
58 class AutomationLine;
59 class AutomationGainLine;
60 class AutomationPanLine;
61 class TimeSelection;
63 
65 {
66  public:
67  AudioTimeAxisView (PublicEditor&, ARDOUR::Session*, ArdourCanvas::Canvas& canvas);
68  virtual ~AudioTimeAxisView ();
69 
71 
73 
74  void set_show_waveforms_recording (bool yn);
75 
76  /* Overridden from parent to store display state */
77  guint32 show_at (double y, int& nth, Gtk::VBox *parent);
78 
79  void create_automation_child (const Evoral::Parameter& param, bool show);
80 
81  void first_idle ();
82 
83  private:
84  friend class AudioStreamView;
85  friend class AudioRegionView;
86 
87  void route_active_changed ();
88 
89  Gtk::Menu* build_mode_menu();
90  void build_automation_action_menu (bool);
91 
92  void show_all_automation (bool apply_to_selection = false);
93  void show_existing_automation (bool apply_to_selection = false);
94  void hide_all_automation (bool apply_to_selection = false);
95 
96  void hide ();
97 
98  void update_control_names ();
99 };
100 
101 #endif /* __ardour_audio_time_axis_h__ */
102 
Lists of selected things.
Definition: selection.h:66
Representation of the interface of the Editor class.
void show_existing_automation(bool apply_to_selection=false)
AudioTimeAxisView(PublicEditor &, ARDOUR::Session *, ArdourCanvas::Canvas &canvas)
guint32 show_at(double y, int &nth, Gtk::VBox *parent)
void build_automation_action_menu(bool)
Definition: amp.h:29
void set_show_waveforms_recording(bool yn)
void set_route(boost::shared_ptr< ARDOUR::Route >)
TimeAxisView * parent
virtual ~AudioTimeAxisView()
AudioStreamView * audio_view()
Gtk::Menu * build_mode_menu()
void show_all_automation(bool apply_to_selection=false)
void hide_all_automation(bool apply_to_selection=false)
void create_automation_child(const Evoral::Parameter &param, bool show)