X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Felement_importer.cc;h=ace517f0709893951752b1f16aa3c26c65f26856;hb=097176696b055b91fcc4298965c9042a4cc71f47;hp=500ad8714709ab82c1370e79b9075d0d7c684a49;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/libs/ardour/element_importer.cc b/libs/ardour/element_importer.cc index 500ad87147..ace517f070 100644 --- a/libs/ardour/element_importer.cc +++ b/libs/ardour/element_importer.cc @@ -23,30 +23,25 @@ #include #include -#include "pbd/convert.h" +#include "pbd/string_convert.h" #include "ardour/session.h" -#include "i18n.h" +#include "pbd/i18n.h" +using namespace std; using namespace PBD; using namespace ARDOUR; -sigc::signal , string, string> ElementImporter::Rename; -sigc::signal ElementImporter::Prompt; +Signal2,string, string> ElementImporter::Rename; +Signal1 ElementImporter::Prompt; -ElementImporter::ElementImporter (XMLTree const & source, ARDOUR::Session & session) : +ElementImporter::ElementImporter (XMLTree const & source, ARDOUR::Session & session) : source (source), session(session), _queued (false), _broken (false) { - // Get samplerate - XMLProperty *prop; - prop = source.root()->property ("sample-rate"); - if (prop) { - std::istringstream iss (prop->value()); - iss >> sample_rate; - } + source.root()->get_property ("sample-rate", sample_rate); } ElementImporter::~ElementImporter () @@ -78,7 +73,7 @@ ElementImporter::cancel_move () } string -ElementImporter::smpte_to_string(SMPTE::Time & time) const +ElementImporter::timecode_to_string(Timecode::Time & time) const { std::ostringstream oss; oss << std::setfill('0') << std::right << @@ -90,23 +85,23 @@ ElementImporter::smpte_to_string(SMPTE::Time & time) const time.seconds << ":" << std::setw(2) << time.frames; - + return oss.str(); } -nframes_t -ElementImporter::rate_convert_samples (nframes_t samples) const +samplecnt_t +ElementImporter::rate_convert_samples (samplecnt_t samples) const { - if (sample_rate == session.frame_rate()) { + if (sample_rate == session.sample_rate()) { return samples; } - + // +0.5 for proper rounding - return static_cast (samples * (static_cast (session.nominal_frame_rate()) / sample_rate) + 0.5); + return static_cast (samples * (static_cast (session.nominal_sample_rate()) / sample_rate) + 0.5); } string ElementImporter::rate_convert_samples (string const & samples) const { - return to_string (rate_convert_samples (atoi (samples)), std::dec); + return to_string (rate_convert_samples (string_to(samples))); }