support DnD in native/gtk-quartz implementation (note: multifile DnD requires a patch...
[ardour.git] / gtk2_ardour / editor.h
index f15513142e841d0bb1c7763641c75abf69f47e86..c5a99d44ca8e3b392e869096547c8aa96f50032b 100644 (file)
@@ -26,6 +26,8 @@
 #include <string>
 #include <sys/time.h>
 
+#include <boost/optional.hpp>
+
 #include <libgnomecanvasmm/canvas.h>
 #include <libgnomecanvasmm/group.h>
 #include <libgnomecanvasmm/line.h>
@@ -349,6 +351,9 @@ class Editor : public PublicEditor
        
        ARDOUR::Session     *session;
        bool                 constructed;
+  
+       // to keep track of the playhead position for control_scroll
+       boost::optional<nframes_t> _control_scroll_target;
 
        PlaylistSelector* _playlist_selector;
 
@@ -959,7 +964,11 @@ class Editor : public PublicEditor
 
        void bring_in_external_audio (Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t& pos, bool prompt);
        void do_import (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t&, bool);
+
+       void _do_embed (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t&, bool);
        void do_embed (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t&, bool);
+       bool idle_do_embed (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t&, bool);
+
        int  import_sndfile (vector<Glib::ustring> paths, Editing::ImportMode mode, ARDOUR::AudioTrack* track, nframes_t& pos);
        int  embed_sndfile (vector<Glib::ustring> paths, bool split, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode, 
                            ARDOUR::AudioTrack* track, nframes_t& pos, bool prompt);
@@ -1034,7 +1043,11 @@ class Editor : public PublicEditor
 
        void add_location_from_audio_region ();
        void add_location_from_selection ();
-       void set_route_loop_selection ();
+       void set_loop_from_selection (bool play);
+       void set_punch_from_selection ();
+
+       void set_loop_range (nframes_t start, nframes_t end, std::string cmd);
+       void set_punch_range (nframes_t start, nframes_t end, std::string cmd);
 
        void add_location_from_playhead_cursor ();