/*
- Copyright (C) 2000-2007 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
+ * Copyright (C) 2005-2018 Paul Davis <paul@linuxaudiosystems.com>
+ * Copyright (C) 2005 Karsten Wiese <fzuuzf@googlemail.com>
+ * Copyright (C) 2005 Taybin Rutkin <taybin@taybin.com>
+ * Copyright (C) 2006-2015 David Robillard <d@drobilla.net>
+ * Copyright (C) 2007-2012 Carl Hetherington <carl@carlh.net>
+ * Copyright (C) 2007-2016 Tim Mayberry <mojofunk@gmail.com>
+ * Copyright (C) 2013-2019 Robin Gareus <robin@gareus.org>
+ * Copyright (C) 2014-2017 Nick Mainsbridge <mainsbridge@gmail.com>
+ * Copyright (C) 2014-2018 Ben Loftis <ben@harrisonconsoles.com>
+ * Copyright (C) 2015 Colin Fletcher <colin.m.fletcher@googlemail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
#ifndef __gtk_ardour_public_editor_h__
#define __gtk_ardour_public_editor_h__
#include "temporal/beats.h"
-#include "evoral/Note.hpp"
+#include "evoral/Note.h"
#include "ardour/session_handle.h"
class Editor;
class ArdourMarker;
class MeterMarker;
+class MixerStrip;
class MouseCursors;
class PlaylistSelector;
class PluginSelector;
/** @return Whether the current mouse mode is an "internal" editing mode. */
virtual bool internal_editing() const = 0;
- /** Possibly start the audition of a region. If @param r is 0, or not an AudioRegion
- * any current audition is cancelled. If we are currently auditioning @param r,
- * the audition will be cancelled. Otherwise an audition of @param r will start.
- * \param r Region to consider.
+ /** Possibly start the audition of a region.
+ *
+ * If \p r is 0, or not an AudioRegion any current audition is cancelled.
+ * If we are currently auditioning \p r , the audition will be cancelled.
+ * Otherwise an audition of \p r will start.
+ *
+ * @param r Region to consider auditioning
*/
virtual void consider_auditioning (boost::shared_ptr<ARDOUR::Region> r) = 0;
virtual void clear_playlists (TimeAxisView*) = 0;
virtual void select_all_tracks () = 0;
virtual void deselect_all () = 0;
+ virtual void invert_selection () = 0;
virtual void set_selected_track (TimeAxisView&, Selection::Operation op = Selection::Set, bool no_remove = false) = 0;
virtual void set_selected_mixer_strip (TimeAxisView&) = 0;
virtual void hide_track_in_display (TimeAxisView* tv, bool apply_to_selection = false) = 0;
virtual bool scroll_down_one_track (bool skip_child_views = false) = 0;
virtual bool scroll_up_one_track (bool skip_child_views = false) = 0;
virtual void select_topmost_track () = 0;
+ virtual void cleanup_regions () = 0;
virtual void prepare_for_cleanup () = 0;
virtual void finish_cleanup () = 0;
virtual void reset_x_origin (samplepos_t sample) = 0;
virtual bool canvas_fade_out_handle_event (GdkEvent* event, ArdourCanvas::Item*, AudioRegionView*, bool) = 0;
virtual bool canvas_region_view_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
virtual bool canvas_wave_view_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
- virtual bool canvas_sample_handle_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
+ virtual bool canvas_frame_handle_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
virtual bool canvas_region_view_name_highlight_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
virtual bool canvas_region_view_name_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
virtual bool canvas_feature_line_event (GdkEvent* event, ArdourCanvas::Item*, RegionView*) = 0;
virtual TrackViewList axis_views_from_routes (boost::shared_ptr<ARDOUR::RouteList>) const = 0;
virtual TrackViewList const & get_track_views () const = 0;
+ virtual MixerStrip* get_current_mixer_strip () const = 0;
+
virtual DragManager* drags () const = 0;
+ virtual bool drag_active () const = 0;
+ virtual bool preview_video_drag_active () const = 0;
virtual void maybe_autoscroll (bool, bool, bool from_headers) = 0;
virtual void stop_canvas_autoscroll () = 0;
virtual bool autoscroll_active() const = 0;
virtual void access_action (const std::string&, const std::string&) = 0;
virtual void set_toggleaction (const std::string&, const std::string&, bool) = 0;
- virtual MouseCursors const * cursors () const = 0;
- virtual VerboseCursor * verbose_cursor () const = 0;
+ virtual MouseCursors const* cursors () const = 0;
+ virtual VerboseCursor* verbose_cursor () const = 0;
virtual bool get_smart_mode () const = 0;
virtual void get_pointer_position (double &, double &) const = 0;
- virtual ARDOUR::Location* find_location_from_marker (ArdourMarker *, bool &) const = 0;
- virtual ArdourMarker* find_marker_from_location_id (PBD::ID const &, bool) const = 0;
+ virtual ARDOUR::Location* find_location_from_marker (ArdourMarker*, bool&) const = 0;
+ virtual ArdourMarker* find_marker_from_location_id (PBD::ID const&, bool) const = 0;
virtual void snap_to_with_modifier (ARDOUR::MusicSample& first,
- GdkEvent const * ev,
- ARDOUR::RoundMode direction = ARDOUR::RoundNearest,
- ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual) = 0;
+ GdkEvent const* ev,
+ ARDOUR::RoundMode direction = ARDOUR::RoundNearest,
+ ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual) = 0;
virtual void set_snapped_cursor_position (samplepos_t pos) = 0;