20 #ifndef __ardour_route_time_axis_h__
21 #define __ardour_route_time_axis_h__
26 #include <gtkmm/table.h>
27 #include <gtkmm/button.h>
28 #include <gtkmm/box.h>
29 #include <gtkmm/menu.h>
30 #include <gtkmm/menuitem.h>
31 #include <gtkmm/radiomenuitem.h>
32 #include <gtkmm/checkmenuitem.h>
33 #include <gtkmm/adjustment.h>
70 class ProcessorAutomationLine;
128 typedef std::map<Evoral::Parameter, boost::shared_ptr<AutomationTimeAxisView> >
AutomationTracks;
134 std::string
name()
const;
160 : what (w), menu_item (mitem), parent (p) {}
169 std::vector<ProcessorAutomationNode*>
lines;
172 : processor (i), valid (true), menu (0) {}
195 ProcessorAutomationNode*
324 std::list<boost::shared_ptr<AutomationTimeAxisView> >
pan_tracks;
LayerDisplay layer_display() const
void blink_rec_display(bool onoff)
boost::shared_ptr< ARDOUR::Processor > processor
std::list< ProcessorAutomationInfo * > processor_automation
void automation_track_hidden(Evoral::Parameter param)
void remove_child(boost::shared_ptr< TimeAxisView >)
void create_trim_automation_child(const Evoral::Parameter &, bool)
boost::shared_ptr< ARDOUR::Playlist > playlist() const
UnderlayList _underlay_streams
Gtk::MenuItem * plugins_submenu_item
void set_route(boost::shared_ptr< ARDOUR::Route >)
virtual Gtk::CheckMenuItem * automation_child_menu_item(Evoral::Parameter)
void use_new_playlist(bool prompt, std::vector< boost::shared_ptr< ARDOUR::Playlist > > const &)
XMLNode * underlay_xml_node
void take_name_changed(void *src)
ARDOUR::RouteGroup * route_group() const
LIBARDOUR_API PBD::PropertyDescriptor< layer_t > layer
void update_pan_track_visibility()
Gtk::CheckMenuItem * trim_automation_item
Gtk::CheckMenuItem * menu_item
ArdourButton playlist_button
virtual ~RouteTimeAxisView()
~ProcessorAutomationInfo()
void cut_copy_clear(Selection &, Editing::CutCopyOp)
void update_diskstream_display()
std::string resolve_new_group_playlist_name(std::string &, std::vector< boost::shared_ptr< ARDOUR::Playlist > > const &)
Lists of selected things.
boost::shared_ptr< ARDOUR::Region > find_next_region(framepos_t pos, ARDOUR::RegionPoint, int32_t dir)
void add_underlay(StreamView *, bool update_xml=true)
void uncombine_region(RegionView *)
void add_processor_automation_curve(boost::shared_ptr< ARDOUR::Processor > r, Evoral::Parameter)
int set_state(const XMLNode &, int version)
~ProcessorAutomationNode()
Representation of the interface of the Editor class.
void build_underlay_menu(Gtk::Menu *)
void set_layer_display(LayerDisplay d, bool apply_to_selection=false)
ArdourCanvas::Canvas & parent_canvas
RouteGroupMenu * route_group_menu
virtual Gtk::Menu * build_color_mode_menu()
const AutomationTracks & automation_tracks() const
void add_existing_processor_automation_curves(boost::weak_ptr< ARDOUR::Processor >)
Gtk::Menu * color_mode_menu
StreamView * view() const
Gtk::MenuItem * playlist_item
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
void set_samples_per_pixel(double)
std::vector< boost::shared_ptr< AutomationLine > > ProcessorAutomationCurves
void use_playlist(Gtk::RadioMenuItem *item, boost::weak_ptr< ARDOUR::Playlist > wpl)
std::list< RouteTimeAxisView * > UnderlayMirrorList
void set_track_mode(ARDOUR::TrackMode, bool apply_to_selection=false)
std::vector< ProcessorAutomationNode * > lines
void update_trim_track_visibility()
virtual void add_processor_to_subplugin_menu(boost::weak_ptr< ARDOUR::Processor >)
void reset_samples_per_pixel()
virtual void show_existing_automation(bool apply_to_selection=false)
ProcessorAutomationInfo(boost::shared_ptr< ARDOUR::Processor > i)
void route_property_changed(const PBD::PropertyChange &)
void show_timestretch(framepos_t start, framepos_t end, int layers, int layer)
ProcessorAutomationNode * find_processor_automation_node(boost::shared_ptr< ARDOUR::Processor > i, Evoral::Parameter)
void set_height(uint32_t h, TrackHeightMode m=OnlySelf)
void processor_automation_track_hidden(ProcessorAutomationNode *, boost::shared_ptr< ARDOUR::Processor >)
void effective_gain_display()
void create_gain_automation_child(const Evoral::Parameter &, bool)
void rename_current_playlist()
RouteTimeAxisView(PublicEditor &, ARDOUR::Session *, ArdourCanvas::Canvas &canvas)
ArdourButton automation_button
RegionView * combine_regions()
virtual void label_view()
void get_inverted_selectables(Selection &, std::list< Selectable * > &)
void build_playlist_menu()
virtual void append_extra_display_menu_items()
void remove_underlay(StreamView *)
bool can_edit_name() const
void setup_processor_menu_and_curves()
ProcessorAutomationCurves processor_automation_curves
void set_selected_regionviews(RegionSelection &)
void set_align_choice(Gtk::RadioMenuItem *, ARDOUR::AlignChoice, bool apply_to_selection=false)
virtual void show_all_automation(bool apply_to_selection=false)
void effective_gain_display()
boost::shared_ptr< AutomationTimeAxisView > mute_track
boost::shared_ptr< ARDOUR::Track > track() const
void show_selection(TimeSelection &)
void selection_click(GdkEventButton *)
void region_view_added(RegionView *)
virtual void create_automation_child(const Evoral::Parameter ¶m, bool show)=0
void fade_range(TimeSelection &)
void add_automation_child(Evoral::Parameter param, boost::shared_ptr< AutomationTimeAxisView > track, bool show=true)
Gtk::HBox other_button_hbox
void route_color_changed()
void set_selected_points(PointSelection &)
void ensure_pan_views(bool show=true)
std::list< StreamView * > UnderlayList
AutomationTracks _automation_tracks
Gtk::Menu * automation_action_menu
RouteTimeAxisView & parent
void name_entry_changed()
boost::shared_ptr< AutomationTimeAxisView > gain_track
Gtk::CheckMenuItem * gain_automation_item
ParameterMenuMap _subplugin_menu_map
void processors_changed(ARDOUR::RouteProcessorChange)
virtual void build_automation_action_menu(bool)
bool set_underlay_state()
void create_mute_automation_child(const Evoral::Parameter &, bool)
ArdourButton route_group_button
void reset_processor_automation_curves()
void update_track_number_visibility()
Gtk::CheckMenuItem * pan_automation_item
boost::shared_ptr< AutomationTimeAxisView > automation_child(Evoral::Parameter param)
void parameter_changed(std::string const &p)
boost::shared_ptr< AutomationLine > find_processor_automation_curve(boost::shared_ptr< ARDOUR::Processor > i, Evoral::Parameter)
ProcessorAutomationNode(Evoral::Parameter w, Gtk::CheckMenuItem *mitem, RouteTimeAxisView &p)
UnderlayMirrorList _underlay_mirrors
void timestretch(framepos_t start, framepos_t end)
Gtk::Menu * playlist_action_menu
std::map< Evoral::Parameter, boost::shared_ptr< AutomationTimeAxisView > > AutomationTracks
std::string state_id() const
void update_gain_track_visibility()
void show_playlist_selector()
std::list< boost::shared_ptr< AutomationTimeAxisView > > pan_tracks
bool paste(ARDOUR::framepos_t, const Selection &, PasteContext &ctx)
void update_mute_track_visibility()
void io_changed(ARDOUR::IOChange, void *)
void processor_menu_item_toggled(RouteTimeAxisView::ProcessorAutomationInfo *, RouteTimeAxisView::ProcessorAutomationNode *)
gint route_group_click(GdkEventButton *)
Gtk::CheckMenuItem * mute_automation_item
bool _ignore_set_layer_display
boost::shared_ptr< AutomationTimeAxisView > view
void use_copy_playlist(bool prompt, std::vector< boost::shared_ptr< ARDOUR::Playlist > > const &)
ArdourButton number_label
void get_selectables(ARDOUR::framepos_t start, ARDOUR::framepos_t end, double top, double bot, std::list< Selectable * > &, bool within=false)
void remove_processor_automation_node(ProcessorAutomationNode *pan)
void update_playlist_tip()
framepos_t find_next_region_boundary(framepos_t pos, int32_t dir)
ArdourCanvas::Rectangle * timestretch_rect
std::map< Evoral::Parameter, Gtk::CheckMenuItem * > ParameterMenuMap
void build_display_menu()
virtual void hide_all_automation(bool apply_to_selection=false)
boost::shared_ptr< AutomationTimeAxisView > trim_track
ParameterMenuMap _main_automation_menu_map
void toggle_automation_track(const Evoral::Parameter ¶m)