properly retain LV2PluginInfo
[ardour.git] / libs / ardour / ardour / session.h
index a7ca2d00eec719a0384869e7ae9cfc504749e18e..e327a9c1134fddd4a1875e84b9d40c97e8dde116 100644 (file)
@@ -196,10 +196,15 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        std::string peak_path (std::string) const;
 
        std::string peak_path_from_audio_path (std::string) const;
-       std::string new_audio_source_name (const std::string&, uint32_t nchans, uint32_t chan, bool destructive);
-       std::string new_midi_source_name (const std::string&);
-       std::string new_source_path_from_name (DataType type, const std::string&);
+       bool audio_source_name_is_unique (const std::string& name, uint32_t chan);
+       std::string format_audio_source_name (const std::string& legalized_base, uint32_t nchan, uint32_t chan, bool destructive, bool take_required, uint32_t cnt, bool related_exists);
+       std::string new_audio_source_path_for_embedded (const std::string& existing_path);
+       std::string new_audio_source_path (const std::string&, uint32_t nchans, uint32_t chan, bool destructive, bool take_required);
+       std::string new_midi_source_path (const std::string&);
         RouteList new_route_from_template (uint32_t how_many, const std::string& template_path, const std::string& name);
+       std::vector<std::string> get_paths_for_new_sources (bool allow_replacing, const std::string& import_file_path, uint32_t channels);
+
+       int bring_all_sources_into_session (boost::function<void(uint32_t,uint32_t,std::string)> callback);
 
        void process (pframes_t nframes);
 
@@ -225,8 +230,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
                return routes.reader ();
        }
 
+       boost::shared_ptr<RouteList> get_tracks() const;
        boost::shared_ptr<RouteList> get_routes_with_internal_returns() const;
-
        boost::shared_ptr<RouteList> get_routes_with_regions_at (framepos_t const) const;
 
        uint32_t nroutes() const { return routes.reader()->size(); }
@@ -500,8 +505,10 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        /* Time */
 
        framepos_t transport_frame () const {return _transport_frame; }
+       framepos_t record_location () const {return _last_record_location; }
        framepos_t audible_frame () const;
        framepos_t requested_return_frame() const { return _requested_return_frame; }
+       void set_requested_return_frame(framepos_t return_to);
 
        enum PullupFormat {
                pullup_Plus4Plus1,
@@ -549,8 +556,6 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
 
        boost::shared_ptr<Region> find_whole_file_parent (boost::shared_ptr<Region const>) const;
 
-       std::string path_from_region_name (DataType type, std::string name, std::string identifier);
-
        boost::shared_ptr<Region>      XMLRegionFactory (const XMLNode&, bool full);
        boost::shared_ptr<AudioRegion> XMLAudioRegionFactory (const XMLNode&, bool full);
        boost::shared_ptr<MidiRegion>  XMLMidiRegionFactory (const XMLNode&, bool full);
@@ -765,6 +770,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        /* ranges */
 
        void request_play_range (std::list<AudioRange>*, bool leave_rolling = false);
+       void request_cancel_play_range ();
        bool get_play_range () const { return _play_range; }
 
        void maybe_update_session_range (framepos_t, framepos_t);
@@ -863,6 +869,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
 
        std::vector<std::string> source_search_path(DataType) const;
        void ensure_search_path_includes (const std::string& path, DataType type);
+       void remove_dir_from_search_path (const std::string& path, DataType type);
 
        std::list<std::string> unknown_processors () const;
 
@@ -1120,8 +1127,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        friend class    StateProtector;
        gint            _suspend_save; /* atomic */
        volatile bool   _save_queued;
+       Glib::Threads::Mutex save_state_lock;
 
-       void     auto_save();
        int      load_options (const XMLNode&);
        int      load_state (std::string snapshot_name);
 
@@ -1485,7 +1492,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
 
        bool no_questions_about_missing_files;
 
-       std::string get_best_session_directory_for_new_source ();
+       std::string get_best_session_directory_for_new_audio ();
 
        mutable gint _playback_load;
        mutable gint _capture_load;