Fix inconsistent session-check
[ardour.git] / gtk2_ardour / editor.h
index 947985b40edf9bb348c1e1874dac721a58f70aca..b0ba469f0701435b74c463abacf02db1b0927ea7 100644 (file)
@@ -61,6 +61,8 @@
 #include "selection_memento.h"
 #include "tempo_curve.h"
 
+#include "ptformat/ptfformat.h"
+
 namespace Gtkmm2ext {
        class Bindings;
 }
@@ -454,15 +456,13 @@ public:
 
        void snap_to (ARDOUR::MusicSample& first,
                      ARDOUR::RoundMode   direction = ARDOUR::RoundNearest,
-                     ARDOUR::SnapPref    pref = ARDOUR::SnapToAny,
-                     bool                for_mark  = false,
+                     ARDOUR::SnapPref    pref = ARDOUR::SnapToAny_Visual,
                      bool                ensure_snap = false);
 
        void snap_to_with_modifier (ARDOUR::MusicSample& first,
                                    GdkEvent const *    ev,
                                    ARDOUR::RoundMode   direction = ARDOUR::RoundNearest,
-                                   ARDOUR::SnapPref    pref = ARDOUR::SnapToAny,
-                                   bool                for_mark  = false);
+                                   ARDOUR::SnapPref    pref = ARDOUR::SnapToAny_Visual);
 
        void set_snapped_cursor_position (samplepos_t pos);
 
@@ -542,7 +542,7 @@ public:
 
        /* editing operations that need to be public */
        void mouse_add_new_marker (samplepos_t where, bool is_cd=false);
-       void split_regions_at (ARDOUR::MusicSample, RegionSelection&, bool snap = true);
+       void split_regions_at (ARDOUR::MusicSample, RegionSelection&);
        void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
        RegionSelection get_regions_from_selection_and_mouse (samplepos_t);
 
@@ -637,7 +637,6 @@ private:
        ArdourWidgets::VPane editor_summary_pane;
 
        Gtk::EventBox meter_base;
-       Gtk::HBox     meter_box;
        Gtk::EventBox marker_base;
        Gtk::HBox     marker_box;
        Gtk::VBox     scrollers_rulers_markers_box;
@@ -918,10 +917,9 @@ private:
        bool ruler_label_button_release (GdkEventButton*);
        void store_ruler_visibility ();
        void restore_ruler_visibility ();
+       void show_rulers_for_grid ();
 
-
-
-               enum MinsecRulerScale {
+       enum MinsecRulerScale {
                minsec_show_msecs,
                minsec_show_seconds,
                minsec_show_minutes,
@@ -960,10 +958,10 @@ private:
                bbt_show_16,
                bbt_show_4,
                bbt_show_1,
-               bbt_show_beats,
-               bbt_show_ticks,
-               bbt_show_ticks_detail,
-               bbt_show_ticks_super_detail
+               bbt_show_quarters,
+               bbt_show_eighths,
+               bbt_show_sixteenths,
+               bbt_show_thirtyseconds
        };
 
        BBTRulerScale bbt_ruler_scale;
@@ -1239,7 +1237,7 @@ private:
        void toggle_mute ();
        void toggle_region_lock_style ();
 
-       void play_solo_selection( bool restart );
+       void play_solo_selection (bool restart);
 
        enum LayerOperation {
                Raise,
@@ -1350,18 +1348,6 @@ private:
 
        void insert_region_list_selection (float times);
 
-       /* PT import */
-       void external_pt_dialog ();
-       typedef struct ptflookup {
-               uint16_t index1;
-               uint16_t index2;
-               PBD::ID  id;
-
-               bool operator ==(const struct ptflookup& other) {
-                       return (this->index1 == other.index1);
-               }
-       } ptflookup_t;
-
        /* import & embed */
 
        void add_external_audio_action (Editing::ImportMode);
@@ -1431,6 +1417,13 @@ private:
        void external_audio_dialog ();
        void session_import_dialog ();
 
+       /* PT import specific */
+       void external_pt_dialog ();
+       ARDOUR::ImportStatus import_pt_status;
+       static void *_import_pt_thread (void *);
+       void* import_pt_thread ();
+       PTFFormat import_ptf;
+
        /* import specific info */
 
        struct EditorImportStatus : public ARDOUR::ImportStatus {
@@ -1825,6 +1818,9 @@ private:
 
        Gtk::HBox snap_box;
 
+       Gtk::HBox ebox_hpacker;
+       Gtk::VBox ebox_vpacker;
+
        Gtk::HBox _box;
 
        std::vector<std::string> grid_type_strings;
@@ -2187,18 +2183,33 @@ private:
        void select_next_stripable (bool routes_only = true);
        void select_prev_stripable (bool routes_only = true);
 
-       samplepos_t snap_to_grid (      std::vector<ArdourCanvas::Ruler::Mark>  marks, 
-                                    samplepos_t                             presnap,
-                                    ARDOUR::RoundMode                       direction = ARDOUR::RoundNearest);
+       ARDOUR::MusicSample snap_to_minsec (ARDOUR::MusicSample start,
+                                           ARDOUR::RoundMode   direction,
+                                           ARDOUR::SnapPref    gpref);
+
+       ARDOUR::MusicSample snap_to_cd_frames (ARDOUR::MusicSample start,
+                                              ARDOUR::RoundMode   direction,
+                                              ARDOUR::SnapPref    gpref);
+
+       ARDOUR::MusicSample snap_to_bbt (ARDOUR::MusicSample start,
+                                        ARDOUR::RoundMode   direction,
+                                        ARDOUR::SnapPref    gpref);
+
+       ARDOUR::MusicSample snap_to_timecode (ARDOUR::MusicSample start,
+                                             ARDOUR::RoundMode   direction,
+                                             ARDOUR::SnapPref    gpref);
+
+       ARDOUR::MusicSample snap_to_grid (ARDOUR::MusicSample start,
+                                         ARDOUR::RoundMode   direction,
+                                         ARDOUR::SnapPref    gpref);
 
        void snap_to_internal (ARDOUR::MusicSample& first,
                               ARDOUR::RoundMode   direction = ARDOUR::RoundNearest,
-                              ARDOUR::SnapPref    gpref = ARDOUR::SnapToAny,
-                              bool                for_mark  = false,
+                              ARDOUR::SnapPref    gpref = ARDOUR::SnapToAny_Visual,
                               bool                ensure_snap = false);
 
-       samplepos_t marker_snap_to_internal (samplepos_t        presnap,
-                                              ARDOUR::RoundMode   direction = ARDOUR::RoundNearest);
+       samplepos_t snap_to_marker (samplepos_t        presnap,
+                                   ARDOUR::RoundMode   direction = ARDOUR::RoundNearest);
 
        RhythmFerret* rhythm_ferret;
 
@@ -2307,8 +2318,6 @@ private:
        void toggle_reg_sens (Glib::RefPtr<Gtk::ActionGroup> group, char const * name, char const * label, sigc::slot<void> slot);
        void radio_reg_sens (Glib::RefPtr<Gtk::ActionGroup> action_group, Gtk::RadioAction::Group& radio_group, char const * name, char const * label, sigc::slot<void> slot);
 
-       Gtkmm2ext::ActionMap myactions;
-
        friend class Drag;
        friend class RegionCutDrag;
        friend class RegionDrag;