X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_playlist_source.cc;h=7cc00a855f90e2c7030f1eca451341c58f48f5b1;hb=4250940ad83200e065b966d0646c75a48bb0f73d;hp=8effdd0c808145f866056338f1ea02e203e01f41;hpb=a86aa9e5bc4d2520087310caa4afb3508480b0d7;p=ardour.git diff --git a/libs/ardour/audio_playlist_source.cc b/libs/ardour/audio_playlist_source.cc index 8effdd0c80..7cc00a855f 100644 --- a/libs/ardour/audio_playlist_source.cc +++ b/libs/ardour/audio_playlist_source.cc @@ -35,21 +35,21 @@ #include "ardour/session.h" #include "ardour/session_directory.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace ARDOUR; using namespace PBD; AudioPlaylistSource::AudioPlaylistSource (Session& s, const ID& orig, const std::string& name, boost::shared_ptr p, - uint32_t chn, frameoffset_t begin, framecnt_t len, Source::Flag flags) + uint32_t chn, sampleoffset_t begin, samplecnt_t len, Source::Flag flags) : Source (s, DataType::AUDIO, name) , PlaylistSource (s, orig, name, p, DataType::AUDIO, begin, len, flags) , AudioSource (s, name) , _playlist_channel (chn) { AudioSource::_length = len; - ensure_buffers_for_level (_level, _session.frame_rate()); + ensure_buffers_for_level (_level, _session.sample_rate()); } AudioPlaylistSource::AudioPlaylistSource (Session& s, const XMLNode& node) @@ -79,14 +79,12 @@ XMLNode& AudioPlaylistSource::get_state () { XMLNode& node (AudioSource::get_state ()); - char buf[64]; /* merge PlaylistSource state */ PlaylistSource::add_state (node); - snprintf (buf, sizeof (buf), "%" PRIu32, _playlist_channel); - node.add_property ("channel", buf); + node.set_property ("channel", _playlist_channel); return node; } @@ -108,29 +106,26 @@ AudioPlaylistSource::set_state (const XMLNode& node, int version, bool with_desc } } - const XMLProperty* prop; - pair extent = _playlist->get_extent(); + pair extent = _playlist->get_extent(); AudioSource::_length = extent.second - extent.first; - if ((prop = node.property (X_("channel"))) == 0) { + if (!node.get_property (X_("channel"), _playlist_channel)) { throw failed_constructor (); } - sscanf (prop->value().c_str(), "%" PRIu32, &_playlist_channel); - - ensure_buffers_for_level (_level, _session.frame_rate()); + ensure_buffers_for_level (_level, _session.sample_rate()); return 0; } -framecnt_t -AudioPlaylistSource::read_unlocked (Sample* dst, framepos_t start, framecnt_t cnt) const +samplecnt_t +AudioPlaylistSource::read_unlocked (Sample* dst, samplepos_t start, samplecnt_t cnt) const { boost::shared_array sbuf; boost::shared_array gbuf; - framecnt_t to_read; - framecnt_t to_zero; + samplecnt_t to_read; + samplecnt_t to_zero; /* we must be careful not to read beyond the end of our "section" of * the playlist, because otherwise we may read data that exists, but @@ -165,8 +160,8 @@ AudioPlaylistSource::read_unlocked (Sample* dst, framepos_t start, framecnt_t cn return cnt; } -framecnt_t -AudioPlaylistSource::write_unlocked (Sample *, framecnt_t) +samplecnt_t +AudioPlaylistSource::write_unlocked (Sample *, samplecnt_t) { fatal << string_compose (_("programming error: %1"), "AudioPlaylistSource::write() called - should be impossible") << endmsg; abort(); /*NOTREACHED*/ @@ -188,7 +183,7 @@ AudioPlaylistSource::n_channels () const return 1; } - boost::shared_ptr r = _playlist->region_list().front (); + boost::shared_ptr r = _playlist->region_list_property().front (); boost::shared_ptr ar = boost::dynamic_pointer_cast (r); return ar->audio_source()->n_channels (); @@ -200,10 +195,10 @@ AudioPlaylistSource::sample_rate () const /* use just the first region to decide */ if (empty()) { - _session.frame_rate (); + _session.sample_rate (); } - boost::shared_ptr r = _playlist->region_list().front (); + boost::shared_ptr r = _playlist->region_list_property().front (); boost::shared_ptr ar = boost::dynamic_pointer_cast (r); return ar->audio_source()->sample_rate ();