Add support (in our MSVC projects) for using 'boost::atomic'
[ardour.git] / libs / ardour / element_importer.cc
index 500ad8714709ab82c1370e79b9075d0d7c684a49..ace517f0709893951752b1f16aa3c26c65f26856 100644 (file)
 #include <sstream>
 #include <iomanip>
 
-#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 <std::pair<bool, string>, string, string> ElementImporter::Rename;
-sigc::signal <bool, string> ElementImporter::Prompt;
+Signal2<std::pair<bool, string>,string, string> ElementImporter::Rename;
+Signal1 <bool,string> 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<nframes_t> (samples * (static_cast<double> (session.nominal_frame_rate()) / sample_rate) + 0.5);
+       return static_cast<samplecnt_t> (samples * (static_cast<double> (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<uint32_t>(samples)));
 }