#include "editor_items.h"
#include "region_selection.h"
#include "canvas.h"
-#include "time_axis_view.h"
#include "draginfo.h"
-#include "tempo_lines.h"
namespace Gtkmm2ext {
class TearOff;
class Marker;
class GroupedButtons;
class AutomationLine;
-class UIExportSpecification;
-class ExportDialog;
class Selection;
+class TempoLines;
class TimeSelection;
class TrackSelection;
class AutomationSelection;
public:
Editor ();
~Editor ();
-
+
void connect_to_session (ARDOUR::Session *);
ARDOUR::Session* current_session() const { return session; }
void first_idle ();
}
gulong frame_to_pixel (nframes64_t frame) const {
- return (gulong) rint ((frame / (frames_per_unit * GNOME_CANVAS(track_canvas->gobj())->pixels_per_unit)));
+ return (gulong) rint ((frame / (frames_per_unit * GNOME_CANVAS(track_canvas->gobj())->pixels_per_unit)));
}
void flush_canvas ();
void set_show_measures (bool yn);
bool show_measures () const { return _show_measures; }
- bool initial_ruler_update_required;
#ifdef FFT_ANALYSIS
/* analysis window */
#endif
/* export */
-
- /* these initiate export ... */
- void export_session();
- void export_selection();
-
+ void export_audio ();
+ void export_selection ();
+ void export_range ();
+ void export_region ();
void add_toplevel_controls (Gtk::Container&);
Gtk::HBox& get_status_bar_packer() { return status_bar_hpacker; }
void set_selected_track (TimeAxisView&, Selection::Operation op = Selection::Set, bool no_remove=false);
void select_all_tracks ();
+ int get_regionview_count_from_region_list (boost::shared_ptr<ARDOUR::Region> region);
+
bool set_selected_control_point_from_click (Selection::Operation op = Selection::Set, bool no_remove=false);
void set_selected_track_from_click (bool press, Selection::Operation op = Selection::Set, bool no_remove=false);
void set_selected_track_as_side_effect (bool force = false);
/** The group containing all items that require horizontal scrolling. */
ArdourCanvas::Group* _master_group;
- /** The group containiner marker bars */
- ArdourCanvas::Group* _bar_group;
-
/* The group containing all trackviews. Only scrolled vertically. */
ArdourCanvas::Group* _trackview_group;
Gtk::Layout controls_layout;
bool control_layout_scroll (GdkEventScroll* ev);
void controls_layout_size_request (Gtk::Requisition*);
+ sigc::connection controls_layout_size_request_connection;
Gtk::HScrollbar edit_hscrollbar;
bool _dragging_hscrollbar;
struct RegionListDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
RegionListDisplayModelColumns() {
- add (name);
+ add (name);
add (region);
add (color_);
+ add (start);
+ add (end);
+ add (length);
+ add (sync);
+ add (fadein);
+ add (fadeout);
+ add (locked);
+ add (glued);
+ add (muted);
+ add (opaque);
+ add (used);
+ add (path);
}
Gtk::TreeModelColumn<Glib::ustring> name;
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Region> > region;
Gtk::TreeModelColumn<Gdk::Color> color_;
+ Gtk::TreeModelColumn<Glib::ustring> start;
+ Gtk::TreeModelColumn<Glib::ustring> end;
+ Gtk::TreeModelColumn<Glib::ustring> length;
+ Gtk::TreeModelColumn<Glib::ustring> sync;
+ Gtk::TreeModelColumn<Glib::ustring> fadein;
+ Gtk::TreeModelColumn<Glib::ustring> fadeout;
+ Gtk::TreeModelColumn<bool> locked;
+ Gtk::TreeModelColumn<bool> glued;
+ Gtk::TreeModelColumn<bool> muted;
+ Gtk::TreeModelColumn<bool> opaque;
+ Gtk::TreeModelColumn<Glib::ustring> used;
+ Gtk::TreeModelColumn<Glib::ustring> path;
};
RegionListDisplayModelColumns region_list_columns;
void add_regions_to_region_display (std::vector<boost::weak_ptr<ARDOUR::Region> > & );
void region_hidden (boost::shared_ptr<ARDOUR::Region>);
void redisplay_regions ();
+ void populate_row (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &);
+ void update_region_row (boost::shared_ptr<ARDOUR::Region>);
+ bool update_region_subrows (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int);
bool no_region_list_redisplay;
void insert_into_tmp_regionlist(boost::shared_ptr<ARDOUR::Region>);
void add_external_audio_action (Editing::ImportMode);
void external_audio_dialog ();
+ void session_import_dialog ();
int check_whether_and_how_to_import(string, bool all_or_nothing = true);
bool check_multichannel_status (const std::vector<Glib::ustring>& paths);
bool track_canvas_motion_notify_event (GdkEventMotion* event);
Gtk::Allocation canvas_allocation;
- bool canvas_idle_queued;
void track_canvas_allocate (Gtk::Allocation alloc);
bool track_canvas_size_allocated ();
ARDOUR::TempoMap::BBTPointList *current_bbt_points;
- typedef vector<ArdourCanvas::SimpleLine*> TimeLineList;
- TimeLineList free_measure_lines;
- TimeLineList used_measure_lines;
+ TempoLines* tempo_lines;
ArdourCanvas::Group* time_line_group;
- ArdourCanvas::SimpleLine* get_time_line ();
void hide_measures ();
void draw_measures ();
void marker_menu_set_from_playhead ();
void marker_menu_set_from_selection ();
void marker_menu_range_to_next ();
- void marker_menu_export_range ();
void new_transport_marker_menu_set_loop ();
void new_transport_marker_menu_set_punch ();
void update_loop_range_view (bool visibility=false);
void draw_metric_marks (const ARDOUR::Metrics& metrics);
void compute_current_bbt_points (nframes_t left, nframes_t right);
- int tempo_map_change_idle_handler_id;
void tempo_map_changed (ARDOUR::Change);
void redisplay_tempo (bool immediate_redraw);
/* audio export */
- ExportDialog *export_dialog;
- ExportDialog *export_range_markers_dialog;
-
- void export_range (nframes64_t start, nframes64_t end);
- void export_range_markers ();
-
int write_region_selection(RegionSelection&);
bool write_region (string path, boost::shared_ptr<ARDOUR::AudioRegion>);
- void export_region ();
void bounce_region_selection ();
void bounce_range_selection (bool replace);
void external_edit_region ();