From 5e431d1d5806e8f617b9bfa10c5c8766e0b1a4ce Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 2 Mar 2011 17:05:16 +0000 Subject: remove entire "stub" file concept; open new audio and MIDI files on demand (at first write); could be a few gotchas with some corner case scenarios, but apparently works OK git-svn-id: svn://localhost/ardour2/branches/3.0@9038 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/directory_names.h | 1 - libs/ardour/ardour/file_source.h | 9 ++------- libs/ardour/ardour/midi_source.h | 2 +- libs/ardour/ardour/session.h | 7 +++---- libs/ardour/ardour/session_directory.h | 18 ------------------ libs/ardour/ardour/smf_source.h | 4 +++- 6 files changed, 9 insertions(+), 32 deletions(-) (limited to 'libs/ardour/ardour') diff --git a/libs/ardour/ardour/directory_names.h b/libs/ardour/ardour/directory_names.h index 0d330cd5a5..db87d347aa 100644 --- a/libs/ardour/ardour/directory_names.h +++ b/libs/ardour/ardour/directory_names.h @@ -19,7 +19,6 @@ extern const char* const templates_dir_name; extern const char* const route_templates_dir_name; extern const char* const surfaces_dir_name; extern const char* const user_config_dir_name; -extern const char* const stub_dir_name; extern const char* const panner_dir_name; }; diff --git a/libs/ardour/ardour/file_source.h b/libs/ardour/ardour/file_source.h index 23b8b8f8c8..01fa6adb74 100644 --- a/libs/ardour/ardour/file_source.h +++ b/libs/ardour/ardour/file_source.h @@ -48,12 +48,6 @@ public: const std::string& path() const { return _path; } - int unstubify (); - void stubify (); - bool is_stub () const; - - static bool is_stub_path (const std::string& path); - virtual bool safe_file_extension (const std::string& path) const = 0; int move_to_trash (const std::string& trash_dir_name); @@ -104,7 +98,8 @@ protected: uint16_t _channel; bool _within_session; std::string _origin; - + bool _open; + void prevent_deletion (); }; diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h index 4cfba10930..a1738a2aa9 100644 --- a/libs/ardour/ardour/midi_source.h +++ b/libs/ardour/ardour/midi_source.h @@ -78,7 +78,7 @@ class MidiSource : virtual public Source, public boost::enable_shared_from_this< virtual framecnt_t length (framepos_t pos) const; virtual void update_length (framepos_t pos, framecnt_t cnt); - virtual void mark_streaming_midi_write_started (NoteMode mode, framepos_t start_time); + virtual void mark_streaming_midi_write_started (NoteMode mode); virtual void mark_streaming_write_started (); virtual void mark_streaming_write_completed (); void mark_write_starting_now (); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index bf3df2f0a8..c7a72a4e63 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -187,7 +187,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi 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 as_stub = false); + std::string new_source_path_from_name (DataType type, const std::string&); RouteList new_route_from_template (uint32_t how_many, const std::string& template_path); void process (pframes_t nframes); @@ -543,10 +543,10 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi static PBD::Signal0 AskAboutPendingState; boost::shared_ptr create_audio_source_for_session ( - size_t, std::string const &, uint32_t, bool destructive, bool as_stub = false); + size_t, std::string const &, uint32_t, bool destructive); boost::shared_ptr create_midi_source_for_session ( - Track*, std::string const &, bool as_stub = false); + Track*, std::string const &); boost::shared_ptr source_by_id (const PBD::ID&); boost::shared_ptr source_by_path_and_channel (const std::string&, uint16_t); @@ -1472,7 +1472,6 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi void add_session_range_location (framepos_t, framepos_t); void setup_midi_machine_control (); - void cleanup_stubfiles (); void route_order_key_changed (); diff --git a/libs/ardour/ardour/session_directory.h b/libs/ardour/ardour/session_directory.h index b7de1c8f0f..49ef879ea1 100644 --- a/libs/ardour/ardour/session_directory.h +++ b/libs/ardour/ardour/session_directory.h @@ -51,17 +51,6 @@ public: */ const PBD::sys::path sound_path () const; - /** - * @return the absolute path to the directory in which - * the session stores STUB audio files. - * - * If the session is an older session with an existing - * "sounds" directory then it will return a path to that - * directory otherwise it will return the new location - * of root_path()/interchange/session_name/audiofiles/.stubs - */ - const PBD::sys::path sound_stub_path () const; - /** * @return the absolute path to the directory in which * the session stores MIDI files, ie @@ -69,13 +58,6 @@ public: */ const PBD::sys::path midi_path () const; - /** - * @return the absolute path to the directory in which - * the session stores STUB MIDI files, ie - * root_path()/interchange/session_name/midifiles/.stubs - */ - const PBD::sys::path midi_stub_path () const; - /** * @return the absolute path to the directory in which * the session stores MIDNAM patch files, ie diff --git a/libs/ardour/ardour/smf_source.h b/libs/ardour/ardour/smf_source.h index 32163551a0..b0186d690d 100644 --- a/libs/ardour/ardour/smf_source.h +++ b/libs/ardour/ardour/smf_source.h @@ -54,7 +54,7 @@ public: void append_event_unlocked_beats (const Evoral::Event& ev); void append_event_unlocked_frames (const Evoral::Event& ev, framepos_t source_start); - void mark_streaming_midi_write_started (NoteMode mode, framepos_t start_time); + void mark_streaming_midi_write_started (NoteMode mode); void mark_streaming_write_completed (); XMLNode& get_state (); @@ -73,6 +73,8 @@ public: void set_path (const std::string& newpath); private: + int open_for_write (); + framecnt_t read_unlocked (Evoral::EventSink& dst, framepos_t position, framepos_t start, -- cgit v1.2.3