#include "editor_items.h"
#include "region_selection.h"
#include "canvas.h"
-#include "window_proxy.h"
namespace Gnome {
namespace Canvas {
class ButtonJoiner;
class ControlPoint;
class DragManager;
+class EditNoteDialog;
+class EditorCursor;
+class EditorGroupTabs;
+class EditorLocations;
+class EditorRegions;
+class EditorRoutes;
+class EditorRouteGroups;
+class EditorSnapshots;
+class EditorSummary;
class GroupedButtons;
class GUIObjectState;
class Marker;
class MidiRegionView;
class MixerStrip;
+class MouseCursors;
class PlaylistSelector;
class PluginSelector;
+class ProgressReporter;
class RhythmFerret;
class Selection;
class SoundFileOmega;
class TimeAxisView;
class TimeFXDialog;
class TimeSelection;
-class EditorGroupTabs;
-class EditorRoutes;
-class EditorRouteGroups;
-class EditorRegions;
-class EditorLocations;
-class EditorSnapshots;
-class EditorSummary;
class RegionLayeringOrderEditor;
-class ProgressReporter;
-class EditorCursor;
-class MouseCursors;
class VerboseCursor;
-/* <CMT Additions> */
-class ImageFrameView;
-class ImageFrameTimeAxisView;
-class ImageFrameTimeAxis;
-class MarkerTimeAxis ;
-class MarkerView ;
-class ImageFrameSocketHandler ;
-class TimeAxisViewItem ;
-/* </CMT Additions> */
-
class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr
{
public:
void set_internal_edit (bool yn);
bool toggle_internal_editing_from_double_click (GdkEvent*);
-#ifdef WITH_CMT
- void add_imageframe_time_axis(const std::string & track_name, void*) ;
- void add_imageframe_marker_time_axis(const std::string & track_name, TimeAxisView* marked_track, void*) ;
- void connect_to_image_compositor() ;
- void scroll_timeaxis_to_imageframe_item(const TimeAxisViewItem* item) ;
- TimeAxisView* get_named_time_axis(const std::string & name) ;
-#endif /* WITH_CMT */
-
void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>);
void add_to_idle_resize (TimeAxisView*, int32_t);
ruler_time_range_marker = 7,
ruler_time_transport_marker = 8,
ruler_time_cd_marker = 9,
-#ifdef WITH_VIDEOTIMELINE
ruler_video_timeline = 10,
-#endif
};
static GtkCustomMetric ruler_metrics[4];
Gtk::Label transport_mark_label;
Gtk::Label cd_mark_label;
-#ifdef WITH_VIDEOTIMELINE
+ /* videtimline related actions */
ArdourCanvas::SimpleRect* videotl_bar;
Gtk::Label videotl_label;
ArdourCanvas::Group* videotl_bar_group;
ArdourCanvas::Group* videotl_group;
Glib::RefPtr<Gtk::ToggleAction> ruler_video_action;
Glib::RefPtr<Gtk::ToggleAction> xjadeo_proc_action;
+ Glib::RefPtr<Gtk::ToggleAction> xjadeo_ontop_action;
+ Glib::RefPtr<Gtk::ToggleAction> xjadeo_timecode_action;
+ Glib::RefPtr<Gtk::ToggleAction> xjadeo_frame_action;
+ Glib::RefPtr<Gtk::ToggleAction> xjadeo_osdbg_action;
+ Glib::RefPtr<Gtk::ToggleAction> xjadeo_fullscreen_action;
+ Glib::RefPtr<Gtk::ToggleAction> xjadeo_letterbox_action;
+ Glib::RefPtr<Gtk::Action> xjadeo_zoom_100;
void set_xjadeo_proc ();
void toggle_xjadeo_proc (int state=-1);
+ void set_close_video_sensitive (bool onoff);
void set_xjadeo_sensitive (bool onoff);
+ void set_xjadeo_viewoption (int);
+ void toggle_xjadeo_viewoption (int what, int state=-1);
void toggle_ruler_video (bool onoff) {ruler_video_action->set_active(onoff);}
int videotl_bar_height; /* in units of timebar_height; default: 4 */
int get_videotl_bar_height () const { return videotl_bar_height; }
- void export_video ();
+ void export_video (bool range = false);
void toggle_region_video_lock ();
-#endif
Gtk::VBox time_button_vbox;
Gtk::HBox time_button_hbox;
bool button_press_handler_1 (ArdourCanvas::Item *, GdkEvent *, ItemType);
bool button_press_handler_2 (ArdourCanvas::Item *, GdkEvent *, ItemType);
bool button_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
+ bool button_double_click_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
bool button_press_dispatch (GdkEventButton*);
bool button_release_dispatch (GdkEventButton*);
bool motion_handler (ArdourCanvas::Item*, GdkEvent*, bool from_autoscroll = false);
bool idle_drop_paths (std::vector<std::string> paths, framepos_t frame, double ypos, bool copy);
void drop_paths_part_two (const std::vector<std::string>& paths, framepos_t frame, double ypos, bool copy);
- int import_sndfiles (std::vector<std::string> paths, Editing::ImportMode mode, ARDOUR::SrcQuality, framepos_t& pos,
+ int import_sndfiles (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode,
+ ARDOUR::SrcQuality, framepos_t& pos,
int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool);
- int embed_sndfiles (std::vector<std::string> paths, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode,
+ 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>&);
- int add_sources (std::vector<std::string> paths, ARDOUR::SourceList& sources, framepos_t& pos, Editing::ImportMode,
+ int add_sources (std::vector<std::string> paths, ARDOUR::SourceList& sources, framepos_t& pos,
+ Editing::ImportDisposition, Editing::ImportMode,
int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool add_channel_suffix);
+
int finish_bringing_in_material (boost::shared_ptr<ARDOUR::Region> region, uint32_t, uint32_t, framepos_t& pos, Editing::ImportMode mode,
boost::shared_ptr<ARDOUR::Track>& existing_track);
bool canvas_range_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
bool canvas_transport_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
bool canvas_cd_marker_bar_event (GdkEvent* event, ArdourCanvas::Item*);
-#ifdef WITH_VIDEOTIMELINE
+
bool canvas_videotl_bar_event (GdkEvent* event, ArdourCanvas::Item*);
void update_video_timeline (bool flush = false);
void set_video_timeline_height (const int);
void toggle_video_timeline_locked ();
void set_video_timeline_locked (const bool);
void queue_visual_videotimeline_update ();
- void embed_audio_from_video (std::string);
-#endif
-
- bool canvas_imageframe_item_view_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameView*);
- bool canvas_imageframe_view_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameTimeAxis*);
- bool canvas_imageframe_start_handle_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameView*);
- bool canvas_imageframe_end_handle_event(GdkEvent* event, ArdourCanvas::Item*,ImageFrameView*);
- bool canvas_marker_time_axis_view_event(GdkEvent* event, ArdourCanvas::Item*,MarkerTimeAxis*);
- bool canvas_markerview_item_view_event(GdkEvent* event, ArdourCanvas::Item*,MarkerView*);
- bool canvas_markerview_start_handle_event(GdkEvent* event, ArdourCanvas::Item*,MarkerView*);
- bool canvas_markerview_end_handle_event(GdkEvent* event, ArdourCanvas::Item*,MarkerView*);
+ void embed_audio_from_video (std::string, framepos_t n = 0, bool lock_position_to_video = true);
PBD::Signal0<void> EditorFreeze;
PBD::Signal0<void> EditorThaw;
void edit_tempo_marker (ArdourCanvas::Item*);
void edit_meter_marker (ArdourCanvas::Item*);
void edit_control_point (ArdourCanvas::Item*);
- void edit_notes (std::set<Gnome::Canvas::CanvasNoteEvent *> const &);
+ void edit_notes (TimeAxisViewItem&);
void marker_menu_edit ();
void marker_menu_remove ();
void marker_menu_rename ();
+ void rename_marker (Marker *marker);
void toggle_marker_menu_lock ();
void toggle_marker_menu_glue ();
void marker_menu_hide ();
void nudge_track (bool use_edit_point, bool forwards);
-#ifdef WITH_CMT
- void handle_new_imageframe_time_axis_view(const std::string & track_name, void* src) ;
- void handle_new_imageframe_marker_time_axis_view(const std::string & track_name, TimeAxisView* marked_track) ;
-
- void start_imageframe_grab(ArdourCanvas::Item*, GdkEvent*) ;
- void start_markerview_grab(ArdourCanvas::Item*, GdkEvent*) ;
-
- void imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent*) ;
- void markerview_drag_motion_callback(ArdourCanvas::Item*, GdkEvent*) ;
- void timeaxis_item_drag_finished_callback(ArdourCanvas::Item*, GdkEvent*) ;
-
- gint canvas_imageframe_item_view_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
- gint canvas_imageframe_view_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameTimeAxis* ifta);
- gint canvas_imageframe_start_handle_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
- gint canvas_imageframe_end_handle_event(ArdourCanvas::Item* item, GdkEvent* event, ImageFrameView* ifv);
-
- gint canvas_marker_time_axis_view_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerTimeAxis* mta);
- gint canvas_markerview_item_view_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerView* mv);
- gint canvas_markerview_start_handle_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerView* mv);
- gint canvas_markerview_end_handle_event(ArdourCanvas::Item* item, GdkEvent* event, MarkerView* mv);
-
- void imageframe_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
- void imageframe_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
- void imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
- void imageframe_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
- void imageframe_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
- void imageframe_end_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
-
- void markerview_item_start_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
- void markerview_item_end_handle_op(ArdourCanvas::Item* item, GdkEvent* event) ;
- void markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
- void markerview_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
- void markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* event) ;
- void markerview_end_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* event) ;
-
- void popup_imageframe_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_frame) ;
- void popup_marker_time_axis_edit_menu(int button, int32_t time, ArdourCanvas::Item* ifv, bool with_frame) ;
-
- ImageFrameSocketHandler* image_socket_listener ;
-#endif
-
static const int32_t default_width = 995;
static const int32_t default_height = 765;
void get_regions_at (RegionSelection&, framepos_t where, const TrackViewList& ts) const;
void get_regions_after (RegionSelection&, framepos_t where, const TrackViewList& ts) const;
- RegionSelection get_regions_from_selection ();
RegionSelection get_regions_from_selection_and_edit_point ();
RegionSelection get_regions_from_selection_and_entered ();
bool _following_mixer_selection;
int time_fx (ARDOUR::RegionList&, float val, bool pitching);
-
+ void note_edit_done (int, EditNoteDialog*);
void toggle_sound_midi_notes ();
/** Flag for a bit of a hack wrt control point selection; see set_selected_control_point_from_click */
bool _control_point_toggled_on_press;
/** This is used by TimeAxisView to keep a track of the TimeAxisView that is currently being
- stepped in height using Shift-Scrollwheel. When a scroll event occurs, we do the step on
- this _stepping_axis_view if it is non-0 (and we set up this _stepping_axis_view with the
- TimeAxisView underneath the mouse if it is 0). Then Editor resets _stepping_axis_view when
- the shift key is released. In this (hacky) way, pushing shift and moving the scroll wheel
- will operate on the same track until shift is released (rather than skipping about to whatever
- happens to be underneath the mouse at the time).
+ stepped in height using ScrollZoomVerticalModifier+Scrollwheel. When a scroll event
+ occurs, we do the step on this _stepping_axis_view if it is non-0 (and we set up this
+ _stepping_axis_view with the TimeAxisView underneath the mouse if it is 0). Then Editor
+ resets _stepping_axis_view when the modifier key is released. In this (hacky) way,
+ pushing the modifier key and moving the scroll wheel will operate on the same track
+ until the key is released (rather than skipping about to whatever happens to be
+ underneath the mouse at the time).
*/
TimeAxisView* _stepping_axis_view;
- void shift_key_released ();
+ void zoom_vertical_modifier_released();
friend class Drag;
friend class RegionDrag;
friend class RegionCreateDrag;
friend class RegionMotionDrag;
friend class RegionInsertDrag;
-#ifdef WITH_VIDEOTIMELINE
friend class VideoTimeLineDrag;
-#endif
friend class EditorSummary;
friend class EditorGroupTabs;