class AudioPlaylist;
-class AudioPlaylistSource : public AudioSource, public PlaylistSource {
- public:
- virtual ~AudioPlaylistSource ();
-
- bool empty() const;
- std::string peak_path (std::string audio_path);
- uint32_t n_channels() const;
- bool clamped_at_unity () const { return false; }
-
- framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const;
- framecnt_t write_unlocked (Sample *src, framecnt_t cnt);
-
- float sample_rate () const;
- int setup_peakfile ();
-
- XMLNode& get_state ();
- int set_state (const XMLNode&, int version);
-
- bool can_truncate_peaks() const { return false; }
- bool can_be_analysed() const { return _length > 0; }
-
- protected:
- friend class SourceFactory;
-
- AudioPlaylistSource (Session&, const PBD::ID& orig, const std::string& name, boost::shared_ptr<AudioPlaylist>, uint32_t chn,
- frameoffset_t begin, framecnt_t len, Source::Flag flags);
- AudioPlaylistSource (Session&, const XMLNode&);
-
- private:
- uint32_t _playlist_channel;
- std::string _peak_path;
-
- int set_state (const XMLNode&, int version, bool with_descendants);
+class LIBARDOUR_API AudioPlaylistSource : public PlaylistSource, public AudioSource {
+public:
+ virtual ~AudioPlaylistSource ();
+ bool empty() const;
+ std::string construct_peak_filepath (const std::string& audio_path, const bool in_session = false, const bool old_peak_name = false) const;
+ uint32_t n_channels() const;
+ bool clamped_at_unity () const { return false; }
+
+ framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const;
+ framecnt_t write_unlocked (Sample *src, framecnt_t cnt);
+
+ float sample_rate () const;
+ int setup_peakfile ();
+
+ XMLNode& get_state ();
+ int set_state (const XMLNode&, int version);
+
+ bool can_truncate_peaks() const { return false; }
+ bool can_be_analysed() const { return _length > 0; }
+
+protected:
+ friend class SourceFactory;
+
+ AudioPlaylistSource (Session&, const PBD::ID& orig, const std::string& name, boost::shared_ptr<AudioPlaylist>, uint32_t chn,
+ frameoffset_t begin, framecnt_t len, Source::Flag flags);
+ AudioPlaylistSource (Session&, const XMLNode&);
+
+
+private:
+ uint32_t _playlist_channel;
+ std::string _peak_path;
+
+ int set_state (const XMLNode&, int version, bool with_descendants);
};
-
+
} /* namespace */
#endif /* __ardour_audio_playlist_source_h__ */