class TimeFXDialog;
class TimeSelection;
class TrackSelection;
+class EditorGroupTabs;
/* <CMT Additions> */
class ImageFrameView;
TimeAxisView* get_named_time_axis(const std::string & name) ;
void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
- void add_to_idle_resize (TimeAxisView*, uint32_t);
+ void add_to_idle_resize (TimeAxisView*, int32_t);
RouteTimeAxisView* get_route_view_by_id (PBD::ID& id);
void toggle_zero_line_visibility ();
void toggle_waveforms_while_recording ();
void set_summary ();
+ void set_group_tabs ();
void toggle_measure_visibility ();
void toggle_logo_visibility ();
void goto_visual_state (uint32_t);
void save_visual_state (uint32_t);
- void queue_draw_resize_line (int at);
- void start_resize_line_ops ();
- void end_resize_line_ops ();
+ void update_rec_display ();
protected:
void map_transport_state ();
void map_position_change (nframes64_t);
void on_realize();
- bool on_expose_event (GdkEventExpose*);
private:
Gtk::VBox global_vpacker;
Gtk::VBox vpacker;
- bool need_resize_line;
- int resize_line_y;
- int old_resize_line_y;
-
Gdk::Cursor* current_canvas_cursor;
void set_canvas_cursor ();
Gdk::Cursor* which_grabber_cursor ();
/* track views */
TrackViewList track_views;
std::pair<TimeAxisView*, ARDOUR::layer_t> trackview_by_y_position (double);
+ TrackSelection axis_views_from_routes (std::list<ARDOUR::Route *>) const;
static Gdk::Cursor* cross_hair_cursor;
static Gdk::Cursor* trimmer_cursor;
void reverse_region ();
void strip_region_silence ();
void normalize_region ();
+ double _last_normalization_value;
void denormalize_region ();
void adjust_region_scale_amplitude (bool up);
void quantize_region ();
Glib::RefPtr<Gtk::RadioAction> zoom_focus_action (Editing::ZoomFocus);
Gtk::HBox zoom_box;
+ Gtk::VBox zoom_vbox;
void zoom_adjustment_changed();
void reposition_zoom_rect (nframes64_t start, nframes64_t end);
/* diskstream/route display management */
+ Glib::RefPtr<Gdk::Pixbuf> rec_enabled_icon;
+ Glib::RefPtr<Gdk::Pixbuf> rec_disabled_icon;
struct RouteDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
RouteDisplayModelColumns() {
add (text);
add (visible);
+ add (rec_enabled);
add (temporary_visible);
+ add (is_track);
add (tv);
add (route);
}
Gtk::TreeModelColumn<Glib::ustring> text;
Gtk::TreeModelColumn<bool> visible;
+ Gtk::TreeModelColumn<bool> rec_enabled;
Gtk::TreeModelColumn<bool> temporary_visible;
+ Gtk::TreeModelColumn<bool> is_track;
Gtk::TreeModelColumn<TimeAxisView*> tv;
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Route> > route;
};
+ void on_tv_rec_enable_toggled(const Glib::ustring& path_string);
+
RouteDisplayModelColumns route_display_columns;
Glib::RefPtr<Gtk::ListStore> route_display_model;
Glib::RefPtr<Gtk::TreeSelection> route_display_selection;
struct GroupListModelColumns : public Gtk::TreeModel::ColumnRecord {
GroupListModelColumns () {
- add (is_active);
add (is_visible);
add (text);
add (routegroup);
}
- Gtk::TreeModelColumn<bool> is_active;
Gtk::TreeModelColumn<bool> is_visible;
Gtk::TreeModelColumn<std::string> text;
Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
Glib::RefPtr<Gtk::ListStore> group_model;
Glib::RefPtr<Gtk::TreeSelection> group_selection;
- Gtk::TreeView edit_group_display;
- Gtk::ScrolledWindow edit_group_display_scroller;
- Gtk::Menu* edit_group_list_menu;
-
- void build_edit_group_list_menu ();
- void activate_all_edit_groups ();
- void disable_all_edit_groups ();
-
- bool in_edit_group_row_change;
- void edit_group_row_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
- void edit_group_name_edit (const Glib::ustring&, const Glib::ustring&);
- void new_edit_group ();
- void edit_group_list_button_clicked ();
- gint edit_group_list_button_press_event (GdkEventButton* ev);
- void add_edit_group (ARDOUR::RouteGroup* group);
- void remove_selected_edit_group ();
- void edit_groups_changed ();
+ Gtk::TreeView route_group_display;
+ Gtk::ScrolledWindow route_group_display_scroller;
+ Gtk::Menu* route_group_list_menu;
+
+ void build_route_group_list_menu (ARDOUR::RouteGroup *);
+ void activate_all_route_groups ();
+ void disable_all_route_groups ();
+
+ bool in_route_group_row_change;
+ void route_group_row_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
+ void route_group_name_edit (const Glib::ustring&, const Glib::ustring&);
+ void new_route_group ();
+ void new_route_group_from_selection ();
+ void new_route_group_from_rec_enabled ();
+ void new_route_group_from_soloed ();
+ void edit_route_group (ARDOUR::RouteGroup *);
+ void fit_route_group (ARDOUR::RouteGroup *);
+ void route_group_list_button_clicked ();
+ gint route_group_list_button_press_event (GdkEventButton* ev);
+ void add_route_group (ARDOUR::RouteGroup* group);
+ void remove_selected_route_group ();
+ void route_groups_changed ();
void group_flags_changed (void*, ARDOUR::RouteGroup*);
Gtk::VBox list_vpacker;
void freeze_route ();
void unfreeze_route ();
- /* edit-group solo + mute */
+ /* route-group solo + mute */
- void set_edit_group_solo (ARDOUR::Route&, bool);
- void set_edit_group_mute (ARDOUR::Route&, bool);
+ void set_route_group_solo (ARDOUR::Route&, bool);
+ void set_route_group_mute (ARDOUR::Route&, bool);
/* duplication */
BundleManager* _bundle_manager;
GlobalPortMatrixWindow* _global_port_matrix[ARDOUR::DataType::num_types];
- void fit_tracks ();
+ void fit_tracks (TrackSelection &);
+ void fit_selected_tracks ();
void set_track_height (uint32_t h);
void remove_tracks ();
bool _have_idled;
int resize_idle_id;
- int32_t resize_idle_target;
bool idle_resize();
friend gboolean _idle_resize (gpointer);
- std::vector<TimeAxisView*> pending_resizes;
+ int32_t _pending_resize_amount;
+ TimeAxisView* _pending_resize_view;
void visible_order_range (int*, int*) const;
void update_canvas_now ();
void streamview_height_changed ();
+ EditorGroupTabs* _group_tabs;
+
+ void set_route_group_activation (ARDOUR::RouteGroup *, bool);
+
friend class Drag;
friend class RegionDrag;
friend class RegionMoveDrag;
friend class RegionInsertDrag;
friend class EditorSummary;
+ friend class EditorGroupTabs;
};
#endif /* __ardour_editor_h__ */