ardour
editor.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000-2003 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_editor_h__
21 #define __ardour_editor_h__
22 
23 #include <sys/time.h>
24 
25 #include <cmath>
26 #include <list>
27 #include <map>
28 #include <set>
29 #include <string>
30 #include <vector>
31 
32 #include <boost/optional.hpp>
33 
34 #include <gtkmm/comboboxtext.h>
35 #include <gtkmm/layout.h>
36 
37 #include "gtkmm2ext/selector.h"
38 #include "gtkmm2ext/click_box.h"
39 #include "gtkmm2ext/dndtreeview.h"
41 #include "gtkmm2ext/bindings.h"
42 
43 #include "pbd/stateful.h"
44 #include "pbd/signals.h"
45 
46 #include "ardour/import_status.h"
47 #include "ardour/tempo.h"
48 #include "ardour/location.h"
49 #include "ardour/types.h"
50 
51 #include "canvas/fwd.h"
52 #include "canvas/ruler.h"
53 
54 #include "ardour_button.h"
55 #include "ardour_dialog.h"
56 #include "ardour_dropdown.h"
57 #include "public_editor.h"
58 #include "editing.h"
59 #include "enums.h"
60 #include "editor_items.h"
61 #include "region_selection.h"
62 #include "selection_memento.h"
63 
64 namespace Gtkmm2ext {
65  class TearOff;
66  class Bindings;
67 }
68 
69 namespace ARDOUR {
70  class RouteGroup;
71  class Playlist;
72  class AudioPlaylist;
73  class AudioRegion;
74  class Region;
75  class Location;
76  class TempoSection;
77  class Session;
78  class Filter;
79  class ChanCount;
80  class MidiOperator;
81  class Track;
82  class MidiTrack;
83  class AudioTrack;
84 }
85 
86 namespace LADSPA {
87  class Plugin;
88 }
89 
90 class AnalysisWindow;
91 class AudioClock;
92 class AudioRegionView;
93 class AudioStreamView;
94 class AudioTimeAxisView;
95 class AutomationLine;
98 class BundleManager;
99 class ButtonJoiner;
100 class ControlPoint;
101 class CursorContext;
102 class DragManager;
103 class EditNoteDialog;
104 class EditorCursor;
105 class EditorGroupTabs;
106 class EditorLocations;
107 class EditorRegions;
108 class EditorRoutes;
109 class EditorRouteGroups;
110 class EditorSnapshots;
111 class EditorSummary;
112 class GroupedButtons;
113 class GUIObjectState;
114 class Marker;
115 class MidiRegionView;
116 class MixerStrip;
117 class MouseCursors;
118 class NoteBase;
119 class PlaylistSelector;
120 class PluginSelector;
121 class ProgressReporter;
122 class RhythmFerret;
123 class RulerDialog;
124 class Selection;
125 class SoundFileOmega;
126 class StreamView;
127 class TempoLines;
128 class TimeAxisView;
129 class TimeFXDialog;
130 class TimeSelection;
132 class VerboseCursor;
133 
135 {
136  public:
137  Editor ();
138  ~Editor ();
139 
140  void set_session (ARDOUR::Session *);
141  ARDOUR::Session* session() const { return _session; }
142 
143  void first_idle ();
144  virtual bool have_idled () const { return _have_idled; }
145 
147 
150  }
151 
152  double visible_canvas_height () const {
153  return _visible_canvas_height;
154  }
155  double trackviews_height () const;
156 
157  void cycle_snap_mode ();
158  void next_snap_choice ();
161  void prev_snap_choice ();
166  void set_snap_threshold (double pixel_distance) {snap_threshold = pixel_distance;}
167 
168  Editing::SnapMode snap_mode () const;
169  Editing::SnapType snap_type () const;
170 
171  void undo (uint32_t n = 1);
172  void redo (uint32_t n = 1);
173 
174  XMLNode& get_state ();
175  int set_state (const XMLNode&, int version);
176 
177  void set_mouse_mode (Editing::MouseMode, bool force=true);
178  void step_mouse_mode (bool next);
181  void remove_midi_note (ArdourCanvas::Item *, GdkEvent *);
182 
183  bool internal_editing() const;
184 
185  void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
186  void add_to_idle_resize (TimeAxisView*, int32_t);
187 
189 
193 
194 #ifdef USE_RUBBERBAND
195  std::vector<std::string> rb_opt_strings;
196  int rb_current_opt;
197 #endif
198 
199  /* things that need to be public to be used in the main menubar */
200 
208  void transition_to_rolling (bool forward);
209 
210  /* NOTE: these functions assume that the "pixel" coordinate is
211  in canvas coordinates. These coordinates already take into
212  account any scrolling offsets.
213  */
214 
215  framepos_t pixel_to_sample_from_event (double pixel) const {
216 
217  /* pixel can be less than zero when motion events
218  are processed. since we've already run the world->canvas
219  affine, that means that the location *really* is "off
220  to the right" and thus really is "before the start".
221  */
222 
223  if (pixel >= 0) {
224  return pixel * samples_per_pixel;
225  } else {
226  return 0;
227  }
228  }
229 
230  framepos_t pixel_to_sample (double pixel) const {
231  return pixel * samples_per_pixel;
232  }
233 
234  double sample_to_pixel (framepos_t sample) const {
235  return round (sample / (double) samples_per_pixel);
236  }
237 
238  double sample_to_pixel_unrounded (framepos_t sample) const {
239  return sample / (double) samples_per_pixel;
240  }
241 
242  /* selection */
243 
244  Selection& get_selection() const { return *selection; }
245  bool get_selection_extents ( framepos_t &start, framepos_t &end ); // the time extents of the current selection, whether Range, Region(s), Control Points, or Notes
246  Selection& get_cut_buffer() const { return *cut_buffer; }
247  void track_mixer_selection ();
248 
250 
251  void play_selection ();
254  void play_with_preroll ();
258  void invert_selection ();
259  void deselect_all ();
261 
263 
264  void remove_tracks ();
265 
266  /* tempo */
267 
268  void set_show_measures (bool yn);
269  bool show_measures () const { return _show_measures; }
270 
271  /* analysis window */
272 
275 
276  /* export */
277 
278  void export_audio ();
279  void stem_export ();
280  void export_selection ();
281  void export_range ();
282  void export_region ();
283 
284  void add_transport_frame (Gtk::Container&);
285  void add_toplevel_menu (Gtk::Container&);
286  Gtk::HBox& get_status_bar_packer() { return status_bar_hpacker; }
287 
291  void cycle_zoom_focus ();
292  void temporal_zoom_step (bool coarser);
293  void ensure_time_axis_view_is_visible (TimeAxisView const & tav, bool at_top);
294  void tav_zoom_step (bool coarser);
295  void tav_zoom_smooth (bool coarser, bool force_all);
296 
297  /* stuff that AudioTimeAxisView and related classes use */
298 
301 
302  void new_playlists (TimeAxisView* v);
303  void copy_playlists (TimeAxisView* v);
304  void clear_playlists (TimeAxisView* v);
305 
307 
310  void show_editor_mixer (bool yn);
311  void create_editor_mixer ();
312  void show_editor_list (bool yn);
315  void hide_track_in_display (TimeAxisView* tv, bool apply_to_selection = false);
316 
317  /* nudge is initiated by transport controls owned by ARDOUR_UI */
318 
320  framecnt_t get_paste_offset (framepos_t pos, unsigned paste_count, framecnt_t duration);
323 
324  void nudge_forward (bool next, bool force_playhead);
325  void nudge_backward (bool next, bool force_playhead);
326 
327  /* nudge initiated from context menu */
328 
331 
332  void sequence_regions ();
333 
334  /* playhead/screen stuff */
335 
336  void set_stationary_playhead (bool yn);
338  bool stationary_playhead() const { return _stationary_playhead; }
339 
340  void set_follow_playhead (bool yn, bool catch_up = true);
341  void toggle_follow_playhead ();
342  bool follow_playhead() const { return _follow_playhead; }
343  bool dragging_playhead () const { return _dragging_playhead; }
344 
346  void set_summary ();
347  void set_group_tabs ();
349  void toggle_logo_visibility ();
350 
351  /* fades */
352 
353  void toggle_region_fades (int dir);
355 
356  /* redirect shared ops menu. caller must free returned menu */
357 
358  Gtk::Menu* redirect_menu ();
359 
360  /* floating windows/transient */
361 
362  void ensure_float (Gtk::Window&);
363 
364  void show_window ();
365 
366  void scroll_tracks_down_line ();
367  void scroll_tracks_up_line ();
368 
369  bool scroll_up_one_track (bool skip_child_views = false);
370  bool scroll_down_one_track (bool skip_child_views = false);
371 
372  void prepare_for_cleanup ();
373  void finish_cleanup ();
374 
375  void maximise_editing_space();
376  void restore_editing_space();
377 
379  void reattach_all_tearoffs ();
380 
381  double get_y_origin () const;
382  void reset_x_origin (framepos_t);
384  void reset_y_origin (double);
385  void reset_zoom (framecnt_t);
386  void reposition_and_zoom (framepos_t, double);
387 
389  bool use_context_click = false,
390  bool from_outside_canvas = false);
391 
392  bool update_mouse_speed ();
393  bool decelerate_mouse_speed ();
394 
395  void toggle_meter_updating();
396 
397  void show_rhythm_ferret();
398 
399  void goto_visual_state (uint32_t);
400  void save_visual_state (uint32_t);
401 
402  void queue_draw_resize_line (int at);
403  void start_resize_line_ops ();
404  void end_resize_line_ops ();
405 
407  return track_views;
408  }
409 
411 
412  void do_import (std::vector<std::string> paths,
413  Editing::ImportDisposition disposition,
414  Editing::ImportMode mode,
415  ARDOUR::SrcQuality quality,
416  framepos_t& pos,
418 
419  void do_embed (std::vector<std::string> paths,
420  Editing::ImportDisposition disposition,
421  Editing::ImportMode mode,
422  framepos_t& pos,
424 
425  void get_regions_corresponding_to (boost::shared_ptr<ARDOUR::Region> region, std::vector<RegionView*>& regions, bool src_comparison);
426 
427  void get_regionviews_by_id (PBD::ID const id, RegionSelection & regions) const;
428  void get_per_region_note_selection (std::list<std::pair<PBD::ID, std::set<boost::shared_ptr<Evoral::Note<Evoral::Beats> > > > >&) const;
429 
430  void center_screen (framepos_t);
431 
433 
436 
437  void snap_to (framepos_t& first,
439  bool for_mark = false);
440 
441  void snap_to_with_modifier (framepos_t& first,
442  GdkEvent const * ev,
444  bool for_mark = false);
445 
446  void snap_to (framepos_t& first,
447  framepos_t& last,
449  bool for_mark = false);
450 
452  void begin_reversible_selection_op (std::string cmd_name);
454  void undo_selection_op ();
455  void redo_selection_op ();
456  void begin_reversible_command (std::string cmd_name);
457  void begin_reversible_command (GQuark);
458  void abort_reversible_command ();
460 
461  DragManager* drags () const {
462  return _drags;
463  }
464 
465  void maybe_autoscroll (bool, bool, bool);
466  bool autoscroll_active() const;
467 
468  Gdk::Cursor* get_canvas_cursor () const;
469 
472 
473  MouseCursors const * cursors () const {
474  return _cursors;
475  }
476 
478  return _verbose_cursor;
479  }
480 
481  double clamp_verbose_cursor_x (double);
482  double clamp_verbose_cursor_y (double);
483 
484  void get_pointer_position (double &, double &) const;
485 
487  struct EnterContext {
490  };
491 
498 
500  return _stepping_axis_view;
501  }
502 
505  }
506 
507  ArdourCanvas::Container* get_trackview_group () const { return _trackview_group; }
508  ArdourCanvas::Container* get_noscroll_group () const { return no_scroll_group; }
509  ArdourCanvas::ScrollGroup* get_hscroll_group () const { return h_scroll_group; }
510  ArdourCanvas::ScrollGroup* get_hvscroll_group () const { return hv_scroll_group; }
511  ArdourCanvas::ScrollGroup* get_cursor_scroll_group () const { return cursor_scroll_group; }
512 
513  ArdourCanvas::GtkCanvasViewport* get_track_canvas () const;
514 
516 
517  /* Ruler metrics methods */
518 
519  void metric_get_timecode (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
520  void metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
521  void metric_get_samples (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
522  void metric_get_minsec (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
523 
524  /* editing operations that need to be public */
525  void mouse_add_new_marker (framepos_t where, bool is_cd=false);
527  void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
529 
534 
535  protected:
536  void map_transport_state ();
538 
539  void on_realize();
540 
541  void suspend_route_redisplay ();
542  void resume_route_redisplay ();
543 
544  private:
545 
546  void color_handler ();
547 
549 
550  // to keep track of the playhead position for control_scroll
551  boost::optional<framepos_t> _control_scroll_target;
552 
554 
555  typedef std::pair<TimeAxisView*,XMLNode*> TAVState;
556 
557  struct VisualState {
558  VisualState (bool with_tracks);
559  ~VisualState ();
560  double y_position;
565  };
566 
567  std::list<VisualState*> undo_visual_stack;
568  std::list<VisualState*> redo_visual_stack;
569  VisualState* current_visual_state (bool with_tracks = true);
570  void undo_visual_state ();
571  void redo_visual_state ();
574  void swap_visual_state ();
575 
576  std::vector<VisualState*> visual_states;
577  void start_visual_state_op (uint32_t n);
578  void cancel_visual_state_op (uint32_t n);
579 
583 
585 
592 
599  };
600 
602 
603  void update_join_object_range_location (double);
604 
605  boost::optional<int> pre_notebook_shrink_pane_width;
606 
607  void pane_allocation_handler (Gtk::Allocation&, Gtk::Paned*);
608 
609  Gtk::Notebook _the_notebook;
611  void add_notebook_page (std::string const &, Gtk::Widget &);
612  bool notebook_tab_clicked (GdkEventButton *, Gtk::Widget *);
613 
614  Gtk::HPaned edit_pane;
615  Gtk::VPaned editor_summary_pane;
616 
617  Gtk::EventBox meter_base;
618  Gtk::HBox meter_box;
619  Gtk::EventBox marker_base;
620  Gtk::HBox marker_box;
622 
625  void refresh_location_display ();
628  ArdourCanvas::Container* add_new_location_internal (ARDOUR::Location *);
630  void remove_marker (ArdourCanvas::Item&, GdkEvent*);
632  void goto_nth_marker (int nth);
633  void toggle_marker_lines ();
634  void set_marker_line_visibility (bool);
635 
641 
645  bool valid;
646 
647  LocationMarkers () : start(0), end(0), valid (true) {}
648 
649  ~LocationMarkers ();
650 
651  void hide ();
652  void show ();
653 
654  void set_show_lines (bool);
655  void set_selected (bool);
656  void canvas_height_set (double);
657  void setup_lines ();
658 
659  void set_name (const std::string&);
660  void set_position (framepos_t start, framepos_t end = 0);
661  void set_color_rgba (uint32_t);
662  };
663 
664  LocationMarkers *find_location_markers (ARDOUR::Location *) const;
665  ARDOUR::Location* find_location_from_marker (Marker *, bool& is_start) const;
666  Marker* find_marker_from_location_id (PBD::ID const &, bool) const;
669 
670  typedef std::map<ARDOUR::Location*,LocationMarkers *> LocationMarkerMap;
671  LocationMarkerMap location_markers;
672 
673  void update_marker_labels ();
674  void update_marker_labels (ArdourCanvas::Container *);
675  void check_marker_label (Marker *);
676 
683  std::map<ArdourCanvas::Container *, std::list<Marker *> > _sorted_marker_lists;
684  void remove_sorted_marker (Marker *);
685 
686  void hide_marker (ArdourCanvas::Item*, GdkEvent*);
687  void clear_marker_display ();
691  bool choose_new_marker_name(std::string &name);
692  void update_cd_marker_display ();
694 
705 
707 
708  void get_equivalent_regions (RegionView* rv, std::vector<RegionView*> &, PBD::PropertyID) const;
710  void mapover_tracks (sigc::slot<void,RouteTimeAxisView&,uint32_t> sl, TimeAxisView*, PBD::PropertyID) const;
711  void mapover_tracks_with_unique_playlists (sigc::slot<void,RouteTimeAxisView&,uint32_t> sl, TimeAxisView*, PBD::PropertyID) const;
712 
713  /* functions to be passed to mapover_tracks(), possibly with sigc::bind()-supplied arguments */
714  void mapped_get_equivalent_regions (RouteTimeAxisView&, uint32_t, RegionView *, std::vector<RegionView*>*) const;
715  void mapped_use_new_playlist (RouteTimeAxisView&, uint32_t, std::vector<boost::shared_ptr<ARDOUR::Playlist> > const &);
716  void mapped_use_copy_playlist (RouteTimeAxisView&, uint32_t, std::vector<boost::shared_ptr<ARDOUR::Playlist> > const &);
717  void mapped_clear_playlist (RouteTimeAxisView&, uint32_t);
718 
719  void button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type);
722 
724 
725  void set_selected_track (TimeAxisView&, Selection::Operation op = Selection::Set, bool no_remove=false);
726  void select_all_tracks ();
728 
730  void set_selected_track_from_click (bool press, Selection::Operation op = Selection::Set, bool no_remove=false);
733 
737 
741 
747 
749 
750  void popup_track_context_menu (int, int, ItemType, bool);
751  Gtk::Menu* build_track_context_menu ();
752  Gtk::Menu* build_track_bus_context_menu ();
753  Gtk::Menu* build_track_region_context_menu ();
755  void add_dstream_context_items (Gtk::Menu_Helpers::MenuList&);
756  void add_bus_context_items (Gtk::Menu_Helpers::MenuList&);
757  void add_region_context_items (Gtk::Menu_Helpers::MenuList&, boost::shared_ptr<ARDOUR::Track>);
758  void add_selection_context_items (Gtk::Menu_Helpers::MenuList&);
759  Gtk::MenuItem* _popup_region_menu_item;
760 
761  void popup_control_point_context_menu (ArdourCanvas::Item *, GdkEvent *);
763 
764  void popup_note_context_menu (ArdourCanvas::Item *, GdkEvent *);
766 
769 
770  Gtk::HBox global_hpacker;
771  Gtk::VBox global_vpacker;
772  Gtk::VBox vpacker;
773 
774  /* Cursor stuff. Do not use directly, use via CursorContext. */
775  friend class CursorContext;
776  std::vector<Gdk::Cursor*> _cursor_stack;
777  void set_canvas_cursor (Gdk::Cursor*);
778  size_t push_canvas_cursor (Gdk::Cursor*);
779  void pop_canvas_cursor ();
780 
781  Gdk::Cursor* which_grabber_cursor () const;
782  Gdk::Cursor* which_track_cursor () const;
783  Gdk::Cursor* which_mode_cursor () const;
784  Gdk::Cursor* which_trim_cursor (bool left_side) const;
785  Gdk::Cursor* which_canvas_cursor (ItemType type) const;
786 
789 
791  void update_all_enter_cursors ();
792 
793  ArdourCanvas::GtkCanvas* _track_canvas;
794  ArdourCanvas::GtkCanvasViewport* _track_canvas_viewport;
795 
797 
798  friend class VerboseCursor;
800 
801  void parameter_changed (std::string);
802  void ui_parameter_changed (std::string);
803 
804  Gtk::EventBox time_bars_event_box;
805  Gtk::VBox time_bars_vbox;
806 
807  ArdourCanvas::Pixbuf *logo_item;
808 #if 0
809  /* these will be needed when we have canvas rulers */
810  ArdourCanvas::Container *minsec_group;
811  ArdourCanvas::Container *bbt_group;
812  ArdourCanvas::Container *timecode_group;
813  ArdourCanvas::Container *frame_group;
814 #endif
815 
816  ArdourCanvas::Container *tempo_group;
817  ArdourCanvas::Container *meter_group;
818  ArdourCanvas::Container *marker_group;
819  ArdourCanvas::Container *range_marker_group;
820  ArdourCanvas::Container *transport_marker_group;
821  ArdourCanvas::Container* cd_marker_group;
822 
823  /* parent for groups which themselves contain time markers */
824  ArdourCanvas::Container* _time_markers_group;
825 
826  /* The group containing all other groups that are scrolled vertically
827  and horizontally.
828  */
829  ArdourCanvas::ScrollGroup* hv_scroll_group;
830 
831  /* The group containing all other groups that are scrolled horizontally ONLY
832  */
833  ArdourCanvas::ScrollGroup* h_scroll_group;
834 
835  /* Scroll group for cursors, scrolled horizontally, above everything else
836  */
837  ArdourCanvas::ScrollGroup* cursor_scroll_group;
838 
839  /* The group containing all trackviews. */
840  ArdourCanvas::Container* no_scroll_group;
841 
842  /* The group containing all trackviews. */
843  ArdourCanvas::Container* _trackview_group;
844 
845  /* The group holding things (mostly regions) while dragging so they
846  * are on top of everything else
847  */
848  ArdourCanvas::Container* _drag_motion_group;
849 
850  /* a rect that sits at the bottom of all tracks to act as a drag-no-drop/clickable
851  * target area.
852  */
853  ArdourCanvas::Rectangle* _canvas_drop_zone;
854  bool canvas_drop_zone_event (GdkEvent* event);
855 
856  enum RulerType {
861 
869  };
870 
871  Glib::RefPtr<Gtk::ToggleAction> ruler_timecode_action;
872  Glib::RefPtr<Gtk::ToggleAction> ruler_bbt_action;
873  Glib::RefPtr<Gtk::ToggleAction> ruler_samples_action;
874  Glib::RefPtr<Gtk::ToggleAction> ruler_minsec_action;
875  Glib::RefPtr<Gtk::ToggleAction> ruler_tempo_action;
876  Glib::RefPtr<Gtk::ToggleAction> ruler_meter_action;
877  Glib::RefPtr<Gtk::ToggleAction> ruler_marker_action;
878  Glib::RefPtr<Gtk::ToggleAction> ruler_range_action;
879  Glib::RefPtr<Gtk::ToggleAction> ruler_loop_punch_action;
880  Glib::RefPtr<Gtk::ToggleAction> ruler_cd_marker_action;
882 
883  Gtk::Widget * ruler_grabbed_widget;
884 
886 
887  void initialize_rulers ();
888  void update_just_timecode ();
889  void compute_fixed_ruler_scale (); //calculates the RulerScale of the fixed rulers
890  void update_fixed_rulers ();
891  void update_tempo_based_rulers (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
892  ARDOUR::TempoMap::BBTPointList::const_iterator& end);
893  void popup_ruler_menu (framepos_t where = 0, ItemType type = RegionItem);
894  void update_ruler_visibility ();
895  void set_ruler_visible (RulerType, bool);
897  void ruler_toggled (int);
898  bool ruler_label_button_release (GdkEventButton*);
899  void store_ruler_visibility ();
900  void restore_ruler_visibility ();
901 
902 
903 
910  };
911 
913 
918 
926  };
927 
929 
933 
936 
947  };
948 
950 
951  uint32_t bbt_bars;
956  ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin,
957  ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end);
958 
959  ArdourCanvas::Ruler* timecode_ruler;
960  ArdourCanvas::Ruler* bbt_ruler;
961  ArdourCanvas::Ruler* samples_ruler;
962  ArdourCanvas::Ruler* minsec_ruler;
963 
964  static double timebar_height;
966  Gtk::Menu *editor_ruler_menu;
967 
968  ArdourCanvas::Rectangle* tempo_bar;
969  ArdourCanvas::Rectangle* meter_bar;
970  ArdourCanvas::Rectangle* marker_bar;
971  ArdourCanvas::Rectangle* range_marker_bar;
972  ArdourCanvas::Rectangle* transport_marker_bar;
973  ArdourCanvas::Rectangle* cd_marker_bar;
974 
975  Gtk::Label minsec_label;
976  Gtk::Label bbt_label;
977  Gtk::Label timecode_label;
978  Gtk::Label samples_label;
979  Gtk::Label tempo_label;
980  Gtk::Label meter_label;
981  Gtk::Label mark_label;
982  Gtk::Label range_mark_label;
984  Gtk::Label cd_mark_label;
985 
986  /* videtimline related actions */
987  Gtk::Label videotl_label;
988  ArdourCanvas::Container* videotl_group;
989  Glib::RefPtr<Gtk::ToggleAction> ruler_video_action;
990  Glib::RefPtr<Gtk::ToggleAction> xjadeo_proc_action;
991  Glib::RefPtr<Gtk::ToggleAction> xjadeo_ontop_action;
992  Glib::RefPtr<Gtk::ToggleAction> xjadeo_timecode_action;
993  Glib::RefPtr<Gtk::ToggleAction> xjadeo_frame_action;
994  Glib::RefPtr<Gtk::ToggleAction> xjadeo_osdbg_action;
995  Glib::RefPtr<Gtk::ToggleAction> xjadeo_fullscreen_action;
996  Glib::RefPtr<Gtk::ToggleAction> xjadeo_letterbox_action;
997  Glib::RefPtr<Gtk::Action> xjadeo_zoom_100;
998  void set_xjadeo_proc ();
999  void toggle_xjadeo_proc (int state=-1);
1000  void set_close_video_sensitive (bool onoff);
1001  void set_xjadeo_sensitive (bool onoff);
1002  void set_xjadeo_viewoption (int);
1003  void toggle_xjadeo_viewoption (int what, int state=-1);
1004  void toggle_ruler_video (bool onoff) {ruler_video_action->set_active(onoff);}
1005  int videotl_bar_height; /* in units of timebar_height; default: 4 */
1007  void toggle_region_video_lock ();
1008 
1009  friend class EditorCursor;
1010 
1012 
1013  framepos_t get_region_boundary (framepos_t pos, int32_t dir, bool with_selection, bool only_onscreen);
1014 
1015  void cursor_to_region_boundary (bool with_selection, int32_t dir);
1016  void cursor_to_next_region_boundary (bool with_selection);
1017  void cursor_to_previous_region_boundary (bool with_selection);
1023 
1024  void selected_marker_to_region_boundary (bool with_selection, int32_t dir);
1025  void selected_marker_to_next_region_boundary (bool with_selection);
1026  void selected_marker_to_previous_region_boundary (bool with_selection);
1032 
1035  void select_all_selectables_between (bool within);
1036  void select_range_between ();
1037 
1040 
1041  std::vector<ARDOUR::framepos_t> region_boundary_cache;
1043 
1044  Gtk::HBox toplevel_hpacker;
1045 
1046  Gtk::HBox top_hbox;
1047  Gtk::HBox bottom_hbox;
1048 
1049  Gtk::Table edit_packer;
1050 
1052  Gtk::Adjustment vertical_adjustment;
1053  Gtk::Adjustment horizontal_adjustment;
1054 
1055  Gtk::Adjustment unused_adjustment; // yes, really; Gtk::Layout constructor requires refs
1056  Gtk::Layout controls_layout;
1057  bool control_layout_scroll (GdkEventScroll* ev);
1059  void reset_controls_layout_height (int32_t height);
1060 
1061  enum Direction {
1066  };
1067 
1068  bool scroll_press (Direction);
1069  void scroll_release ();
1070  sigc::connection _scroll_connection;
1072 
1076 
1077  bool track_canvas_map_handler (GdkEventAny*);
1078 
1079  bool edit_controls_button_release (GdkEventButton*);
1082 
1086 
1091  void control_step_tracks_up ();
1092  void control_step_tracks_down ();
1093  void control_view (uint32_t);
1094  void control_scroll (float);
1095  void control_select (uint32_t rid, Selection::Operation);
1096  void control_unselect ();
1097  void access_action (std::string,std::string);
1099  sigc::connection control_scroll_connection;
1100 
1101  void tie_vertical_scrolling ();
1102  void set_horizontal_position (double);
1103  double horizontal_position () const;
1104 
1105  struct VisualChange {
1106  enum Type {
1107  TimeOrigin = 0x1,
1108  ZoomLevel = 0x2,
1109  YOrigin = 0x4
1110  };
1111 
1115  double y_origin;
1116 
1120 
1121  VisualChange() : pending ((VisualChange::Type) 0), time_origin (0), samples_per_pixel (0), idle_handler_id (-1), being_handled (false) {}
1122  void add (Type t) {
1123  pending = Type (pending | t);
1124  }
1125  };
1126 
1128 
1129  static int _idle_visual_changer (void *arg);
1130  int idle_visual_changer ();
1131  void visual_changer (const VisualChange&);
1133 
1134  /* track views */
1136  std::pair<TimeAxisView*, double> trackview_by_y_position (double, bool trackview_relative_offset = true) const;
1138 
1140 
1143  void center_screen_internal (framepos_t, float);
1144 
1145  void super_rapid_screen_update ();
1146 
1147  void session_going_away ();
1148 
1151 
1153 
1156 
1157  bool typed_event (ArdourCanvas::Item*, GdkEvent*, ItemType);
1158  bool button_press_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1159  bool button_press_handler_1 (ArdourCanvas::Item *, GdkEvent *, ItemType);
1160  bool button_press_handler_2 (ArdourCanvas::Item *, GdkEvent *, ItemType);
1161  bool button_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1162  bool button_double_click_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1163  bool button_press_dispatch (GdkEventButton*);
1164  bool button_release_dispatch (GdkEventButton*);
1165  bool motion_handler (ArdourCanvas::Item*, GdkEvent*, bool from_autoscroll = false);
1166  bool enter_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1167  bool leave_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1168  bool key_press_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1169  bool key_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
1170 
1172  XMLNode* button_settings () const;
1173 
1174  /* KEYMAP HANDLING */
1175 
1176  void register_actions ();
1177  void register_region_actions ();
1178 
1179  void load_bindings ();
1182 
1183  /* CUT/COPY/PASTE */
1184 
1186  unsigned paste_count;
1187 
1189  bool can_cut_copy () const;
1190  void cut_copy_points (Editing::CutCopyOp, Evoral::Beats earliest=Evoral::Beats(), bool midi=false);
1194 
1195  void mouse_paste ();
1196  void paste_internal (framepos_t position, float times);
1197 
1198  /* EDITING OPERATIONS */
1199 
1200  void reset_point_selection ();
1201  void toggle_region_lock ();
1202  void toggle_opaque_region ();
1203  void toggle_record_enable ();
1204  void toggle_solo ();
1205  void toggle_solo_isolate ();
1206  void toggle_mute ();
1207  void toggle_region_lock_style ();
1208 
1214  };
1215 
1217  void raise_region ();
1218  void raise_region_to_top ();
1219  void change_region_layering_order (bool from_context_menu);
1220  void lower_region ();
1221  void lower_region_to_bottom ();
1223  void crop_region_to_selection ();
1225  void set_sync_point (framepos_t, const RegionSelection&);
1226  void set_region_sync_position ();
1227  void remove_region_sync();
1232  void remove_selected_regions ();
1233  void remove_clicked_region ();
1234  void show_region_properties ();
1235  void show_midi_list_editor ();
1236  void rename_region ();
1237  void duplicate_some_regions (RegionSelection&, float times);
1238  void duplicate_selection (float times);
1239  void region_fill_selection ();
1240  void combine_regions ();
1241  void uncombine_regions ();
1242 
1243  void region_fill_track ();
1247  void reverse_region ();
1248  void strip_region_silence ();
1249  void normalize_region ();
1251  void adjust_region_gain (bool up);
1252  void quantize_region ();
1253  void quantize_regions (const RegionSelection& rs);
1254  void legatize_region (bool shrink_only);
1255  void legatize_regions (const RegionSelection& rs, bool shrink_only);
1256  void transform_region ();
1257  void transform_regions (const RegionSelection& rs);
1258  void insert_patch_change (bool from_context);
1259  void fork_region ();
1260 
1261  void do_insert_time ();
1262  void insert_time (framepos_t, framecnt_t, Editing::InsertTimeOption, bool, bool, bool, bool, bool, bool);
1263 
1264  void do_cut_time ();
1265  void cut_time (framepos_t pos, framecnt_t distance, Editing::InsertTimeOption opt, bool ignore_music_glue, bool markers_too, bool tempo_too);
1266 
1267  void tab_to_transient (bool forward);
1268 
1269  void set_tempo_from_region ();
1270  void use_range_as_bar ();
1271 
1273 
1277 
1278  void naturalize_region ();
1279 
1280  void reset_focus ();
1281 
1282  void split_region ();
1283 
1284  void delete_ ();
1285  void cut ();
1286  void copy ();
1287  void paste (float times, bool from_context_menu = false);
1288 
1289  void place_transient ();
1290  void remove_transient (ArdourCanvas::Item* item);
1291  void snap_regions_to_grid ();
1292  void close_region_gaps ();
1293 
1294  void keyboard_paste ();
1295 
1296  void region_from_selection ();
1298 
1299  void play_from_start ();
1300  void play_from_edit_point ();
1302  void play_selected_region ();
1303  void play_edit_range ();
1306 
1308  void temporal_zoom_selection (bool both_axes = false);
1309  void temporal_zoom_region (bool both_axes);
1310  void temporal_zoom_session ();
1311  void temporal_zoom (framecnt_t samples_per_pixel);
1313  void temporal_zoom_to_frame (bool coarser, framepos_t frame);
1314 
1315  void insert_region_list_selection (float times);
1316 
1317  /* import & embed */
1318 
1320  void external_audio_dialog ();
1321  void session_import_dialog ();
1322 
1323  int check_whether_and_how_to_import(std::string, bool all_or_nothing = true);
1324  bool check_multichannel_status (const std::vector<std::string>& paths);
1325 
1327 
1329 
1330  bool idle_drop_paths (std::vector<std::string> paths, framepos_t frame, double ypos, bool copy);
1331  void drop_paths_part_two (const std::vector<std::string>& paths, framepos_t frame, double ypos, bool copy);
1332 
1333  int import_sndfiles (std::vector<std::string> paths,
1334  Editing::ImportDisposition disposition,
1335  Editing::ImportMode mode,
1336  ARDOUR::SrcQuality quality,
1337  framepos_t& pos,
1338  int target_regions,
1339  int target_tracks,
1341  bool replace,
1343 
1344  int embed_sndfiles (std::vector<std::string> paths,
1345  bool multiple_files,
1346  bool& check_sample_rate,
1347  Editing::ImportDisposition disposition,
1348  Editing::ImportMode mode,
1349  framepos_t& pos,
1350  int target_regions,
1351  int target_tracks,
1354 
1355  int add_sources (std::vector<std::string> paths,
1356  ARDOUR::SourceList& sources,
1357  framepos_t& pos,
1358  Editing::ImportDisposition disposition,
1359  Editing::ImportMode mode,
1360  int target_regions,
1361  int target_tracks,
1363  bool add_channel_suffix,
1365 
1367  uint32_t in_chans,
1368  uint32_t out_chans,
1369  framepos_t& pos,
1370  Editing::ImportMode mode,
1371  boost::shared_ptr<ARDOUR::Track>& existing_track,
1372  const std::string& new_track_name,
1374 
1377 
1378  void toggle_midi_input_active (bool flip_others);
1379 
1381 
1383 
1384  /* import specific info */
1385 
1392  bool replace;
1393  };
1394 
1396  static void *_import_thread (void *);
1397  void* import_thread ();
1398  void finish_import ();
1399 
1400  /* to support this ... */
1401 
1402  void import_audio (bool as_tracks);
1403  void do_import (std::vector<std::string> paths, bool split, bool as_tracks);
1404 
1405  void move_to_start ();
1406  void move_to_end ();
1407  void center_playhead ();
1408  void center_edit_point ();
1409  void playhead_forward_to_grid ();
1410  void playhead_backward_to_grid ();
1411  void scroll_playhead (bool forward);
1412  void scroll_backward (float pages=0.8f);
1413  void scroll_forward (float pages=0.8f);
1414  void scroll_tracks_down ();
1415  void scroll_tracks_up ();
1416  void set_mark ();
1417  void clear_markers ();
1418  void clear_ranges ();
1419  void clear_locations ();
1420  void unhide_markers ();
1421  void unhide_ranges ();
1422  void jump_forward_to_mark ();
1423  void jump_backward_to_mark ();
1424  void cursor_align (bool playhead_to_edit);
1425  void toggle_skip_playback ();
1426 
1427  void remove_last_capture ();
1432  void set_selection_from_punch ();
1433  void set_selection_from_loop ();
1434  void set_selection_from_region ();
1435 
1436  void add_location_mark (framepos_t where);
1437  void add_location_from_region ();
1438  void add_locations_from_region ();
1440  void set_loop_from_selection (bool play);
1441  void set_punch_from_selection ();
1442  void set_punch_from_region ();
1443 
1447 
1448  void set_loop_from_region (bool play);
1449 
1450  void set_loop_range (framepos_t start, framepos_t end, std::string cmd);
1451  void set_punch_range (framepos_t start, framepos_t end, std::string cmd);
1452 
1456 
1457  void reverse_selection ();
1458  void edit_envelope ();
1459 
1464  void scrub (framepos_t, double);
1465 
1466  void keyboard_selection_begin ();
1467  void keyboard_selection_finish (bool add);
1470 
1472 
1475 
1478 
1480 
1482 
1483  void escape ();
1484  void lock ();
1485  void unlock ();
1486  Gtk::Dialog* lock_dialog;
1487 
1488  struct timeval last_event_time;
1489  bool generic_event_handler (GdkEvent*);
1490  bool lock_timeout_callback ();
1491  void start_lock_event_timing ();
1492 
1494 
1497  void popup_xfade_in_context_menu (int, int, ArdourCanvas::Item*, ItemType);
1498  void popup_xfade_out_context_menu (int, int, ArdourCanvas::Item*, ItemType);
1499  void fill_xfade_menu (Gtk::Menu_Helpers::MenuList& items, bool start);
1500 
1503 
1504  void set_fade_length (bool in);
1505  void set_fade_in_active (bool);
1506  void set_fade_out_active (bool);
1507 
1508  void fade_range ();
1509 
1510  std::set<boost::shared_ptr<ARDOUR::Playlist> > motion_frozen_playlists;
1511 
1514 
1515  void marker_drag_motion_callback (GdkEvent*);
1516  void marker_drag_finished_callback (GdkEvent*);
1517 
1518  gint mouse_rename_region (ArdourCanvas::Item*, GdkEvent*);
1519 
1520  void add_region_drag (ArdourCanvas::Item*, GdkEvent*, RegionView*);
1521  void start_create_region_grab (ArdourCanvas::Item*, GdkEvent*);
1522  void add_region_copy_drag (ArdourCanvas::Item*, GdkEvent*, RegionView*);
1523  void add_region_brush_drag (ArdourCanvas::Item*, GdkEvent*, RegionView*);
1524  void start_selection_grab (ArdourCanvas::Item*, GdkEvent*);
1525 
1526  void region_view_item_click (AudioRegionView&, GdkEventButton*);
1527 
1528  bool can_remove_control_point (ArdourCanvas::Item *);
1529  void remove_control_point (ArdourCanvas::Item *);
1530 
1532 
1533  /* Canvas event handlers */
1534 
1535  bool canvas_scroll_event (GdkEventScroll* event, bool from_canvas);
1536  bool canvas_control_point_event (GdkEvent* event,ArdourCanvas::Item*, ControlPoint*);
1537  bool canvas_line_event (GdkEvent* event,ArdourCanvas::Item*, AutomationLine*);
1538  bool canvas_selection_rect_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
1539  bool canvas_selection_start_trim_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
1540  bool canvas_selection_end_trim_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
1541  bool canvas_start_xfade_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
1542  bool canvas_end_xfade_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
1543  bool canvas_fade_in_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
1544  bool canvas_fade_in_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*, bool trim = false);
1545  bool canvas_fade_out_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*);
1546  bool canvas_fade_out_handle_event (GdkEvent* event,ArdourCanvas::Item*, AudioRegionView*, bool trim = false);
1547  bool canvas_region_view_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
1548  bool canvas_wave_view_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
1549  bool canvas_frame_handle_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
1550  bool canvas_region_view_name_highlight_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
1551  bool canvas_region_view_name_event (GdkEvent* event,ArdourCanvas::Item*, RegionView*);
1552  bool canvas_feature_line_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*);
1553  bool canvas_stream_view_event (GdkEvent* event,ArdourCanvas::Item*, RouteTimeAxisView*);
1554  bool canvas_marker_event (GdkEvent* event,ArdourCanvas::Item*, Marker*);
1555  bool canvas_tempo_marker_event (GdkEvent* event,ArdourCanvas::Item*, TempoMarker*);
1556  bool canvas_meter_marker_event (GdkEvent* event,ArdourCanvas::Item*, MeterMarker*);
1557  bool canvas_automation_track_event(GdkEvent* event, ArdourCanvas::Item*, AutomationTimeAxisView*);
1558  bool canvas_note_event (GdkEvent* event, ArdourCanvas::Item *);
1559 
1560  bool canvas_ruler_event (GdkEvent* event, ArdourCanvas::Item *, ItemType);
1561  bool canvas_tempo_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1562  bool canvas_meter_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1563  bool canvas_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1564  bool canvas_range_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1565  bool canvas_transport_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1566  bool canvas_cd_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1567 
1568  bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*);
1569  void update_video_timeline (bool flush = false);
1570  void set_video_timeline_height (const int);
1571  bool is_video_timeline_locked ();
1573  void set_video_timeline_locked (const bool);
1575  void embed_audio_from_video (std::string, framepos_t n = 0, bool lock_position_to_video = true);
1576 
1577  PBD::Signal0<void> EditorFreeze;
1578  PBD::Signal0<void> EditorThaw;
1579 
1580  private:
1581  friend class DragManager;
1582  friend class EditorRouteGroups;
1583  friend class EditorRegions;
1584 
1585  /* non-public event handlers */
1586 
1587  bool canvas_playhead_cursor_event (GdkEvent* event, ArdourCanvas::Item*);
1588  bool track_canvas_scroll (GdkEventScroll* event);
1589 
1590  bool track_canvas_button_press_event (GdkEventButton* event);
1591  bool track_canvas_button_release_event (GdkEventButton* event);
1592  bool track_canvas_motion_notify_event (GdkEventMotion* event);
1593 
1595  void track_canvas_viewport_allocate (Gtk::Allocation alloc);
1597  bool track_canvas_drag_motion (Glib::RefPtr<Gdk::DragContext> const &, int, int, guint);
1598  bool track_canvas_key_press (GdkEventKey *);
1599  bool track_canvas_key_release (GdkEventKey *);
1600 
1601  void set_playhead_cursor ();
1602 
1603  void toggle_region_mute ();
1604 
1605  void initialize_canvas ();
1606 
1607  /* display control */
1608 
1616 
1618 
1619  ArdourCanvas::Container* global_rect_group;
1620  ArdourCanvas::Container* time_line_group;
1621 
1622  void hide_measures ();
1623  void draw_measures (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
1624  ARDOUR::TempoMap::BBTPointList::const_iterator& end);
1625 
1626  void new_tempo_section ();
1627 
1628 
1629  void remove_tempo_marker (ArdourCanvas::Item*);
1630  void remove_meter_marker (ArdourCanvas::Item*);
1633 
1636  void edit_control_point (ArdourCanvas::Item*);
1637  void edit_notes (MidiRegionView*);
1638 
1639  void marker_menu_edit ();
1640  void marker_menu_remove ();
1641  void marker_menu_rename ();
1642  void rename_marker (Marker *marker);
1643  void toggle_marker_menu_lock ();
1644  void toggle_marker_menu_glue ();
1645  void marker_menu_hide ();
1646  void marker_menu_loop_range ();
1650  void marker_menu_play_from ();
1651  void marker_menu_play_range ();
1652  void marker_menu_set_playhead ();
1654  void marker_menu_set_from_selection (bool force_regions);
1655  void marker_menu_range_to_next ();
1656  void marker_menu_zoom_to_range ();
1659  void update_loop_range_view ();
1660  void update_punch_range_view ();
1662  void marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
1663  void tempo_or_meter_marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
1664  void new_transport_marker_context_menu (GdkEventButton*, ArdourCanvas::Item*);
1665  void build_range_marker_menu (bool, bool);
1669  void dynamic_cast_marker_object (void*, MeterMarker**, TempoMarker**) const;
1670 
1672  Gtk::Menu* marker_menu;
1673  Gtk::Menu* range_marker_menu;
1676  Gtk::Menu* cd_marker_menu;
1677  ArdourCanvas::Item* marker_menu_item;
1678 
1679  typedef std::list<Marker*> Marks;
1681 
1682  void remove_metric_marks ();
1683  void draw_metric_marks (const ARDOUR::Metrics& metrics);
1684 
1686  ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
1687  ARDOUR::TempoMap::BBTPointList::const_iterator& end);
1688 
1689  void tempo_map_changed (const PBD::PropertyChange&);
1690  void redisplay_tempo (bool immediate_redraw);
1691 
1693 
1694  /* toolbar */
1695 
1696  Gtk::ToggleButton editor_mixer_button;
1697  Gtk::ToggleButton editor_list_button;
1700 
1704 
1709 
1711  void build_track_count_menu ();
1712  void set_visible_track_count (int32_t);
1713 
1714  void set_zoom_preset(int64_t);
1715 
1720 
1729 
1731  Glib::RefPtr<Gtk::ToggleAction> smart_mode_action;
1732 
1736 
1737  bool mouse_select_button_release (GdkEventButton*);
1738 
1739  Gtk::VBox automation_box;
1741 
1742  //edit mode menu stuff
1745  void build_edit_mode_menu ();
1746  Gtk::VBox edit_mode_box;
1747 
1749  void cycle_edit_mode ();
1750 
1752  void build_snap_type_menu ();
1753 
1755  void build_snap_mode_menu ();
1756  Gtk::HBox snap_box;
1757 
1758  std::vector<std::string> snap_type_strings;
1759  std::vector<std::string> snap_mode_strings;
1760 
1765 
1766  Glib::RefPtr<Gtk::RadioAction> snap_type_action (Editing::SnapType);
1767  Glib::RefPtr<Gtk::RadioAction> snap_mode_action (Editing::SnapMode);
1768 
1769  //zoom focus meu stuff
1772  void build_zoom_focus_menu ();
1773  std::vector<std::string> zoom_focus_strings;
1774 
1776 
1777  Glib::RefPtr<Gtk::RadioAction> zoom_focus_action (Editing::ZoomFocus);
1778 
1779  Gtk::HBox _zoom_box;
1781  void zoom_adjustment_changed();
1782 
1783  void setup_toolbar ();
1784 
1785  void setup_tooltips ();
1786 
1788  Gtk::HBox toolbar_hbox;
1789  Gtk::EventBox toolbar_base;
1790  Gtk::Frame toolbar_frame;
1791  Gtk::Viewport _toolbar_viewport;
1792 
1793  /* midi toolbar */
1794 
1795  Gtk::HBox panic_box;
1796 
1797  void setup_midi_toolbar ();
1798 
1799  /* selection process */
1800 
1804 
1805  void time_selection_changed ();
1807  void track_selection_changed ();
1808  void region_selection_changed ();
1810  void sensitize_all_region_actions (bool);
1819  void point_selection_changed ();
1820  void marker_selection_changed ();
1821 
1823 
1824  void cancel_selection ();
1825  void cancel_time_selection ();
1826 
1827  bool get_smart_mode() const;
1828 
1830 
1831  /* transport range select process */
1832 
1833  ArdourCanvas::Rectangle* cd_marker_bar_drag_rect;
1834  ArdourCanvas::Rectangle* range_bar_drag_rect;
1835  ArdourCanvas::Rectangle* transport_bar_drag_rect;
1836 
1837 #ifdef GTKOSX
1838  ArdourCanvas::Rectangle *bogus_background_rect;
1839 #endif
1840  ArdourCanvas::Rectangle *transport_bar_range_rect;
1841  ArdourCanvas::Rectangle *transport_bar_preroll_rect;
1842  ArdourCanvas::Rectangle *transport_bar_postroll_rect;
1843  ArdourCanvas::Rectangle *transport_loop_range_rect;
1844  ArdourCanvas::Rectangle *transport_punch_range_rect;
1845  ArdourCanvas::Line *transport_punchin_line;
1846  ArdourCanvas::Line *transport_punchout_line;
1847  ArdourCanvas::Rectangle *transport_preroll_rect;
1848  ArdourCanvas::Rectangle *transport_postroll_rect;
1849 
1852 
1854 
1855  /* object rubberband select process */
1856 
1857  void select_all_within (framepos_t, framepos_t, double, double, TrackViewList const &, Selection::Operation, bool);
1858 
1859  ArdourCanvas::Rectangle *rubberband_rect;
1860 
1866 
1867  /* diskstream/route display management */
1868  Glib::RefPtr<Gdk::Pixbuf> rec_enabled_icon;
1869  Glib::RefPtr<Gdk::Pixbuf> rec_disabled_icon;
1870 
1871  Glib::RefPtr<Gtk::TreeSelection> route_display_selection;
1872 
1874 
1875  Gtk::VBox list_vpacker;
1876 
1877  /* autoscrolling */
1878 
1879  sigc::connection autoscroll_connection;
1882  uint32_t autoscroll_cnt;
1883  Gtk::Widget* autoscroll_widget;
1884  ArdourCanvas::Rect autoscroll_boundary;
1885 
1886  bool autoscroll_canvas ();
1887  void start_canvas_autoscroll (bool allow_horiz, bool allow_vert, const ArdourCanvas::Rect& boundary);
1888  void stop_canvas_autoscroll ();
1889 
1890  /* trimming */
1891  void point_trim (GdkEvent *, framepos_t);
1892 
1893  void trim_region_front();
1894  void trim_region_back();
1895  void trim_region (bool front);
1896 
1897  void trim_region_to_loop ();
1898  void trim_region_to_punch ();
1899  void trim_region_to_location (const ARDOUR::Location&, const char* cmd);
1900 
1901  void trim_to_region(bool forward);
1904 
1906 
1907  /* Drag-n-Drop */
1908 
1909  int convert_drop_to_paths (
1910  std::vector<std::string>& paths,
1911  const Glib::RefPtr<Gdk::DragContext>& context,
1912  gint x,
1913  gint y,
1914  const Gtk::SelectionData& data,
1915  guint info,
1916  guint time);
1917 
1919  const Glib::RefPtr<Gdk::DragContext>& context,
1920  gint x,
1921  gint y,
1922  const Gtk::SelectionData& data,
1923  guint info,
1924  guint time);
1925 
1926  void drop_paths (
1927  const Glib::RefPtr<Gdk::DragContext>& context,
1928  gint x,
1929  gint y,
1930  const Gtk::SelectionData& data,
1931  guint info,
1932  guint time);
1933 
1934  void drop_regions (
1935  const Glib::RefPtr<Gdk::DragContext>& context,
1936  gint x,
1937  gint y,
1938  const Gtk::SelectionData& data,
1939  guint info,
1940  guint time);
1941 
1942  void drop_routes (
1943  const Glib::RefPtr<Gdk::DragContext>& context,
1944  gint x,
1945  gint y,
1946  const Gtk::SelectionData& data,
1947  guint info,
1948  guint time);
1949 
1950  /* audio export */
1951 
1953  bool write_region (std::string path, boost::shared_ptr<ARDOUR::AudioRegion>);
1954  void bounce_region_selection (bool with_processing);
1955  void bounce_range_selection (bool replace, bool enable_processing);
1956  void external_edit_region ();
1957 
1959  bool write_audio_range (ARDOUR::AudioPlaylist&, const ARDOUR::ChanCount& channels, std::list<ARDOUR::AudioRange>&);
1960 
1961  void write_selection ();
1962 
1965 
1966  std::list<XMLNode *> selection_op_history; /* used in *_reversible_selection_op */
1967  std::list<XMLNode *> before; /* used in *_reversible_command */
1968 
1969  void update_title ();
1970  void update_title_s (const std::string & snapshot_name);
1971 
1972  void instant_save ();
1973 
1975 
1976  /* freeze operations */
1977 
1979  static void* _freeze_thread (void*);
1980  void* freeze_thread ();
1981 
1982  void freeze_route ();
1983  void unfreeze_route ();
1984 
1985  /* duplication */
1986 
1987  void duplicate_range (bool with_dialog);
1988 
1992  framepos_t canvas_event_sample (GdkEvent const *, double* px = 0, double* py = 0) const;
1993 
1997  framepos_t window_event_sample (GdkEvent const *, double* px = 0, double* py = 0) const;
1998 
1999  /* returns false if mouse pointer is not in track or marker canvas
2000  */
2001  bool mouse_frame (framepos_t&, bool& in_track_canvas) const;
2002 
2004  static void* timefx_thread (void *arg);
2005  void do_timefx ();
2006 
2007  int time_stretch (RegionSelection&, float fraction);
2008  int pitch_shift (RegionSelection&, float cents);
2009  void pitch_shift_region ();
2010 
2011  void transpose_region ();
2012 
2013  /* editor-mixer strip */
2014 
2020 
2021  void detach_tearoff (Gtk::Box* b, Gtk::Window* w);
2022  void reattach_tearoff (Gtk::Box* b, Gtk::Window* w, int32_t n);
2023 #ifdef GTKOSX
2024  void ensure_all_elements_drawn ();
2025 #endif
2026  /* nudging tracks */
2027 
2028  void nudge_track (bool use_edit_point, bool forwards);
2029 
2030  static const int32_t default_width = 995;
2031  static const int32_t default_height = 765;
2032 
2033  /* nudge */
2034 
2037  Gtk::HBox nudge_hbox;
2038  Gtk::VBox nudge_vbox;
2040 
2041  bool nudge_forward_release (GdkEventButton*);
2042  bool nudge_backward_release (GdkEventButton*);
2043 
2044  /* audio filters */
2045 
2046  void apply_filter (ARDOUR::Filter&, std::string cmd, ProgressReporter* progress = 0);
2047 
2050 
2051  /* handling cleanup */
2052 
2054 
2056 
2057  /* tracking step changes of track height */
2058 
2062  sigc::connection step_timeout;
2063 
2069 
2070  std::vector<EnterContext> _enter_stack;
2071 
2073  bool left_track_canvas (GdkEventCrossing*);
2074  bool entered_track_canvas (GdkEventCrossing*);
2077  gint left_automation_track ();
2078 
2079  void reset_canvas_action_sensitivity (bool);
2084 
2085  bool on_key_press_event (GdkEventKey*);
2086  bool on_key_release_event (GdkEventKey*);
2087 
2088  void session_state_saved (std::string);
2089 
2090  Glib::RefPtr<Gtk::Action> undo_action;
2091  Glib::RefPtr<Gtk::Action> redo_action;
2092  Glib::RefPtr<Gtk::Action> alternate_redo_action;
2093  Glib::RefPtr<Gtk::Action> alternate_alternate_redo_action;
2094  Glib::RefPtr<Gtk::Action> selection_undo_action;
2095  Glib::RefPtr<Gtk::Action> selection_redo_action;
2096 
2097  void history_changed ();
2098 
2100 
2102 
2104  void build_edit_point_menu();
2105 
2106  void set_edit_point_preference (Editing::EditPoint ep, bool force = false);
2107  void cycle_edit_point (bool with_marker);
2108  void set_edit_point ();
2111  Glib::RefPtr<Gtk::RadioAction> edit_point_action (Editing::EditPoint);
2112  std::vector<std::string> edit_point_strings;
2113  std::vector<std::string> edit_mode_strings;
2114 
2116 
2117  bool get_edit_op_range (framepos_t& start, framepos_t& end) const;
2118 
2119  void get_regions_at (RegionSelection&, framepos_t where, const TrackViewList& ts) const;
2120  void get_regions_after (RegionSelection&, framepos_t where, const TrackViewList& ts) const;
2121 
2124 
2125  void start_updating_meters ();
2126  void stop_updating_meters ();
2128 
2129  void select_next_route ();
2130  void select_prev_route ();
2131 
2132  void snap_to_internal (framepos_t& first,
2134  bool for_mark = false);
2135 
2138  bool for_mark = false);
2139 
2141 
2142  void fit_tracks (TrackViewList &);
2143  void fit_selection ();
2144  void set_track_height (Height);
2145 
2146  void _remove_tracks ();
2147  bool idle_remove_tracks ();
2148  void toggle_tracks_active ();
2149 
2152  static gboolean _idle_resize (gpointer);
2153  bool idle_resize();
2156 
2157  void visible_order_range (int*, int*) const;
2158 
2159  void located ();
2160 
2163 
2169 
2170  Gtk::HBox _summary_hbox;
2172 
2173  void region_view_added (RegionView *);
2174  void region_view_removed ();
2175 
2178 
2179  void step_edit_status_change (bool);
2180  void start_step_editing ();
2181  void stop_step_editing ();
2182  bool check_step_edit ();
2183  sigc::connection step_edit_connection;
2184 
2186 
2189 
2194 
2199 
2200  void setup_fade_images ();
2201  std::map<ARDOUR::FadeShape, Gtk::Image*> _fade_in_images;
2202  std::map<ARDOUR::FadeShape, Gtk::Image*> _fade_out_images;
2203  std::map<ARDOUR::FadeShape, Gtk::Image*> _xfade_in_images;
2204  std::map<ARDOUR::FadeShape, Gtk::Image*> _xfade_out_images;
2205 
2206  Gtk::MenuItem& action_menu_item (std::string const &);
2207  void action_pre_activated (Glib::RefPtr<Gtk::Action> const &);
2208 
2210 
2211  void follow_mixer_selection ();
2213 
2214  int time_fx (ARDOUR::RegionList&, float val, bool pitching);
2215  void note_edit_done (int, EditNoteDialog*);
2216  void toggle_sound_midi_notes ();
2217 
2220 
2232 
2233  void bring_in_callback (Gtk::Label*, uint32_t n, uint32_t total, std::string name);
2234  void update_bring_in_message (Gtk::Label* label, uint32_t n, uint32_t total, std::string name);
2236 
2237  friend class Drag;
2238  friend class RegionDrag;
2239  friend class RegionMoveDrag;
2240  friend class RegionSpliceDrag;
2241  friend class RegionRippleDrag;
2242  friend class TrimDrag;
2243  friend class MeterMarkerDrag;
2244  friend class TempoMarkerDrag;
2245  friend class CursorDrag;
2246  friend class FadeInDrag;
2247  friend class FadeOutDrag;
2248  friend class MarkerDrag;
2249  friend class RegionGainDrag;
2250  friend class ControlPointDrag;
2251  friend class LineDrag;
2252  friend class RubberbandSelectDrag;
2254  friend class TimeFXDrag;
2255  friend class ScrubDrag;
2256  friend class SelectionDrag;
2257  friend class RangeMarkerBarDrag;
2258  friend class MouseZoomDrag;
2259  friend class RegionCreateDrag;
2260  friend class RegionMotionDrag;
2261  friend class RegionInsertDrag;
2262  friend class VideoTimeLineDrag;
2263 
2264  friend class EditorSummary;
2265  friend class EditorGroupTabs;
2266 
2267  friend class EditorRoutes;
2268  friend class RhythmFerret;
2269 };
2270 
2271 #endif /* __ardour_editor_h__ */
void get_regions_corresponding_to(boost::shared_ptr< ARDOUR::Region > region, std::vector< RegionView * > &regions, bool src_comparison)
Definition: editor.cc:5004
ARDOUR::Location * transport_punch_location()
Definition: editor.cc:4203
bool _control_point_toggled_on_press
Definition: editor.h:2219
Gtk::EventBox time_bars_event_box
Definition: editor.h:804
ArdourCanvas::Rectangle * transport_loop_range_rect
Definition: editor.h:1843
bool follow_playhead() const
Definition: editor.h:342
Editing::MidiEditMode current_midi_edit_mode() const
void transpose_region()
Definition: editor_ops.cc:6137
void do_import(std::vector< std::string > paths, Editing::ImportDisposition disposition, Editing::ImportMode mode, ARDOUR::SrcQuality quality, framepos_t &pos, boost::shared_ptr< ARDOUR::PluginInfo > instrument=boost::shared_ptr< ARDOUR::PluginInfo >())
std::pair< TimeAxisView *, double > trackview_by_y_position(double, bool trackview_relative_offset=true) const
Definition: editor.cc:2565
void set_region_gain_visibility(RegionView *)
Definition: editor_ops.cc:5391
void zoom_focus_chosen(Editing::ZoomFocus)
void set_xjadeo_proc()
SelectionMemento * _selection_memento
Definition: editor.h:1803
void scroll_release()
Definition: editor.cc:5568
double y_position
Definition: editor.h:560
void reset_y_origin(double)
Definition: editor.cc:4371
bool _all_region_actions_sensitized
Definition: editor.h:1812
framecnt_t _samples_ruler_interval
Definition: editor.h:934
bool canvas_fade_in_handle_event(GdkEvent *event, ArdourCanvas::Item *, AudioRegionView *, bool trim=false)
void instant_save()
Definition: editor.cc:954
void center_screen(framepos_t)
Definition: editor.cc:1239
void track_canvas_drag_data_received(const Glib::RefPtr< Gdk::DragContext > &context, gint x, gint y, const Gtk::SelectionData &data, guint info, guint time)
boost::weak_ptr< ARDOUR::Trimmable > _trimmable
Definition: editor.h:1154
void marker_menu_separate_regions_using_location()
void selected_marker_to_selection_end()
Definition: editor_ops.cc:1246
EditorRegions * _regions
Definition: editor.h:1863
void region_view_removed()
Definition: editor.cc:5195
Gtk::VBox scrollers_rulers_markers_box
Definition: editor.h:621
Gtk::VBox automation_box
Definition: editor.h:1739
framepos_t cut_buffer_start
Definition: editor.h:1149
void add_selection_context_items(Gtk::Menu_Helpers::MenuList &)
Definition: editor.cc:1820
void raise_region_to_top()
Definition: editor_ops.cc:2676
std::list< XMLNode * > before
Definition: editor.h:1967
void metric_get_bbt(std::vector< ArdourCanvas::Ruler::Mark > &, gdouble, gdouble, gint)
void marker_menu_range_to_next()
gint real_remove_meter_marker(ARDOUR::MeterSection *)
void export_selection()
Glib::RefPtr< Gtk::ToggleAction > ruler_bbt_action
Definition: editor.h:872
void initialize_rulers()
void canvas_height_set(double)
void map_transport_state()
Definition: editor.cc:3336
void editor_list_button_toggled()
Definition: editor_mixer.cc:63
bool scroll_up_one_track(bool skip_child_views=false)
Definition: editor_ops.cc:1485
void cut_copy_points(Editing::CutCopyOp, Evoral::Beats earliest=Evoral::Beats(), bool midi=false)
Definition: editor_ops.cc:4138
void hide_region_from_region_list()
Definition: editor.cc:5480
MinsecRulerScale
Definition: editor.h:904
void update_loop_range_view()
Gtk::Menu _control_point_context_menu
Definition: editor.h:762
void copy_playlists(TimeAxisView *v)
Definition: editor.cc:4298
void set_session_extents_from_selection()
Definition: editor_ops.cc:6079
void show_midi_list_editor()
Definition: editor_ops.cc:2702
Gtk::HPaned edit_pane
Definition: editor.h:614
void clear_markers()
Definition: editor_ops.cc:2319
void set_selected_track_as_side_effect(Selection::Operation op)
Glib::RefPtr< Gtk::ToggleAction > xjadeo_timecode_action
Definition: editor.h:992
bool _show_measures
Definition: editor.h:1609
Glib::RefPtr< Gtk::ToggleAction > ruler_range_action
Definition: editor.h:878
void add_location_mark(framepos_t where)
Definition: editor_ops.cc:2096
void setup_toolbar()
Definition: editor.cc:2877
void ruler_toggled(int)
bool typed_event(ArdourCanvas::Item *, GdkEvent *, ItemType)
uint32_t bbt_bars
Definition: editor.h:951
void snap_mode_chosen(Editing::SnapMode)
Gdk::Cursor * which_trim_cursor(bool left_side) const
void commit_reversible_selection_op()
Definition: editor.cc:3376
void marker_menu_edit()
void scroll_tracks_up_line()
Definition: editor_ops.cc:1408
void fit_selection()
Definition: editor_ops.cc:7240
void split_region_at_transients()
Definition: editor_ops.cc:6274
int32_t _pending_resize_amount
Definition: editor.h:2154
void zoom_adjustment_changed()
RulerDialog * ruler_dialog
Definition: editor.h:885
int write_region_selection(RegionSelection &)
framecnt_t get_paste_offset(framepos_t pos, unsigned paste_count, framecnt_t duration)
Definition: editor.cc:4045
InsertTimeOption
Definition: editing.h:188
void mapped_use_copy_playlist(RouteTimeAxisView &, uint32_t, std::vector< boost::shared_ptr< ARDOUR::Playlist > > const &)
Definition: editor.cc:4329
void drop_paths(const Glib::RefPtr< Gdk::DragContext > &context, gint x, gint y, const Gtk::SelectionData &data, guint info, guint time)
void reset_focus()
void toggle_sound_midi_notes()
Glib::RefPtr< Gtk::ToggleAction > ruler_timecode_action
Definition: editor.h:871
void build_edit_point_menu()
Definition: editor.cc:3139
void set_session_start_from_playhead()
Definition: editor_ops.cc:2118
void marker_context_menu(GdkEventButton *, ArdourCanvas::Item *)
std::set< boost::shared_ptr< ARDOUR::Playlist > > motion_frozen_playlists
Definition: editor.h:1510
Gtk::Menu * track_region_edit_playlist_menu
Definition: editor.h:744
void nudge_track(bool use_edit_point, bool forwards)
Definition: editor_ops.cc:4830
void remove_sorted_marker(Marker *)
void jump_backward_to_mark()
Definition: editor_ops.cc:2288
bool select_all_internal_edit(Selection::Operation)
void scrub(framepos_t, double)
ArdourCanvas::Container * global_rect_group
Definition: editor.h:1619
ArdourCanvas::Container * _drag_motion_group
Definition: editor.h:848
VisualChange pending_visual_change
Definition: editor.h:1127
ARDOUR::framepos_t find_next_region_boundary(ARDOUR::framepos_t, int32_t dir, const TrackViewList &)
Definition: editor_ops.cc:844
ArdourCanvas::ScrollGroup * get_cursor_scroll_group() const
Definition: editor.h:511
void copy()
Definition: editor_ops.cc:3990
void redisplay_tempo(bool immediate_redraw)
ArdourCanvas::GtkCanvasViewport * get_track_canvas() const
TimeAxisView * current_stepping_trackview
Definition: editor.h:2059
void redo(uint32_t n=1)
Definition: editor_ops.cc:134
void undo_selection_op()
Definition: editor.cc:3411
double last_scrub_x
Definition: editor.h:1460
Editing::ZoomFocus get_zoom_focus() const
Definition: editor.h:289
void cycle_edit_point(bool with_marker)
Definition: editor.cc:3646
PlaylistSelector * _playlist_selector
Definition: editor.h:553
Selection * selection
Definition: editor.h:1801
void marker_menu_select_using_range()
bool idle_resize()
Definition: editor.cc:5131
bool button_press_handler_2(ArdourCanvas::Item *, GdkEvent *, ItemType)
Width editor_mixer_strip_width
Definition: editor.h:308
bool select_new_marker
Definition: editor.h:1455
Gtk::Menu xfade_in_context_menu
Definition: editor.h:1495
bool can_cut_copy() const
Definition: editor_ops.cc:3998
void toggle_meter_updating()
void set_follow_playhead(bool yn, bool catch_up=true)
Definition: editor.cc:4004
void add_new_location(ARDOUR::Location *)
MouseMode
Definition: editing.h:91
ArdourButton mouse_content_button
Definition: editor.h:1726
bool canvas_control_point_event(GdkEvent *event, ArdourCanvas::Item *, ControlPoint *)
Gtk::Menu * editor_ruler_menu
Definition: editor.h:966
ArdourCanvas::Rectangle * transport_marker_bar
Definition: editor.h:972
TimeAxisView * clicked_axisview
Definition: editor.h:695
bool canvas_ruler_event(GdkEvent *event, ArdourCanvas::Item *, ItemType)
void edit_point_chosen(Editing::EditPoint)
Gtk::HBox _summary_hbox
Definition: editor.h:2170
void next_snap_choice_music_only()
RoundMode
Definition: types.h:221
void build_snap_type_menu()
Definition: editor.cc:3177
void _remove_tracks()
Definition: editor_ops.cc:6816
void cursor_to_previous_region_point(EditorCursor *, ARDOUR::RegionPoint)
Definition: editor_ops.cc:1018
ArdourCanvas::Rectangle * transport_bar_postroll_rect
Definition: editor.h:1842
Glib::RefPtr< Gtk::ToggleAction > ruler_meter_action
Definition: editor.h:876
void mouse_mode_toggled(Editing::MouseMode m)
Glib::RefPtr< Gtk::ToggleAction > ruler_cd_marker_action
Definition: editor.h:880
void edit_meter_section(ARDOUR::MeterSection *)
std::list< Location * > LocationList
Definition: location.h:167
ItemType
Definition: editor_items.h:23
bool canvas_scroll_event(GdkEventScroll *event, bool from_canvas)
gint minsec_mark_modulo
Definition: editor.h:915
void selected_marker_to_next_region_point(ARDOUR::RegionPoint)
Definition: editor_ops.cc:1199
void trim_region(bool front)
Definition: editor_ops.cc:3623
void play_with_preroll()
Definition: editor_ops.cc:2546
Gtk::Label minsec_label
Definition: editor.h:975
void add_region_drag(ArdourCanvas::Item *, GdkEvent *, RegionView *)
framepos_t pixel_to_sample_from_event(double pixel) const
Definition: editor.h:215
Gtk::HBox panic_box
Definition: editor.h:1795
void abort_reversible_command()
Definition: editor.cc:3471
bool canvas_wave_view_event(GdkEvent *event, ArdourCanvas::Item *, RegionView *)
framepos_t time_origin
Definition: editor.h:1113
void toggle_video_timeline_locked()
MidiEditMode
Definition: editing.h:105
Editing::SnapType internal_snap_type
Definition: editor.h:589
void begin_reversible_command(std::string cmd_name)
void set_snap_to(Editing::SnapType)
Definition: editor.cc:2046
void duplicate_some_regions(RegionSelection &, float times)
Definition: editor_ops.cc:4711
int set_state(const XMLNode &, int version)
Definition: editor.cc:2189
void restore_editing_space()
Definition: editor.cc:4264
void history_changed()
Definition: editor.cc:3504
ArdourDropdown visible_tracks_selector
Definition: editor.h:1707
void control_vertical_zoom_in_all()
Definition: editor.cc:968
int _scroll_callbacks
Definition: editor.h:1071
void set_current_movable(boost::shared_ptr< ARDOUR::Movable >)
Glib::RefPtr< Gtk::ToggleAction > xjadeo_osdbg_action
Definition: editor.h:994
int videotl_bar_height
Definition: editor.h:1005
void toggle_xjadeo_viewoption(int what, int state=-1)
void update_video_timeline(bool flush=false)
Glib::RefPtr< Gtk::Action > redo_action
Definition: editor.h:2091
void toggle_record_enable()
Definition: editor_ops.cc:5539
EditorSnapshots * _snapshots
Definition: editor.h:1864
void start_selection_grab(ArdourCanvas::Item *, GdkEvent *)
ArdourCanvas::Container * cd_marker_group
Definition: editor.h:821
bool track_canvas_motion_notify_event(GdkEventMotion *event)
void cursor_align(bool playhead_to_edit)
Definition: editor_ops.cc:1314
Gtk::HBox & get_status_bar_packer()
Definition: editor.h:286
bool check_multichannel_status(const std::vector< std::string > &paths)
sigc::connection control_scroll_connection
Definition: editor.h:1099
EditorRouteGroups * _route_groups
Definition: editor.h:1861
ArdourCanvas::Container * _time_markers_group
Definition: editor.h:824
void toggle_opaque_region()
Definition: editor_ops.cc:5515
void popup_xfade_in_context_menu(int, int, ArdourCanvas::Item *, ItemType)
Definition: editor.cc:1497
void redo_selection_op()
Definition: editor.cc:3431
gint track_height_step_timeout()
void reset_region_scale_amplitude()
Definition: editor_ops.cc:4979
Gtk::Menu * track_selection_edit_playlist_submenu
Definition: editor.h:746
void remove_control_point(ArdourCanvas::Item *)
EditorSummary * _summary
Definition: editor.h:2171
void new_region_from_selection()
Definition: editor_ops.cc:2927
Gtk::ToggleButton editor_list_button
Definition: editor.h:1697
ArdourButton zoom_out_full_button
Definition: editor.h:1703
void update_time_selection_display()
EditorRoutes * _routes
Definition: editor.h:1862
Gtk::Label cd_mark_label
Definition: editor.h:984
Gtk::HBox snap_box
Definition: editor.h:1756
void pitch_shift_region()
Definition: editor_ops.cc:6118
GdkEvent context_click_event
Definition: editor.h:748
void sequence_regions()
Definition: editor_ops.cc:602
bool canvas_stream_view_event(GdkEvent *event, ArdourCanvas::Item *, RouteTimeAxisView *)
SoundFileOmega * sfbrowser
Definition: editor.h:1326
Editor()
Definition: editor.cc:251
void set_selected_mixer_strip(TimeAxisView &)
void tav_zoom_smooth(bool coarser, bool force_all)
Definition: editor_ops.cc:1597
void separate_regions_between(const TimeSelection &)
Definition: editor_ops.cc:2984
void ui_parameter_changed(std::string)
Definition: editor.cc:5968
void mouse_add_new_tempo_event(framepos_t where)
void toggle_marker_menu_glue()
bool canvas_cd_marker_bar_event(GdkEvent *event, ArdourCanvas::Item *)
void show_rhythm_ferret()
Definition: editor.cc:5041
void start_lock_event_timing()
Definition: editor.cc:1156
bool idle_remove_tracks()
Definition: editor_ops.cc:6809
void normalize_region()
Definition: editor_ops.cc:4908
void set_summary()
PBD::ScopedConnectionList session_connections
Definition: editor.h:2055
std::list< MetricSection * > Metrics
Definition: tempo.h:168
LIBPBD_API void split(std::string, std::vector< std::string > &, char)
Editing::SnapType _snap_type
Definition: editor.h:1473
std::vector< VisualState * > visual_states
Definition: editor.h:576
void tempo_or_meter_marker_context_menu(GdkEventButton *, ArdourCanvas::Item *)
bool canvas_fade_in_event(GdkEvent *event, ArdourCanvas::Item *, AudioRegionView *)
void mixer_strip_width_changed()
Gtk::VBox toolbar_selection_clock_vbox
Definition: editor.h:1717
framepos_t leftmost_frame
Definition: editor.h:580
framepos_t pending_keyboard_selection_start
Definition: editor.h:1469
Glib::RefPtr< Gtk::ToggleAction > xjadeo_frame_action
Definition: editor.h:993
framecnt_t samples_per_pixel
Definition: editor.h:561
void transition_to_rolling(bool forward)
Definition: editor_ops.cc:2444
Gtk::VBox current_mixer_strip_vbox
Definition: editor.h:2017
Glib::RefPtr< Gtk::ToggleAction > ruler_tempo_action
Definition: editor.h:875
void set_playhead_cursor()
Definition: editor_ops.cc:5914
void add_region_context_items(Gtk::Menu_Helpers::MenuList &, boost::shared_ptr< ARDOUR::Track >)
Definition: editor.cc:1769
TimeAxisView * entered_track
Definition: editor.h:2064
TrackViewList get_tracks_for_range_action() const
Definition: editor_ops.cc:2952
void clear_locations()
Definition: editor_ops.cc:2351
void compute_fixed_ruler_scale()
framecnt_t get_nudge_distance(framepos_t pos, framecnt_t &next)
Definition: editor.cc:4116
void cut()
Definition: editor_ops.cc:3983
int embed_sndfiles(std::vector< std::string > paths, bool multiple_files, bool &check_sample_rate, Editing::ImportDisposition disposition, Editing::ImportMode mode, framepos_t &pos, int target_regions, int target_tracks, boost::shared_ptr< ARDOUR::Track > &track, boost::shared_ptr< ARDOUR::PluginInfo > instrument=boost::shared_ptr< ARDOUR::PluginInfo >())
void button_selection(ArdourCanvas::Item *item, GdkEvent *event, ItemType item_type)
ArdourButton mouse_select_button
Definition: editor.h:1722
Gtk::VBox list_vpacker
Definition: editor.h:1875
framepos_t canvas_event_sample(GdkEvent const *, double *px=0, double *py=0) const
void audition_playlist_region_via_route(boost::shared_ptr< ARDOUR::Region >, ARDOUR::Route &)
Definition: editor_ops.cc:2759
void detach_tearoff(Gtk::Box *b, Gtk::Window *w)
Definition: editor.cc:3951
ArdourCanvas::Item * marker_menu_item
Definition: editor.h:1677
ArdourCanvas::Container * videotl_group
Definition: editor.h:988
void marker_drag_motion_callback(GdkEvent *)
ArdourCanvas::Rectangle * _canvas_drop_zone
Definition: editor.h:853
void trim_region_to_punch()
Definition: editor_ops.cc:3666
void redo_visual_state()
Definition: editor.cc:4446
double horizontal_position() const
ARDOUR::InterThreadInfo freeze_status
Definition: editor.h:1978
void scroll_tracks_down_line()
Definition: editor_ops.cc:1396
Lists of selected things.
Definition: selection.h:66
ArdourDropdown zoom_focus_selector
Definition: editor.h:1770
bool no_save_visual
Definition: editor.h:573
void queue_visual_videotimeline_update()
Definition: editor.cc:4555
void undo(uint32_t n=1)
Definition: editor_ops.cc:117
void maybe_add_mixer_strip_width(XMLNode &)
void unlock()
Definition: editor_ops.cc:7566
void get_regionviews_by_id(PBD::ID const id, RegionSelection &regions) const
Definition: editor.cc:4960
framepos_t window_event_sample(GdkEvent const *, double *px=0, double *py=0) const
void step_mouse_mode(bool next)
void edit_tempo_section(ARDOUR::TempoSection *)
bool canvas_selection_end_trim_event(GdkEvent *event, ArdourCanvas::Item *, SelectionRect *)
void set_fade_length(bool in)
Definition: editor_ops.cc:5631
void cut_copy_regions(Editing::CutCopyOp, RegionSelection &)
Definition: editor_ops.cc:4384
void toggle_region_fades(int dir)
Definition: editor_ops.cc:5820
void ensure_float(Gtk::Window &)
Definition: editor.cc:3877
void track_selection_changed()
void session_going_away()
Definition: editor.cc:5708
void split_region()
Definition: editor_ops.cc:5939
bool control_layout_scroll(GdkEventScroll *ev)
Definition: editor.cc:4213
void reset_x_origin_to_follow_playhead()
Definition: editor.cc:5575
Gtkmm2ext::TearOff * tools_tearoff() const
Definition: editor.h:435
void align_regions_relative(ARDOUR::RegionPoint point)
Definition: editor_ops.cc:3491
AnalysisWindow * analysis_window
Definition: editor.h:1382
Glib::RefPtr< Gtk::Action > alternate_alternate_redo_action
Definition: editor.h:2093
ArdourCanvas::Container * tempo_group
Definition: editor.h:816
bool show_editor_mixer_when_tracks_arrive
Definition: editor.h:2016
void hide_measures()
void update_join_object_range_location(double)
void show_editor_list(bool yn)
Definition: editor.cc:5778
void hide_marker(ArdourCanvas::Item *, GdkEvent *)
RouteTimeAxisView * clicked_routeview
Definition: editor.h:696
std::map< ArdourCanvas::Container *, std::list< Marker * > > _sorted_marker_lists
Definition: editor.h:683
ControlPoint * clicked_control_point
Definition: editor.h:704
void legatize_region(bool shrink_only)
Definition: editor_ops.cc:5201
void located()
Definition: editor.cc:5153
bool deferred_control_scroll(framepos_t)
Definition: editor.cc:1116
static void * _freeze_thread(void *)
Definition: editor_ops.cc:3805
Representation of the interface of the Editor class.
void set_punch_from_selection()
Definition: editor_ops.cc:6065
void snap_to_internal(framepos_t &first, ARDOUR::RoundMode direction=ARDOUR::RoundNearest, bool for_mark=false)
Definition: editor.cc:2687
void temporal_zoom(framecnt_t samples_per_pixel)
Definition: editor_ops.cc:1644
int get_videotl_bar_height() const
Definition: editor.h:1006
void quantize_regions(const RegionSelection &rs)
Definition: editor_ops.cc:5179
Definition: marker.h:41
ArdourCanvas::Pixbuf * logo_item
Definition: editor.h:807
bool extend_selection_to_track(TimeAxisView &)
bool show_measures() const
Definition: editor.h:269
void set_group_tabs()
void set_selected_track(TimeAxisView &, Selection::Operation op=Selection::Set, bool no_remove=false)
void get_regions_at(RegionSelection &, framepos_t where, const TrackViewList &ts) const
Definition: editor.cc:4799
bool set_selected_regionview_from_map_event(GdkEventAny *, StreamView *, boost::weak_ptr< ARDOUR::Region >)
Gdk::Cursor * which_canvas_cursor(ItemType type) const
Glib::RefPtr< Gtk::Action > alternate_redo_action
Definition: editor.h:2092
bool _dragging_edit_point
Definition: editor.h:1513
ARDOUR::microseconds_t last_track_height_step_timestamp
Definition: editor.h:2060
double clamp_verbose_cursor_y(double)
double sample_to_pixel_unrounded(framepos_t sample) const
Definition: editor.h:238
tuple f
Definition: signals.py:35
void toggle_region_video_lock()
Definition: editor_ops.cc:5466
Gtk::Adjustment vertical_adjustment
Definition: editor.h:1052
void start_updating_meters()
void set_ruler_visible(RulerType, bool)
void remove_location_at_playhead_cursor()
Definition: editor_ops.cc:2172
void mouse_add_new_marker(framepos_t where, bool is_cd=false)
guint32 visible_timebars
Definition: editor.h:965
double clamp_verbose_cursor_x(double)
bool stationary_playhead() const
Definition: editor.h:338
void resume_route_redisplay()
Definition: editor.cc:5240
void analyze_range_selection()
Definition: editor.cc:1737
void pop_canvas_cursor()
void fork_region()
Definition: editor_ops.cc:5131
void toggle_region_mute()
Definition: editor_ops.cc:7412
std::pair< TimeAxisView *, XMLNode * > TAVState
Definition: editor.h:555
void set_current_trimmable(boost::shared_ptr< ARDOUR::Trimmable >)
void align_region_internal(boost::shared_ptr< ARDOUR::Region >, ARDOUR::RegionPoint point, framepos_t position)
Definition: editor_ops.cc:3587
void cursor_to_region_point(EditorCursor *, ARDOUR::RegionPoint, int32_t dir)
Definition: editor_ops.cc:944
ARDOUR::Session * session() const
Definition: editor.h:141
Glib::RefPtr< Gtk::RadioAction > snap_mode_action(Editing::SnapMode)
Editing::MouseMode effective_mouse_mode() const
void register_region_actions()
ArdourButton mouse_timefx_button
Definition: editor.h:1725
void play_from_start()
Definition: editor_ops.cc:2469
void override_visible_track_count()
Definition: editor.cc:3806
void delete_()
Definition: editor_ops.cc:3969
void toggle_marker_lines()
bool canvas_range_marker_bar_event(GdkEvent *event, ArdourCanvas::Item *)
void update_cd_marker_display()
void add_locations_from_region()
Definition: editor_ops.cc:2204
void get_regions_after(RegionSelection &, framepos_t where, const TrackViewList &ts) const
Definition: editor.cc:4834
int import_sndfiles(std::vector< std::string > paths, Editing::ImportDisposition disposition, Editing::ImportMode mode, ARDOUR::SrcQuality quality, framepos_t &pos, int target_regions, int target_tracks, boost::shared_ptr< ARDOUR::Track > &track, bool replace, boost::shared_ptr< ARDOUR::PluginInfo > instrument=boost::shared_ptr< ARDOUR::PluginInfo >())
SrcQuality
Definition: types.h:522
Gtk::EventBox toolbar_base
Definition: editor.h:1789
Glib::RefPtr< Gtk::TreeSelection > route_display_selection
Definition: editor.h:1871
void selected_marker_to_selection_start()
Definition: editor_ops.cc:1211
void insert_region_list_selection(float times)
Definition: editor_ops.cc:2388
void control_select(uint32_t rid, Selection::Operation)
Definition: editor.cc:1004
void store_ruler_visibility()
void embed_audio_from_video(std::string, framepos_t n=0, bool lock_position_to_video=true)
void parameter_changed(std::string)
Glib::RefPtr< Gtk::Action > selection_undo_action
Definition: editor.h:2094
ArdourCanvas::Container * get_trackview_group() const
Definition: editor.h:507
Glib::RefPtr< Gtk::ToggleAction > xjadeo_fullscreen_action
Definition: editor.h:995
void temporal_zoom_step(bool coarser)
Definition: editor_ops.cc:1628
Gtk::Menu * new_transport_marker_menu
Definition: editor.h:1675
void set_entered_track(TimeAxisView *)
Definition: editor.cc:902
boost::shared_ptr< CursorContext > _press_cursor_ctx
Button press cursor context.
Definition: editor.h:1152
ArdourCanvas::Rectangle * transport_bar_preroll_rect
Definition: editor.h:1841
boost::shared_ptr< ARDOUR::MidiTrack > get_nth_selected_midi_track(int nth) const
void select_all_selectables_using_edit(bool)
void quantize_region()
Definition: editor_ops.cc:5171
void update_all_enter_cursors()
void edit_notes(MidiRegionView *)
void edit_meter_marker(MeterMarker &)
void set_entered_regionview(RegionView *)
Definition: editor.cc:877
void action_pre_activated(Glib::RefPtr< Gtk::Action > const &)
Definition: editor.cc:1415
bool update_mouse_speed()
void control_step_tracks_down()
Definition: editor.cc:1048
void select_range_between()
Evoral::Beats get_grid_type_as_beats(bool &success, framepos_t position)
Definition: editor.cc:4090
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
Definition: region.cc:63
uint32_t bbt_accent_modulo
Definition: editor.h:954
ZoomFocus
Definition: editing.h:119
ArdourCanvas::GtkCanvasViewport * _track_canvas_viewport
Definition: editor.h:794
Gtk::VBox vpacker
Definition: editor.h:772
VerboseCursor * _verbose_cursor
Definition: editor.h:799
void insert_time(framepos_t, framecnt_t, Editing::InsertTimeOption, bool, bool, bool, bool, bool, bool)
Definition: editor_ops.cc:6956
bool canvas_drop_zone_event(GdkEvent *event)
void set_stepping_axis_view(TimeAxisView *v)
Definition: editor.h:503
void audition_playlist_region_standalone(boost::shared_ptr< ARDOUR::Region >)
Definition: editor_ops.cc:2813
bool get_selection_extents(framepos_t &start, framepos_t &end)
Definition: editor_ops.cc:1852
void popup_note_context_menu(ArdourCanvas::Item *, GdkEvent *)
Definition: editor.cc:5926
void stem_export()
EditorCursor * playhead_cursor
Definition: editor.h:1011
void trim_region_back()
Definition: editor_ops.cc:3617
static void * _import_thread(void *)
void undo_visual_state()
Definition: editor.cc:4428
gint real_remove_tempo_marker(ARDOUR::TempoSection *)
void add(Type t)
Definition: editor.h:1122
Round to nearest.
Definition: types.h:224
bool mouse_frame(framepos_t &, bool &in_track_canvas) const
Definition: editor_mouse.cc:86
void * import_thread()
Gtk::Menu * build_track_context_menu()
Definition: editor.cc:1666
ArdourDropdown zoom_preset_selector
Definition: editor.h:1708
bool track_canvas_drag_motion(Glib::RefPtr< Gdk::DragContext > const &, int, int, guint)
bool canvas_region_view_name_event(GdkEvent *event, ArdourCanvas::Item *, RegionView *)
ArdourCanvas::ScrollGroup * get_hvscroll_group() const
Definition: editor.h:510
Gtk::Menu * tempo_or_meter_marker_menu
Definition: editor.h:1671
void set_snap_threshold(double pixel_distance)
Definition: editor.h:166
ArdourDropdown edit_mode_selector
Definition: editor.h:1743
void cut_time(framepos_t pos, framecnt_t distance, Editing::InsertTimeOption opt, bool ignore_music_glue, bool markers_too, bool tempo_too)
Definition: editor_ops.cc:7131
SnapType
Definition: editing.h:49
Gtk::HBox global_hpacker
Definition: editor.h:770
void cursor_to_previous_region_boundary(bool with_selection)
Definition: editor_ops.cc:938
bool track_canvas_button_release_event(GdkEventButton *event)
bool canvas_line_event(GdkEvent *event, ArdourCanvas::Item *, AutomationLine *)
boost::weak_ptr< ARDOUR::Movable > _movable
Definition: editor.h:1155
ArdourDropdown edit_point_selector
Definition: editor.h:2103
void selected_marker_to_region_point(ARDOUR::RegionPoint, int32_t dir)
Definition: editor_ops.cc:1134
void keyboard_selection_finish(bool add)
Definition: editor_keys.cc:43
void register_actions()
bool audio_region_selection_covers(framepos_t where)
Definition: editor.cc:4163
RegionSelection get_regions_from_selection_and_entered()
Definition: editor.cc:4948
Marks metric_marks
Definition: editor.h:1680
bool canvas_meter_bar_event(GdkEvent *event, ArdourCanvas::Item *)
void fit_route_group(ARDOUR::RouteGroup *)
Definition: editor.cc:5433
XMLNode & get_state()
Definition: editor.cc:2459
void external_edit_region()
Definition: editor_ops.cc:5360
void reset_canvas_action_sensitivity(bool)
void setup_tooltips()
Definition: editor.cc:3217
void trim_region_front()
Definition: editor_ops.cc:3611
void cut_copy_ranges(Editing::CutCopyOp)
Definition: editor_ops.cc:4555
ArdourCanvas::Container * add_new_location_internal(ARDOUR::Location *)
void new_transport_marker_context_menu(GdkEventButton *, ArdourCanvas::Item *)
bool motion_handler(ArdourCanvas::Item *, GdkEvent *, bool from_autoscroll=false)
void region_view_item_click(AudioRegionView &, GdkEventButton *)
bool generic_event_handler(GdkEvent *)
Definition: editor.cc:1164
Definition: id.h:32
void show_editor_mixer(bool yn)
Definition: editor_mixer.cc:73
ArdourCanvas::Rectangle * cd_marker_bar
Definition: editor.h:973
void timeaxisview_deleted(TimeAxisView *)
Definition: editor.cc:5306
void update_tearoff_visibility()
Definition: editor.cc:4233
ArdourCanvas::Container * _trackview_group
Definition: editor.h:843
void stop_updating_meters()
void selected_marker_to_previous_region_boundary(bool with_selection)
Definition: editor_ops.cc:1128
Gtk::Label timecode_label
Definition: editor.h:977
Gdk::Cursor * which_mode_cursor() const
gint mouse_rename_region(ArdourCanvas::Item *, GdkEvent *)
EditIgnoreOption
Definition: editing.h:211
void add_notebook_page(std::string const &, Gtk::Widget &)
Definition: editor.cc:5867
std::map< ARDOUR::FadeShape, Gtk::Image * > _xfade_in_images
Definition: editor.h:2203
ArdourButton mouse_draw_button
Definition: editor.h:1723
void update_bring_in_message(Gtk::Label *label, uint32_t n, uint32_t total, std::string name)
Definition: editor_ops.cc:7586
void set_selected_track_from_click(bool press, Selection::Operation op=Selection::Set, bool no_remove=false)
void invert_selection()
bool canvas_marker_bar_event(GdkEvent *event, ArdourCanvas::Item *)
bool canvas_videotl_bar_event(GdkEvent *event, ArdourCanvas::Item *)
PlaylistSelector & playlist_selector() const
Definition: editor.cc:4039
bool _follow_playhead
true if the editor should follow the playhead, otherwise false
Definition: editor.h:1611
void center_screen_internal(framepos_t, float)
Definition: editor.cc:1252
Editing::SnapMode pre_internal_snap_mode
Definition: editor.h:588
void nudge_forward_capture_offset()
Definition: editor_ops.cc:543
void cycle_snap_mode()
void trim_region_to_location(const ARDOUR::Location &, const char *cmd)
Definition: editor_ops.cc:3676
unsigned paste_count
Definition: editor.h:1186
void selected_marker_to_region_boundary(bool with_selection, int32_t dir)
Definition: editor_ops.cc:1082
framepos_t get_preferred_edit_position(Editing::EditIgnoreOption=Editing::EDIT_IGNORE_NONE, bool use_context_click=false, bool from_outside_canvas=false)
Definition: editor.cc:4667
void new_transport_marker_menu_set_punch()
void set_session(ARDOUR::Session *)
Definition: editor.cc:1295
void editor_mixer_button_toggled()
Definition: editor_mixer.cc:53
void session_state_saved(std::string)
Definition: editor.cc:4226
void nudge_backward(bool next, bool force_playhead)
Definition: editor_ops.cc:449
void set_minsec_ruler_scale(framepos_t, framepos_t)
void select_all_selectables_using_loop()
void reattach_tearoff(Gtk::Box *b, Gtk::Window *w, int32_t n)
Definition: editor.cc:3961
void set_track_height(Height)
Definition: editor_ops.cc:6765
JoinObjectRangeState
Definition: editor.h:593
void edit_envelope()
Definition: editor_ops.cc:2437
void maybe_locate_with_edit_preroll(framepos_t)
Definition: editor_ops.cc:2526
framecnt_t samples_per_pixel
Definition: editor.h:1114
void set_color_rgba(uint32_t)
void set_punch_from_region()
Definition: editor_ops.cc:6108
void metric_get_samples(std::vector< ArdourCanvas::Ruler::Mark > &, gdouble, gdouble, gint)
double _full_canvas_height
full height of the canvas
Definition: editor.h:1075
Glib::RefPtr< Gtk::ToggleAction > ruler_marker_action
Definition: editor.h:877
Gtk::Menu fade_context_menu
Definition: editor.h:1493
int time_stretch(RegionSelection &, float fraction)
void center_playhead()
Definition: editor_ops.cc:4807
void build_track_count_menu()
Definition: editor.cc:3699
bool canvas_region_view_event(GdkEvent *event, ArdourCanvas::Item *, RegionView *)
Editing::ZoomFocus zoom_focus
Definition: editor.h:582
void build_snap_mode_menu()
Definition: editor.cc:3165
EditorLocations * _locations
Definition: editor.h:1865
void edit_point_selection_done(Editing::EditPoint)
Definition: editor.cc:3669
void toggle_region_lock_style()
Definition: editor_ops.cc:5490
Selection * cut_buffer
Definition: editor.h:1802
Gtk::Menu * redirect_menu()
bool autoscroll_canvas()
Gtk::Label samples_label
Definition: editor.h:978
void update_region_layering_order_editor()
Definition: editor.cc:5820
void bounce_range_selection(bool replace, bool enable_processing)
Definition: editor_ops.cc:3886
void duplicate_selection(float times)
Definition: editor_ops.cc:4751
bool leave_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void mouse_add_new_meter_event(framepos_t where)
GQuark PropertyID
Gtk::Menu * cd_marker_menu
Definition: editor.h:1676
ARDOUR::InterThreadInfo * current_interthread_info
Definition: editor.h:1380
bool _dragging_playhead
Definition: editor.h:1512
void location_changed(ARDOUR::Location *)
void sensitize_all_region_actions(bool)
void next_snap_choice()
friend class RegionGainDrag
Definition: editor.h:2249
void set_selected_regionview_from_region_list(boost::shared_ptr< ARDOUR::Region > region, Selection::Operation op=Selection::Set)
TimeFXDialog * current_timefx
Definition: editor.h:2003
Gtk::VBox nudge_vbox
Definition: editor.h:2038
void marker_selection_changed()
void maximise_editing_space()
Definition: editor.cc:4252
void location_gone(ARDOUR::Location *)
void catch_vanishing_regionview(RegionView *)
Definition: editor.cc:853
void set_edit_point_preference(Editing::EditPoint ep, bool force=false)
Definition: editor.cc:2137
bool track_canvas_map_handler(GdkEventAny *)
void set_fade_in_shape(ARDOUR::FadeShape)
Definition: editor_ops.cc:5702
ArdourDropdown snap_mode_selector
Definition: editor.h:1754
std::vector< EnterContext > _enter_stack
Definition: editor.h:2070
bool entered_track_canvas(GdkEventCrossing *)
std::vector< std::string > snap_type_strings
Definition: editor.h:1758
AudioClock * nudge_clock
Definition: editor.h:2039
Gtk::HBox toolbar_hbox
Definition: editor.h:1788
void first_idle()
Definition: editor.cc:5053
void combine_regions()
Definition: editor_ops.cc:7442
bool key_release_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
Gtk::HBox nudge_hbox
Definition: editor.h:2037
Gdk::Cursor * which_grabber_cursor() const
TrackViewList const & get_track_views()
Definition: editor.h:406
void popup_ruler_menu(framepos_t where=0, ItemType type=RegionItem)
void toggle_follow_playhead()
Definition: editor.cc:3991
bool canvas_start_xfade_event(GdkEvent *event, ArdourCanvas::Item *, AudioRegionView *)
void temporal_zoom_region(bool both_axes)
Definition: editor_ops.cc:1805
void mouse_add_new_punch(framepos_t)
void bring_all_sources_into_session()
Definition: editor_ops.cc:7593
Glib::RefPtr< Gtk::ToggleAction > ruler_minsec_action
Definition: editor.h:874
bool get_edit_op_range(framepos_t &start, framepos_t &end) const
int64_t framecnt_t
Definition: types.h:76
bool meters_running
Definition: editor.h:2127
void hide_a_region(boost::shared_ptr< ARDOUR::Region >)
Definition: editor.cc:5462
void cut_copy(Editing::CutCopyOp)
Definition: editor_ops.cc:4011
ArdourCanvas::ScrollGroup * get_hscroll_group() const
Definition: editor.h:509
int convert_drop_to_paths(std::vector< std::string > &paths, const Glib::RefPtr< Gdk::DragContext > &context, gint x, gint y, const Gtk::SelectionData &data, guint info, guint time)
Definition: editor.cc:3246
void current_mixer_strip_hidden()
void marker_menu_set_playhead()
void marker_drag_finished_callback(GdkEvent *)
ArdourButton smart_mode_button
Definition: editor.h:1730
void build_zoom_focus_menu()
Definition: editor.cc:3675
double visible_canvas_height() const
Definition: editor.h:152
void move_to_end()
Definition: editor_ops.cc:658
uint32_t clicked_selection
Definition: editor.h:703
void cursor_to_selection_end(EditorCursor *)
Definition: editor_ops.cc:1053
ArdourCanvas::Line * transport_punchin_line
Definition: editor.h:1845
sigc::connection step_timeout
Definition: editor.h:2062
void marker_menu_rename()
void point_selection_changed()
void center_edit_point()
Definition: editor_ops.cc:4814
void set_marker_line_visibility(bool)
void metric_get_minsec(std::vector< ArdourCanvas::Ruler::Mark > &, gdouble, gdouble, gint)
Gtk::Label videotl_label
Definition: editor.h:987
void clear_marker_display()
void raise_region()
Definition: editor_ops.cc:2670
void point_trim(GdkEvent *, framepos_t)
bool write_audio_range(ARDOUR::AudioPlaylist &, const ARDOUR::ChanCount &channels, std::list< ARDOUR::AudioRange > &)
ArdourCanvas::Container * get_noscroll_group() const
Definition: editor.h:508
void bring_in_external_audio(Editing::ImportMode mode, framepos_t &pos)
Gtk::Label toolbar_selection_cursor_label
Definition: editor.h:1719
void define_one_bar(framepos_t start, framepos_t end)
Definition: editor_ops.cc:6184
void control_view(uint32_t)
Definition: editor.cc:992
void clear_ranges()
Definition: editor_ops.cc:2334
void set_fade_out_active(bool)
Definition: editor_ops.cc:5792
void dynamic_cast_marker_object(void *, MeterMarker **, TempoMarker **) const
Gtk::VBox track_canvas_vbox
Definition: editor.h:1083
bool _notebook_shrunk
Definition: editor.h:610
void remove_midi_note(ArdourCanvas::Item *, GdkEvent *)
void edit_mode_selection_done(ARDOUR::EditMode m)
Definition: editor.cc:3621
void follow_mixer_selection()
Gtk::Menu * edit_controls_right_menu
Definition: editor.h:1081
framecnt_t samples_per_pixel
Definition: editor.h:581
void show_region_properties()
Definition: editor_ops.cc:2695
Glib::RefPtr< Gtk::RadioAction > zoom_focus_action(Editing::ZoomFocus)
void marker_menu_select_all_selectables_using_range()
ArdourCanvas::Container * marker_group
Definition: editor.h:818
void reset_zoom(framecnt_t)
Definition: editor.cc:4379
void rename_region()
Definition: editor_ops.cc:2708
void set_timecode_ruler_scale(framepos_t, framepos_t)
void set_selection_from_loop()
std::list< framepos_t > AnalysisFeatureList
Definition: types.h:530
bool _ignore_region_action
Definition: editor.h:1817
void initialize_canvas()
void region_from_selection()
Definition: editor_ops.cc:2819
framepos_t get_preroll()
Definition: editor_ops.cc:2519
std::vector< std::string > zoom_focus_strings
Definition: editor.h:1773
ArdourCanvas::Rectangle * marker_bar
Definition: editor.h:970
bool enter_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void play_from_edit_point()
Definition: editor_ops.cc:2475
void timecode_snap_to_internal(framepos_t &first, ARDOUR::RoundMode direction=ARDOUR::RoundNearest, bool for_mark=false)
Definition: editor.cc:2621
ARDOUR::Location * temp_location
Definition: editor.h:1853
ArdourButton zoom_in_button
Definition: editor.h:1701
void reverse_region()
Definition: editor_ops.cc:5041
VisualState(bool with_tracks)
Definition: editor.cc:4401
uint32_t bbt_bar_helper_on
Definition: editor.h:953
void begin_reversible_selection_op(std::string cmd_name)
Definition: editor.cc:3366
Gtk::EventBox marker_base
Definition: editor.h:619
void move_range_selection_start_or_end_to_region_boundary(bool, bool)
Definition: editor_ops.cc:306
bool check_step_edit()
Definition: editor.cc:5514
Editing::MouseMode current_mouse_mode() const
Definition: editor.h:179
uint32_t location_marker_color
Definition: editor.h:636
void mouse_add_new_range(framepos_t)
MixerStrip * current_mixer_strip
Definition: editor.h:2015
void analyze_region_selection()
Definition: editor.cc:1719
void remove_clicked_region()
Definition: editor_ops.cc:4280
bool track_canvas_button_press_event(GdkEventButton *event)
void region_fill_selection()
Definition: editor_ops.cc:3339
void prev_snap_choice_music_and_time()
void escape()
void do_cut_time()
Definition: editor_ops.cc:7070
int playlist_deletion_dialog(boost::shared_ptr< ARDOUR::Playlist >)
Definition: editor.cc:4127
bool _following_mixer_selection
Definition: editor.h:2212
Glib::RefPtr< Gtk::ToggleAction > ruler_loop_punch_action
Definition: editor.h:879
size_t push_canvas_cursor(Gdk::Cursor *)
void use_visual_state(VisualState &)
Definition: editor.cc:4475
void new_transport_marker_menu_set_loop()
void remove_meter_marker(ArdourCanvas::Item *)
ArdourButton zoom_out_button
Definition: editor.h:1702
Glib::RefPtr< Gtk::Action > undo_action
Definition: editor.h:2090
void session_import_dialog()
Definition: amp.h:29
void scroll_tracks_down()
Definition: editor_ops.cc:1379
void toggle_solo_isolate()
Definition: editor_ops.cc:5610
ArdourCanvas::Rectangle * transport_bar_drag_rect
Definition: editor.h:1835
void unfreeze_route()
Definition: editor_ops.cc:3795
Gtk::Table edit_packer
Definition: editor.h:1049
void set_selection_from_punch()
void remove_region_sync()
Definition: editor_ops.cc:3420
void nudge_backward_capture_offset()
Definition: editor_ops.cc:567
Gtk::Menu xfade_out_context_menu
Definition: editor.h:1496
bool have_pending_keyboard_selection
Definition: editor.h:1468
Editing::EditPoint _edit_point
Definition: editor.h:2101
ArdourButton tav_expand_button
Definition: editor.h:1705
Height
Definition: enums.h:47
void select_prev_route()
Definition: editor_ops.cc:6001
void change_region_layering_order(bool from_context_menu)
Definition: editor.cc:5788
sigc::connection super_rapid_screen_update_connection
Definition: editor.h:1141
ArdourButton nudge_backward_button
Definition: editor.h:2036
void set_zoom_focus(Editing::ZoomFocus)
Definition: editor.cc:3837
bool autoscroll_active() const
void visible_order_range(int *, int *) const
std::vector< Gdk::Cursor * > _cursor_stack
Definition: editor.h:776
void stop_step_editing()
Definition: editor.cc:5508
bool _stationary_playhead
true if we scroll the tracks rather than the playhead
Definition: editor.h:1613
Glib::RefPtr< Gdk::Pixbuf > rec_enabled_icon
Definition: editor.h:1868
void cursor_to_region_boundary(bool with_selection, int32_t dir)
Definition: editor_ops.cc:910
LIBGTKMM2EXT_API uint64_t Bindings
Definition: debug.cc:24
void set_selection_from_range(ARDOUR::Location &)
void add_dstream_context_items(Gtk::Menu_Helpers::MenuList &)
Definition: editor.cc:1896
void temporal_zoom_to_frame(bool coarser, framepos_t frame)
Definition: editor_ops.cc:1979
void visual_changer(const VisualChange &)
Definition: editor.cc:4611
static gboolean _idle_resize(gpointer)
Definition: editor.cc:5086
bool write_region(std::string path, boost::shared_ptr< ARDOUR::AudioRegion >)
bool button_release_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
ArdourCanvas::Ruler * samples_ruler
Definition: editor.h:961
ArdourCanvas::Ruler * bbt_ruler
Definition: editor.h:960
void marker_menu_loop_range()
bool canvas_tempo_bar_event(GdkEvent *event, ArdourCanvas::Item *)
Editing::ImportMode mode
Definition: editor.h:1387
void legatize_regions(const RegionSelection &rs, bool shrink_only)
Definition: editor_ops.cc:5209
TimecodeRulerScale
Definition: editor.h:919
void scroll_forward(float pages=0.8f)
Definition: editor_ops.cc:1363
void popup_xfade_out_context_menu(int, int, ArdourCanvas::Item *, ItemType)
Definition: editor.cc:1522
void stop_canvas_autoscroll()
void split_multichannel_region()
Definition: editor_ops.cc:2911
Gtk::Label mark_label
Definition: editor.h:981
void split_region_at_points(boost::shared_ptr< ARDOUR::Region >, ARDOUR::AnalysisFeatureList &, bool can_ferret, bool select_new=false)
Definition: editor_ops.cc:6308
bool track_canvas_key_press(GdkEventKey *)
framecnt_t get_current_zoom() const
Definition: editor.h:290
RegionLayeringOrderEditor * layering_order_editor
Definition: editor.h:2187
void goto_visual_state(uint32_t)
Definition: editor_ops.cc:7380
void build_range_marker_menu(bool, bool)
framepos_t last_update_frame
Definition: editor.h:1142
void reset_region_gain_envelopes()
Definition: editor_ops.cc:5366
void get_equivalent_regions(RegionView *rv, std::vector< RegionView * > &, PBD::PropertyID) const
RegionSelection get_regions_from_selection_and_mouse(framepos_t)
Definition: editor.cc:4918
void select_all_tracks()
bool on_key_press_event(GdkEventKey *)
Definition: editor.cc:4341
void close_region_gaps()
Definition: editor_ops.cc:6555
Gtk::HBox bottom_hbox
Definition: editor.h:1047
bool internal_editing() const
uint32_t autoscroll_cnt
Definition: editor.h:1882
int time_fx(ARDOUR::RegionList &, float val, bool pitching)
bool nudge_backward_release(GdkEventButton *)
Definition: editor_ops.cc:356
Glib::RefPtr< Gtk::ToggleAction > smart_mode_action
Definition: editor.h:1731
PBD::Signal0< void > EditorFreeze
Definition: editor.h:1577
void select_all_objects(Selection::Operation op)
framepos_t get_region_boundary(framepos_t pos, int32_t dir, bool with_selection, bool only_onscreen)
Definition: editor_ops.cc:875
VisualState * current_visual_state(bool with_tracks=true)
Definition: editor.cc:4412
void paste_internal(framepos_t position, float times)
Definition: editor_ops.cc:4602
EditorImportStatus import_status
Definition: editor.h:1395
void marker_menu_play_from()
MinsecRulerScale minsec_ruler_scale
Definition: editor.h:912
void update_marker_labels()
bool _pending_initial_locate
Definition: editor.h:2168
void snap_to_with_modifier(framepos_t &first, GdkEvent const *ev, ARDOUR::RoundMode direction=ARDOUR::RoundNearest, bool for_mark=false)
Definition: editor.cc:2593
ArdourButton mouse_cut_button
Definition: editor.h:1728
void lower_region()
Definition: editor_ops.cc:2682
void set_samples_per_pixel(framecnt_t)
Definition: editor.cc:4502
void scroll_tracks_up()
Definition: editor_ops.cc:1390
boost::shared_ptr< ARDOUR::Region > find_next_region(ARDOUR::framepos_t, ARDOUR::RegionPoint, int32_t dir, TrackViewList &, TimeAxisView **=0)
Definition: editor_ops.cc:781
void set_canvas_cursor(Gdk::Cursor *)
Glib::RefPtr< Gtk::ToggleAction > xjadeo_letterbox_action
Definition: editor.h:996
ArdourCanvas::Rectangle * cd_marker_bar_drag_rect
Definition: editor.h:1833
void * freeze_thread()
Definition: editor_ops.cc:3811
boost::shared_ptr< ARDOUR::Track > track
Definition: editor.h:1391
void remove_tempo_marker(ArdourCanvas::Item *)
void save_visual_state(uint32_t)
Definition: editor_ops.cc:7365
std::vector< std::string > snap_mode_strings
Definition: editor.h:1759
void tempo_map_changed(const PBD::PropertyChange &)
void calc_extra_zoom_edges(framepos_t &start, framepos_t &end)
Definition: editor_ops.cc:1774
Gdk::Cursor * which_track_cursor() const
bool button_press_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
std::list< XMLNode * > selection_op_history
Definition: editor.h:1966
void select_all_selectables_between(bool within)
MouseCursors const * cursors() const
Definition: editor.h:473
void do_embed(std::vector< std::string > paths, Editing::ImportDisposition disposition, Editing::ImportMode mode, framepos_t &pos, boost::shared_ptr< ARDOUR::PluginInfo > instrument=boost::shared_ptr< ARDOUR::PluginInfo >())
uint32_t bbt_beat_subdivision
Definition: editor.h:1692
Marker * find_marker_from_location_id(PBD::ID const &, bool) const
ArdourCanvas::Line * transport_punchout_line
Definition: editor.h:1846
void mapover_tracks(sigc::slot< void, RouteTimeAxisView &, uint32_t > sl, TimeAxisView *, PBD::PropertyID) const
std::map< ARDOUR::FadeShape, Gtk::Image * > _xfade_out_images
Definition: editor.h:2204
void mapover_tracks_with_unique_playlists(sigc::slot< void, RouteTimeAxisView &, uint32_t > sl, TimeAxisView *, PBD::PropertyID) const
void set_close_video_sensitive(bool onoff)
void selected_marker_to_previous_region_point(ARDOUR::RegionPoint)
Definition: editor_ops.cc:1205
void cms_new(boost::shared_ptr< ARDOUR::Route >)
bool canvas_selection_start_trim_event(GdkEvent *event, ArdourCanvas::Item *, SelectionRect *)
void play_selected_region()
Definition: editor_ops.cc:2789
gint really_remove_marker(ARDOUR::Location *loc)
void marker_menu_set_from_playhead()
int64_t framepos_t
Definition: types.h:66
void get_onscreen_tracks(TrackViewList &)
Gtk::EventBox meter_base
Definition: editor.h:617
void control_step_tracks_up()
Definition: editor.cc:1042
bool _maximised
true if we are in fullscreen mode
Definition: editor.h:1615
VerboseCursor * verbose_cursor() const
Definition: editor.h:477
void mouse_brush_insert_region(RegionView *, framepos_t pos)
void add_transport_frame(Gtk::Container &)
Definition: editor.cc:835
EditMode
Definition: types.h:351
std::vector< ARDOUR::framepos_t > region_boundary_cache
Definition: editor.h:1041
EnterContext * get_enter_context(ItemType type)
void add_external_audio_action(Editing::ImportMode)
void prev_snap_choice_music_only()
void fit_tracks(TrackViewList &)
Definition: editor_ops.cc:7271
void crop_region_to_selection()
Definition: editor_ops.cc:3210
void region_fill_track()
Definition: editor_ops.cc:3302
Gtkmm2ext::TearOff * _mouse_mode_tearoff
Definition: editor.h:1721
TimeAxisView * stepping_axis_view()
Definition: editor.h:499
bool lock_timeout_callback()
Definition: editor.cc:1200
void prepare_for_cleanup()
Definition: editor.cc:4175
void end_resize_line_ops()
void on_realize()
Definition: editor.cc:1143
bool canvas_region_view_name_highlight_event(GdkEvent *event, ArdourCanvas::Item *, RegionView *)
Gtk::Menu * edit_controls_left_menu
Definition: editor.h:1080
void sort_track_selection(TrackViewList &)
Definition: editor.cc:4660
TempoLines * tempo_lines
Definition: editor.h:1617
Gtk::Adjustment unused_adjustment
Definition: editor.h:1055
void access_action(std::string, std::string)
Definition: editor.cc:1126
Glib::RefPtr< Gdk::Pixbuf > rec_disabled_icon
Definition: editor.h:1869
Gtk::VBox time_bars_vbox
Definition: editor.h:805
ImportMode
Definition: editing.h:148
bool can_remove_control_point(ArdourCanvas::Item *)
void update_punch_range_view()
Gtk::HBox meter_box
Definition: editor.h:618
FadeShape
Definition: types.h:592
void new_tempo_section()
Definition: editor.cc:3331
ArdourCanvas::Container * meter_group
Definition: editor.h:817
std::map< ARDOUR::FadeShape, Gtk::Image * > _fade_in_images
Definition: editor.h:2201
bool canvas_end_xfade_event(GdkEvent *event, ArdourCanvas::Item *, AudioRegionView *)
void cycle_edit_mode()
Definition: editor.cc:3600
void set_horizontal_position(double)
void fade_range()
Definition: editor_ops.cc:5616
void snap_type_chosen(Editing::SnapType)
void deselect_all()
bool _region_selection_change_updates_region_list
Definition: editor.h:2198
int32_t _visible_track_count
Definition: editor.h:1710
XMLNode * button_settings() const
Definition: editor.cc:815
Glib::RefPtr< Gtk::ToggleAction > ruler_samples_action
Definition: editor.h:873
void pane_allocation_handler(Gtk::Allocation &, Gtk::Paned *)
Definition: editor.cc:3883
bool autoscroll_vertical_allowed
Definition: editor.h:1881
Gtk::MenuItem * region_edit_menu_split_item
Definition: editor.h:742
LIBARDOUR_API PBD::PropertyDescriptor< bool > regions
Definition: playlist.cc:51
void ensure_cd_marker_updated(LocationMarkers *lam, ARDOUR::Location *location)
bool no_ruler_shown_update
Definition: editor.h:881
double _last_motion_y
Definition: editor.h:2185
void bounce_region_selection(bool with_processing)
bool canvas_meter_marker_event(GdkEvent *event, ArdourCanvas::Item *, MeterMarker *)
LayerOperation
Definition: editor.h:1209
void separate_region_from_punch()
Definition: editor_ops.cc:3101
SnapMode
Definition: editing.h:63
void select_all_in_track(Selection::Operation op)
void toggle_solo()
Definition: editor_ops.cc:5560
ArdourCanvas::Rectangle * tempo_bar
Definition: editor.h:968
double trackviews_height() const
LIBPBD_API Transmitter info
void popup_track_context_menu(int, int, ItemType, bool)
Definition: editor.cc:1546
void set_edit_point()
Definition: editor_ops.cc:5887
sigc::connection _scroll_connection
Definition: editor.h:1070
Gtk::Menu track_region_context_menu
Definition: editor.h:739
void lower_region_to_bottom()
Definition: editor_ops.cc:2688
void set_mark()
Definition: editor_ops.cc:2304
void foreach_time_axis_view(sigc::slot< void, TimeAxisView & >)
Definition: editor.cc:5408
void mapped_get_equivalent_regions(RouteTimeAxisView &, uint32_t, RegionView *, std::vector< RegionView * > *) const
void reset_controls_layout_width()
void control_vertical_zoom_out_selected()
Definition: editor.cc:986
void marker_menu_zoom_to_range()
Gtk::Allocation _canvas_viewport_allocation
Definition: editor.h:1594
void set_name(const std::string &)
ArdourCanvas::GtkCanvas * _track_canvas
Definition: editor.h:793
void reattach_all_tearoffs()
Definition: editor.cc:4244
EditPoint
Definition: editing.h:178
DragManager * drags() const
Definition: editor.h:461
Gtk::Menu * build_track_region_context_menu()
Definition: editor.cc:1690
bool canvas_automation_track_event(GdkEvent *event, ArdourCanvas::Item *, AutomationTimeAxisView *)
std::list< boost::shared_ptr< Region > > RegionList
Definition: types.h:87
double _visible_canvas_width
Definition: editor.h:1073
void loop_location(ARDOUR::Location &)
Definition: editor_ops.cc:2579
void export_region()
ArdourCanvas::Rect autoscroll_boundary
Definition: editor.h:1884
CutCopyOp
Definition: editing.h:198
void tav_zoom_step(bool coarser)
Definition: editor_ops.cc:1578
void set_xjadeo_viewoption(int)
void control_unselect()
Definition: editor.cc:998
void drop_regions(const Glib::RefPtr< Gdk::DragContext > &context, gint x, gint y, const Gtk::SelectionData &data, guint info, guint time)
int resize_idle_id
Definition: editor.h:2151
bool button_press_dispatch(GdkEventButton *)
~Editor()
Definition: editor.cc:804
Gtk::Menu * range_marker_menu
Definition: editor.h:1673
bool ignore_mouse_mode_toggle
Definition: editor.h:1735
void strip_region_silence()
Definition: editor_ops.cc:5052
void mapped_use_new_playlist(RouteTimeAxisView &, uint32_t, std::vector< boost::shared_ptr< ARDOUR::Playlist > > const &)
Definition: editor.cc:4323
bool canvas_transport_marker_bar_event(GdkEvent *event, ArdourCanvas::Item *)
void do_insert_time()
Definition: editor_ops.cc:6923
void separate_under_selected_regions()
Definition: editor_ops.cc:3135
void unhide_markers()
Definition: editor_ops.cc:2364
void set_region_sync_position()
Definition: editor_ops.cc:3385
int scrub_reverse_distance
Definition: editor.h:1463
bool show_gain_after_trim
Definition: editor.h:1905
void jump_forward_to_mark()
Definition: editor_ops.cc:2272
void toggle_mute()
Definition: editor_ops.cc:5585
void update_title()
Definition: editor.cc:1267
bool button_press_handler_1(ArdourCanvas::Item *, GdkEvent *, ItemType)
void snap_regions_to_grid()
Definition: editor_ops.cc:6516
void maybe_autoscroll(bool, bool, bool)
void super_rapid_screen_update()
Definition: editor.cc:5623
TimeAxisView * _stepping_axis_view
Definition: editor.h:2230
Gtk::VBox global_vpacker
Definition: editor.h:771
void snap_mode_selection_done(Editing::SnapMode)
Definition: editor.cc:3636
void set_loop_range(framepos_t start, framepos_t end, std::string cmd)
Definition: editor.cc:4740
Gtk::Label tempo_label
Definition: editor.h:979
void update_fixed_rulers()
int idle_visual_changer()
Definition: editor.cc:4584
void compute_bbt_ruler_scale(framepos_t lower, framepos_t upper, ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin, ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end)
static void * timefx_thread(void *arg)
double _visible_canvas_height
height of the visible area of the track canvas
Definition: editor.h:1074
double sample_to_pixel(framepos_t sample) const
Definition: editor.h:234
void keyboard_paste()
Definition: editor_keys.cc:107
void update_tempo_based_rulers(ARDOUR::TempoMap::BBTPointList::const_iterator &begin, ARDOUR::TempoMap::BBTPointList::const_iterator &end)
ArdourCanvas::Container * time_line_group
Definition: editor.h:1620
void set_snap_mode(Editing::SnapMode)
Definition: editor.cc:2118
void cursor_to_selection_start(EditorCursor *)
Definition: editor_ops.cc:1024
ArdourDropdown snap_type_selector
Definition: editor.h:1751
void bring_in_callback(Gtk::Label *, uint32_t n, uint32_t total, std::string name)
Definition: editor_ops.cc:7580
boost::shared_ptr< ARDOUR::AudioTrack > get_nth_selected_audio_track(int nth) const
void add_routes(ARDOUR::RouteList &)
Definition: editor.cc:5249
void play_location(ARDOUR::Location &)
Definition: editor_ops.cc:2569
LocationMarkers * find_location_markers(ARDOUR::Location *) const
void new_playlists(TimeAxisView *v)
Definition: editor.cc:4282
void set_position(framepos_t start, framepos_t end=0)
Gtk::MenuItem & action_menu_item(std::string const &)
Definition: editor.cc:5858
Gtk::Adjustment horizontal_adjustment
Definition: editor.h:1053
void add_location_from_playhead_cursor()
Definition: editor_ops.cc:2166
Editing::SnapMode snap_mode() const
Definition: editor.cc:2040
void cut_copy_midi(Editing::CutCopyOp)
Definition: editor_ops.cc:4241
double get_y_origin() const
Definition: editor.cc:4354
bool key_press_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void export_audio()
GUIObjectState * gui_state
Definition: editor.h:564
void compute_current_bbt_points(framepos_t left, framepos_t right, ARDOUR::TempoMap::BBTPointList::const_iterator &begin, ARDOUR::TempoMap::BBTPointList::const_iterator &end)
void set_gain_envelope_visibility()
Definition: editor_ops.cc:5400
ArdourCanvas::ScrollGroup * cursor_scroll_group
Definition: editor.h:837
Gtk::Label transport_mark_label
Definition: editor.h:983
void uncombine_regions()
Definition: editor_ops.cc:7485
void create_region_from_selection(std::vector< boost::shared_ptr< ARDOUR::Region > > &)
Definition: editor_ops.cc:2865
ArdourButton mouse_move_button
Definition: editor.h:1724
bool canvas_note_event(GdkEvent *event, ArdourCanvas::Item *)
void cancel_time_selection()
void time_selection_changed()
void track_mixer_selection()
bool is_video_timeline_locked()
void select_all_selectables_using_punch()
ArdourCanvas::Container * range_marker_group
Definition: editor.h:819
bool constructed
Definition: editor.h:548
Gtk::VBox edit_controls_vbox
Definition: editor.h:1084
void zoom_vertical_modifier_released()
Definition: editor.cc:5962
bool canvas_playhead_cursor_event(GdkEvent *event, ArdourCanvas::Item *)
Gtk::Menu * build_track_bus_context_menu()
Definition: editor.cc:1678
#define upper
Definition: auto_spin.cc:28
sigc::connection autoscroll_connection
Definition: editor.h:1879
void remove_last_capture()
Definition: editor_ops.cc:4878
void align_region(boost::shared_ptr< ARDOUR::Region >, ARDOUR::RegionPoint point, framepos_t position)
Definition: editor_ops.cc:3579
Gtk::Widget * autoscroll_widget
Definition: editor.h:1883
bool _have_idled
Definition: editor.h:2150
std::list< Marker * > Marks
Definition: editor.h:1679
void add_location_from_selection()
Definition: editor_ops.cc:2067
void rename_marker(Marker *marker)
Gtk::HBox top_hbox
Definition: editor.h:1046
void load_bindings()
bool button_release_dispatch(GdkEventButton *)
void zoom_focus_selection_done(Editing::ZoomFocus f)
Definition: editor.cc:3690
const char * name
void import_audio(bool as_tracks)
Glib::RefPtr< Gtk::ToggleAction > ruler_video_action
Definition: editor.h:989
int finish_bringing_in_material(boost::shared_ptr< ARDOUR::Region > region, uint32_t in_chans, uint32_t out_chans, framepos_t &pos, Editing::ImportMode mode, boost::shared_ptr< ARDOUR::Track > &existing_track, const std::string &new_track_name, boost::shared_ptr< ARDOUR::PluginInfo > instrument)
void insert_patch_change(bool from_context)
Definition: editor_ops.cc:5247
void add_location_from_region()
Definition: editor_ops.cc:2233
void update_title_s(const std::string &snapshot_name)
void apply_midi_note_edit_op(ARDOUR::MidiOperator &op, const RegionSelection &rs)
Definition: editor_ops.cc:5102
framepos_t pixel_to_sample(double pixel) const
Definition: editor.h:230
static const int32_t default_width
Definition: editor.h:2030
Editing::SnapType snap_type() const
Definition: editor.cc:2034
void toggle_ruler_visibility(RulerType rt)
void trim_region_to_previous_region_end()
Definition: editor_ops.cc:3718
void set_stationary_playhead(bool yn)
Definition: editor.cc:4026
void selected_marker_moved(ARDOUR::Location *)
bool scroll_down_one_track(bool skip_child_views=false)
Definition: editor_ops.cc:1414
void unhide_ranges()
Definition: editor_ops.cc:2375
Editing::ZoomFocus zoom_focus
Definition: editor.h:563
void set_sync_point(framepos_t, const RegionSelection &)
Definition: editor_ops.cc:3391
void add_toplevel_menu(Gtk::Container &)
Definition: editor.cc:828
static int _idle_visual_changer(void *arg)
Definition: editor.cc:4578
Definition: editor.h:134
Gtk::VBox edit_mode_box
Definition: editor.h:1746
void toggle_xjadeo_proc(int state=-1)
void toggle_tracks_active()
Definition: editor_ops.cc:6775
void set_fade_out_shape(ARDOUR::FadeShape)
Definition: editor_ops.cc:5733
Gtk::Menu * marker_menu
Definition: editor.h:1672
framepos_t leftmost_frame
Definition: editor.h:562
void naturalize_region()
Definition: editor_ops.cc:3441
Gtk::Label bbt_label
Definition: editor.h:976
RouteTimeAxisView * get_route_view_by_route_id(const PBD::ID &id) const
Definition: editor.cc:5417
uint32_t selection_op_cmd_depth
Definition: editor.h:1963
Gtkmm2ext::TearOff * _zoom_tearoff
Definition: editor.h:1780
Glib::RefPtr< Gtk::RadioAction > snap_type_action(Editing::SnapType)
void map_position_change(framepos_t)
Definition: editor.cc:1223
framecnt_t current_page_samples() const
Definition: editor.h:148
bool dragging_playhead() const
Definition: editor.h:343
void begin_selection_op_history()
Definition: editor.cc:3350
Marker * entered_marker
Definition: editor.h:667
void use_range_as_bar()
Definition: editor_ops.cc:6175
Gtk::Viewport _toolbar_viewport
Definition: editor.h:1791
void toggle_stationary_playhead()
Definition: editor.cc:4016
bool _ignore_follow_edits
Definition: editor.h:1822
boost::shared_ptr< CursorContext > cursor_ctx
Definition: editor.h:489
gint timecode_nmarks
Definition: editor.h:931
void popup_control_point_context_menu(ArdourCanvas::Item *, GdkEvent *)
Definition: editor.cc:5909
void setup_fade_images()
Definition: editor.cc:5828
std::vector< std::string > edit_mode_strings
Definition: editor.h:2113
bool canvas_selection_rect_event(GdkEvent *event, ArdourCanvas::Item *, SelectionRect *)
Gtkmm2ext::Bindings key_bindings
Definition: editor.h:1181
void toggle_skip_playback()
framepos_t leftmost_sample() const
Definition: editor.h:146
Editing::SnapMode internal_snap_mode
Definition: editor.h:590
void ensure_time_axis_view_is_visible(TimeAxisView const &tav, bool at_top)
Definition: xml++.h:95
ImportDisposition
Definition: editing.h:168
void show_window()
Definition: editor.cc:916
void queue_draw_resize_line(int at)
Width
Definition: enums.h:25
void tie_vertical_scrolling()
bool button_double_click_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void remove_transient(ArdourCanvas::Item *item)
Definition: editor_ops.cc:6502
void region_view_added(RegionView *)
Definition: editor.cc:5169
framecnt_t cut_buffer_length
Definition: editor.h:1150
Gtk::Table toolbar_selection_clock_table
Definition: editor.h:1718
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
Definition: region.cc:65
void duplicate_range(bool with_dialog)
Definition: editor.cc:3528
ArdourCanvas::Rectangle * transport_bar_range_rect
Definition: editor.h:1840
ARDOUR::Location * find_location_from_marker(Marker *, bool &is_start) const
void add_region_brush_drag(ArdourCanvas::Item *, GdkEvent *, RegionView *)
void drop_paths_part_two(const std::vector< std::string > &paths, framepos_t frame, double ypos, bool copy)
Definition: editor.h:86
void set_loop_from_selection(bool play)
Definition: editor_ops.cc:6032
void choose_canvas_cursor_on_entry(ItemType)
std::vector< std::string > edit_point_strings
Definition: editor.h:2112
void toggle_gain_envelope_active()
Definition: editor_ops.cc:5415
PBD::Signal0< void > EditorThaw
Definition: editor.h:1578
void start_create_region_grab(ArdourCanvas::Item *, GdkEvent *)
bool edit_controls_button_release(GdkEventButton *)
Definition: editor.cc:3813
void toggle_region_lock()
Definition: editor_ops.cc:5442
void remove_selected_regions()
Definition: editor_ops.cc:4310
void drop_routes(const Glib::RefPtr< Gdk::DragContext > &context, gint x, gint y, const Gtk::SelectionData &data, guint info, guint time)
TrackViewList axis_views_from_routes(boost::shared_ptr< ARDOUR::RouteList >) const
Definition: editor.cc:5217
Gtk::Menu * build_track_selection_context_menu()
Definition: editor.cc:1755
void toggle_measure_visibility()
ArdourCanvas::Rectangle * transport_preroll_rect
Definition: editor.h:1847
void transform_region()
Definition: editor_ops.cc:5220
ArdourCanvas::Rectangle * transport_postroll_rect
Definition: editor.h:1848
void get_per_region_note_selection(std::list< std::pair< PBD::ID, std::set< boost::shared_ptr< Evoral::Note< Evoral::Beats > > > > > &) const
Definition: editor.cc:4989
void remove_tracks()
Definition: editor_ops.cc:6799
Gtk::ToggleButton editor_mixer_button
Definition: editor.h:1696
void metric_get_timecode(std::vector< ArdourCanvas::Ruler::Mark > &, gdouble, gdouble, gint)
Gtk::Frame toolbar_frame
Definition: editor.h:1790
void playhead_backward_to_grid()
Definition: editor_ops.cc:6750
uint32_t location_cd_marker_color
Definition: editor.h:640
ArdourCanvas::Rectangle * rubberband_rect
Definition: editor.h:1859
ArdourCanvas::Rectangle * range_bar_drag_rect
Definition: editor.h:1834
void adjust_region_gain(bool up)
Definition: editor_ops.cc:5006
ARDOUR::Location * transport_loop_location()
Definition: editor.cc:4193
bool _show_marker_lines
Definition: editor.h:668
bool set_selected_regionview_from_click(bool press, Selection::Operation op=Selection::Set)
void create_editor_mixer()
Gtk::HBox _zoom_box
Definition: editor.h:1779
void toggle_midi_input_active(bool flip_others)
Definition: editor_ops.cc:7512
void control_vertical_zoom_out_all()
Definition: editor.cc:974
void finish_cleanup()
Definition: editor.cc:4187
bool canvas_marker_event(GdkEvent *event, ArdourCanvas::Item *, Marker *)
void build_edit_mode_menu()
Definition: editor.cc:3152
void start_canvas_autoscroll(bool allow_horiz, bool allow_vert, const ArdourCanvas::Rect &boundary)
void place_transient()
Definition: editor_ops.cc:6477
void remove_metric_marks()
bool button_release_can_deselect
Definition: editor.h:720
void trim_region_to_next_region_start()
Definition: editor_ops.cc:3724
Gtk::HBox status_bar_hpacker
Definition: editor.h:2099
void select_next_route()
Definition: editor_ops.cc:5969
Gtkmm2ext::TearOff * _tools_tearoff
Definition: editor.h:1787
Direction
Definition: editor.h:1061
Selection & get_selection() const
Definition: editor.h:244
sigc::connection editor_regions_selection_changed_connection
Definition: editor.h:1809
void set_edit_mode(ARDOUR::EditMode)
Definition: editor.cc:3594
framepos_t last_paste_pos
Definition: editor.h:1185
bool scroll_press(Direction)
Definition: editor.cc:5527
bool clear_entered_track
Definition: editor.h:2072
bool choose_new_marker_name(std::string &name)
Definition: editor_ops.cc:2031
TimecodeRulerScale timecode_ruler_scale
Definition: editor.h:928
void update_ruler_visibility()
EditorGroupTabs * _group_tabs
Definition: editor.h:2176
Editing::SnapType pre_internal_snap_type
Definition: editor.h:587
Gtk::MenuItem * _popup_region_menu_item
Definition: editor.h:759
uint32_t selection_op_history_it
Definition: editor.h:1964
#define lower
Definition: auto_spin.cc:29
void freeze_route()
Definition: editor_ops.cc:3822
bool set_selected_control_point_from_click(bool press, Selection::Operation op=Selection::Set)
int get_regionview_count_from_region_list(boost::shared_ptr< ARDOUR::Region >)
void temporal_zoom_by_frame(framepos_t start, framepos_t end)
Definition: editor_ops.cc:1951
int add_sources(std::vector< std::string > paths, ARDOUR::SourceList &sources, framepos_t &pos, Editing::ImportDisposition disposition, Editing::ImportMode mode, int target_regions, int target_tracks, boost::shared_ptr< ARDOUR::Track > &track, bool add_channel_suffix, boost::shared_ptr< ARDOUR::PluginInfo > instrument=boost::shared_ptr< ARDOUR::PluginInfo >())
TrackViewList track_views
Definition: editor.h:1135
RegionSelection get_regions_from_selection_and_edit_point()
Definition: editor.cc:4881
void goto_nth_marker(int nth)
TimeAxisView * _pending_resize_view
Definition: editor.h:2155
bool canvas_feature_line_event(GdkEvent *event, ArdourCanvas::Item *, RegionView *)
void reset_point_selection()
Definition: editor_ops.cc:4798
void toggle_zero_line_visibility()
void show_a_region(boost::shared_ptr< ARDOUR::Region >)
Definition: editor.cc:5468
TimeAxisView * _last_cut_copy_source_track
Definition: editor.h:2193
bool canvas_fade_out_event(GdkEvent *event, ArdourCanvas::Item *, AudioRegionView *)
Gtkmm2ext::Bindings * button_bindings
Definition: editor.h:1171
void set_fade_in_active(bool)
Definition: editor_ops.cc:5763
void start_step_editing()
Definition: editor.cc:5502
void consider_auditioning(boost::shared_ptr< ARDOUR::Region >)
Definition: editor.cc:5440
Gtkmm2ext::TearOff * mouse_mode_tearoff() const
Definition: editor.h:434
void get_pointer_position(double &, double &) const
int scrub_reversals
Definition: editor.h:1462
void color_handler()
bool nudge_forward_release(GdkEventButton *)
Definition: editor_ops.cc:345
void mouse_mode_object_range_toggled()
ArdourCanvas::Ruler * timecode_ruler
Definition: editor.h:959
void temporal_zoom_session()
Definition: editor_ops.cc:1920
gint left_automation_track()
RouteTimeAxisView * axis_view_from_route(boost::shared_ptr< ARDOUR::Route >) const
Definition: editor.cc:5201
bool ruler_label_button_release(GdkEventButton *)
boost::shared_ptr< ARDOUR::AudioRegion > last_audition_region
Definition: editor.h:1974
void next_snap_choice_music_and_time()
void reset_controls_layout_height(int32_t height)
ArdourCanvas::Rectangle * transport_punch_range_rect
Definition: editor.h:1844
JoinObjectRangeState _join_object_range_state
Definition: editor.h:601
void paste(float times, bool from_context_menu=false)
Definition: editor_ops.cc:4580
void reset_x_origin(framepos_t)
Definition: editor.cc:4363
void crop_region_to(framepos_t start, framepos_t end)
Definition: editor_ops.cc:3229
void trim_to_region(bool forward)
Definition: editor_ops.cc:3730
bool decelerate_mouse_speed()
Gtk::Label meter_label
Definition: editor.h:980
Glib::RefPtr< Gtk::Action > xjadeo_zoom_100
Definition: editor.h:997
bool left_track_canvas(GdkEventCrossing *)
void step_edit_status_change(bool)
Definition: editor.cc:5492
void draw_metric_marks(const ARDOUR::Metrics &metrics)
Gtk::Layout controls_layout
Definition: editor.h:1056
void snap_type_selection_done(Editing::SnapType)
Definition: editor.cc:3627
void write_selection()
void split_regions_at(framepos_t, RegionSelection &)
Definition: editor_ops.cc:151
Glib::RefPtr< Gtk::ToggleAction > xjadeo_proc_action
Definition: editor.h:990
void refresh_location_display_internal(const ARDOUR::Locations::LocationList &)
void region_selection_changed()
gint bbt_nmarks
Definition: editor.h:952
std::list< VisualState * > undo_visual_stack
Definition: editor.h:567
virtual bool have_idled() const
Definition: editor.h:144
void track_canvas_viewport_size_allocated()
void draw_measures(ARDOUR::TempoMap::BBTPointList::const_iterator &begin, ARDOUR::TempoMap::BBTPointList::const_iterator &end)
void move_to_start()
Definition: editor_ops.cc:652
Gtk::MenuItem * region_edit_menu_split_multichannel_item
Definition: editor.h:743
Gtk::Label range_mark_label
Definition: editor.h:982
int scrubbing_direction
Definition: editor.h:1461
bool _last_region_menu_was_main
Definition: editor.h:1818
void remove_marker(ArdourCanvas::Item &, GdkEvent *)
bool mouse_select_button_release(GdkEventButton *)
Definition: editor.cc:3825
void invert_selection_in_track()
void refresh_location_display()
void setup_midi_toolbar()
Gtk::VPaned editor_summary_pane
Definition: editor.h:615
void toggle_marker_menu_lock()
void add_to_idle_resize(TimeAxisView *, int32_t)
Definition: editor.cc:5092
void add_region_copy_drag(ArdourCanvas::Item *, GdkEvent *, RegionView *)
void mouse_paste()
Definition: editor_ops.cc:4588
void location_flags_changed(ARDOUR::Location *)
void restore_ruler_visibility()
bool idle_drop_paths(std::vector< std::string > paths, framepos_t frame, double ypos, bool copy)
void commit_reversible_command()
Definition: editor.cc:3483
Gtk::HBox edit_controls_hbox
Definition: editor.h:1085
struct timeval last_event_time
Definition: editor.h:1488
void set_punch_range(framepos_t start, framepos_t end, std::string cmd)
Definition: editor.cc:4767
bool notebook_tab_clicked(GdkEventButton *, Gtk::Widget *)
Definition: editor.cc:5879
void sensitize_the_right_region_actions()
void clear_playlists(TimeAxisView *v)
Definition: editor.cc:4313
long select_range(framepos_t, framepos_t)
void set_selection_from_region()
ArdourButton tav_shrink_button
Definition: editor.h:1706
RulerType
Definition: editor.h:856
void audition_region_from_region_list()
Definition: editor.cc:5474
Gtk::Menu _note_context_menu
Definition: editor.h:765
void separate_region_from_selection()
Definition: editor_ops.cc:3073
void select_all_selectables_using_time_selection()
Gdk::Cursor * get_canvas_cursor() const
void set_video_timeline_locked(const bool)
void nudge_forward(bool next, bool force_playhead)
Definition: editor_ops.cc:368
MouseCursors * _cursors
Definition: editor.h:2209
void play_selection()
Definition: editor_ops.cc:2505
RegionSelection latest_regionviews
Definition: editor.h:702
void play_from_edit_point_and_return()
Definition: editor_ops.cc:2481
Gtk::Button automation_mode_button
Definition: editor.h:1740
void set_show_measures(bool yn)
Definition: editor.cc:3969
void cycle_zoom_focus()
Definition: editor.cc:3852
ArdourButton mouse_audition_button
Definition: editor.h:1727
void cursor_to_next_region_boundary(bool with_selection)
Definition: editor_ops.cc:932
bool within_track_canvas
Definition: editor.h:796
void set_mouse_mode(Editing::MouseMode, bool force=true)
void add_bus_context_items(Gtk::Menu_Helpers::MenuList &)
Definition: editor.cc:1978
LocationMarkerMap location_markers
Definition: editor.h:671
DragManager * _drags
Definition: editor.h:1481
gint minsec_nmarks
Definition: editor.h:916
void control_scroll(float)
Definition: editor.cc:1054
int check_whether_and_how_to_import(std::string, bool all_or_nothing=true)
std::list< VisualState * > redo_visual_stack
Definition: editor.h:568
void set_visible_track_count(int32_t)
Definition: editor.cc:3756
bool track_canvas_scroll(GdkEventScroll *event)
Editing::SnapMode _snap_mode
Definition: editor.h:1474
framecnt_t minsec_mark_interval
Definition: editor.h:914
std::map< ARDOUR::Location *, LocationMarkers * > LocationMarkerMap
Definition: editor.h:670
ArdourCanvas::Rectangle * range_marker_bar
Definition: editor.h:971
void track_canvas_viewport_allocate(Gtk::Allocation alloc)
void export_range()
void collect_new_region_view(RegionView *)
void apply_filter(ARDOUR::Filter &, std::string cmd, ProgressReporter *progress=0)
Definition: editor_ops.cc:5281
uint32_t location_range_color
Definition: editor.h:637
void marker_menu_hide()
boost::optional< int > pre_notebook_shrink_pane_width
Definition: editor.h:605
void build_region_boundary_cache()
Definition: editor_ops.cc:665
void set_tempo_from_region()
Definition: editor_ops.cc:6161
void marker_menu_set_from_selection(bool force_regions)
void select_all_selectables_using_cursor(EditorCursor *, bool)
void toggle_logo_visibility()
ArdourCanvas::Ruler * minsec_ruler
Definition: editor.h:962
void set_xjadeo_sensitive(bool onoff)
void selected_marker_to_next_region_boundary(bool with_selection)
Definition: editor_ops.cc:1122
Selection & get_cut_buffer() const
Definition: editor.h:246
void set_samples_ruler_scale(framepos_t, framepos_t)
Gtk::Notebook _the_notebook
Definition: editor.h:609
RegionPoint
Definition: types.h:369
void cancel_selection()
std::list< boost::shared_ptr< Route > > RouteList
Definition: types.h:532
void separate_regions_using_location(ARDOUR::Location &)
Definition: editor_ops.cc:3119
RegionView * entered_regionview
Definition: editor.h:2068
int64_t framepos_t
uint32_t location_punch_color
Definition: editor.h:639
void playhead_forward_to_grid()
Definition: editor_ops.cc:6734
bool _mouse_changed_selection
Definition: editor.h:721
void finish_import()
void set_loop_from_region(bool play)
Definition: editor_ops.cc:6050
Gtk::Menu * transport_marker_menu
Definition: editor.h:1674
void check_marker_label(Marker *)
ArdourCanvas::Container * transport_marker_group
Definition: editor.h:820
void set_zoom_preset(int64_t)
Definition: editor.cc:3744
gint timecode_mark_modulo
Definition: editor.h:930
void suspend_route_redisplay()
Definition: editor.cc:5232
void clear_playlist(boost::shared_ptr< ARDOUR::Playlist >)
Definition: editor_ops.cc:4822
RhythmFerret * rhythm_ferret
Definition: editor.h:2140
uint64_t microseconds_t
Definition: types.h:60
void tab_to_transient(bool forward)
Definition: editor_ops.cc:6654
void update_region_fade_visibility()
Definition: editor_ops.cc:5870
Gtkmm2ext::ActionMap editor_action_map
Definition: editor.h:1180
void toggle_ruler_video(bool onoff)
Definition: editor.h:1004
void start_resize_line_ops()
std::vector< boost::shared_ptr< Source > > SourceList
Definition: types.h:520
void hide_track_in_display(TimeAxisView *tv, bool apply_to_selection=false)
Definition: editor.cc:5372
void separate_region_from_loop()
Definition: editor_ops.cc:3110
static double timebar_height
Definition: editor.h:964
void do_layer_operation(LayerOperation)
Definition: editor_ops.cc:2597
double snap_threshold
Snap threshold in pixels.
Definition: editor.h:1477
void build_tempo_or_meter_marker_menu(bool)
Gtk::Menu * track_edit_playlist_submenu
Definition: editor.h:745
ARDOUR::Session * _session
void show_region_in_region_list()
Definition: editor.cc:5486
ArdourCanvas::ScrollGroup * h_scroll_group
Definition: editor.h:833
bool sync_track_view_list_and_routes()
Definition: editor.cc:5397
void set_video_timeline_height(const int)
Gtk::VBox toolbar_clock_vbox
Definition: editor.h:1716
void trim_region_to_loop()
Definition: editor_ops.cc:3656
void cursor_to_next_region_point(EditorCursor *, ARDOUR::RegionPoint)
Definition: editor_ops.cc:1012
void swap_visual_state()
Definition: editor.cc:4465
void mouse_add_new_loop(framepos_t)
int pitch_shift(RegionSelection &, float cents)
void play_edit_range()
Definition: editor_ops.cc:2779
void scroll_backward(float pages=0.8f)
Definition: editor_ops.cc:1347
bool canvas_frame_handle_event(GdkEvent *event, ArdourCanvas::Item *, RegionView *)
Glib::RefPtr< Gtk::RadioAction > edit_point_action(Editing::EditPoint)
void update_just_timecode()
uint32_t location_loop_color
Definition: editor.h:638
ArdourCanvas::Container * no_scroll_group
Definition: editor.h:840
bool get_smart_mode() const
Definition: editor.cc:847
void fill_xfade_menu(Gtk::Menu_Helpers::MenuList &items, bool start)
Definition: editor.cc:1432
void lock()
Definition: editor_ops.cc:7536
void select_all_within(framepos_t, framepos_t, double, double, TrackViewList const &, Selection::Operation, bool)
std::map< ARDOUR::FadeShape, Gtk::Image * > _fade_out_images
Definition: editor.h:2202
Glib::RefPtr< Gtk::ToggleAction > xjadeo_ontop_action
Definition: editor.h:991
void collect_and_select_new_region_view(RegionView *)
Gtk::HBox marker_box
Definition: editor.h:620
ArdourCanvas::Rectangle * meter_bar
Definition: editor.h:969
void cancel_visual_state_op(uint32_t n)
Definition: editor_ops.cc:7406
void prev_snap_choice()
Glib::RefPtr< Gtk::Action > selection_redo_action
Definition: editor.h:2095
void transform_regions(const RegionSelection &rs)
Definition: editor_ops.cc:5228
void do_timefx()
void ensure_visual_change_idle_handler()
Definition: editor.cc:4568
ArdourCanvas::ScrollGroup * hv_scroll_group
Definition: editor.h:829
void marker_menu_remove()
static const int32_t default_height
Definition: editor.h:2031
void control_vertical_zoom_in_selected()
Definition: editor.cc:980
Gtk::Widget * ruler_grabbed_widget
Definition: editor.h:883
void temporal_zoom_selection(bool both_axes=false)
Definition: editor_ops.cc:1892
void note_edit_done(int, EditNoteDialog *)
unsigned get_grid_beat_divisions(framepos_t position)
Definition: editor.cc:4064
Gtk::Menu track_selection_context_menu
Definition: editor.h:740
Gtk::HBox toplevel_hpacker
Definition: editor.h:1044
Gtk::Dialog * lock_dialog
Definition: editor.h:1486
void mapped_clear_playlist(RouteTimeAxisView &, uint32_t)
Definition: editor.cc:4335
void align_regions(ARDOUR::RegionPoint)
Definition: editor_ops.cc:3465
Gtk::Menu track_context_menu
Definition: editor.h:738
bool ignore_gui_changes
Definition: editor.h:1479
bool track_canvas_key_release(GdkEventKey *)
ArdourButton nudge_forward_button
Definition: editor.h:2035
Editing::MouseMode mouse_mode
Definition: editor.h:586
RegionView * clicked_regionview
Definition: editor.h:701
void reposition_and_zoom(framepos_t, double)
Definition: editor.cc:4391
void scroll_playhead(bool forward)
Definition: editor_ops.cc:1281
bool on_key_release_event(GdkEventKey *)
Definition: editor.cc:4347
BBTRulerScale
Definition: editor.h:937
sigc::connection step_edit_connection
Definition: editor.h:2183
ItemType item_type
Definition: editor.h:488
void edit_tempo_marker(TempoMarker &)
int write_audio_selection(TimeSelection &)
void build_new_transport_marker_menu()
void edit_control_point(ArdourCanvas::Item *)
bool autoscroll_horizontal_allowed
Definition: editor.h:1880
void keyboard_selection_begin()
Definition: editor_keys.cc:73
void marker_menu_play_range()
Command * apply_midi_note_edit_op_to_region(ARDOUR::MidiOperator &op, MidiRegionView &mrv)
Definition: editor_ops.cc:5087
void new_transport_marker_menu_popdown()
void snap_to(framepos_t &first, ARDOUR::RoundMode direction=ARDOUR::RoundNearest, bool for_mark=false)
Definition: editor.cc:2611
void external_audio_dialog()
bool _pending_locate_request
Definition: editor.h:2162
BBTRulerScale bbt_ruler_scale
Definition: editor.h:949
void start_visual_state_op(uint32_t n)
Definition: editor_ops.cc:7394
bool canvas_tempo_marker_event(GdkEvent *event, ArdourCanvas::Item *, TempoMarker *)
void reverse_selection()
Definition: editor_ops.cc:2429
void set_session_end_from_playhead()
Definition: editor_ops.cc:2142
void build_marker_menu(ARDOUR::Location *)
bool canvas_fade_out_handle_event(GdkEvent *event, ArdourCanvas::Item *, AudioRegionView *, bool trim=false)
boost::optional< framepos_t > _control_scroll_target
Definition: editor.h:551