X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsource_factory.cc;h=f886f952bdb676ca23fe4650d47115291ddfec3f;hb=73192bc1a7ea55fa1864dc3826845b15c00dd2ec;hp=6753a0738f57ce318938148b12e02d4e2843f4f3;hpb=acdc88f279760443dc7397290e9c4752af5b23c9;p=ardour.git diff --git a/libs/ardour/source_factory.cc b/libs/ardour/source_factory.cc index 6753a0738f..f886f952bd 100644 --- a/libs/ardour/source_factory.cc +++ b/libs/ardour/source_factory.cc @@ -50,7 +50,7 @@ using namespace ARDOUR; using namespace std; using namespace PBD; -sigc::signal > SourceFactory::SourceCreated; +PBD::Signal1 > SourceFactory::SourceCreated; Glib::Cond* SourceFactory::PeaksToBuild; Glib::StaticMutex SourceFactory::peak_building_lock = GLIBMM_STATIC_MUTEX_INIT; std::list > SourceFactory::files_with_peaks; @@ -58,7 +58,7 @@ std::list > SourceFactory::files_with_peaks; static void peak_thread_work () { - PBD::notify_gui_about_thread_creation (pthread_self(), string ("peakbuilder-") + to_string (pthread_self(), std::dec)); + SessionEvent::create_per_thread_pool (X_("PeakFile Builder "), 64); while (true) { @@ -121,10 +121,10 @@ SourceFactory::setup_peakfile (boost::shared_ptr s, bool async) } boost::shared_ptr -SourceFactory::createSilent (Session& s, const XMLNode& node, nframes_t nframes, float sr) +SourceFactory::createSilent (Session& s, const XMLNode& node, framecnt_t nframes, float sr) { Source* src = new SilentFileSource (s, node, nframes, sr); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); // no analysis data - the file is non-existent SourceCreated (ret); @@ -144,9 +144,8 @@ SourceFactory::create (Session& s, const XMLNode& node, bool defer_peaks) if (type == DataType::AUDIO) { try { - Source* src = new SndFileSource (s, node); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); if (setup_peakfile (ret, defer_peaks)) { return boost::shared_ptr(); @@ -162,8 +161,8 @@ SourceFactory::create (Session& s, const XMLNode& node, bool defer_peaks) /* this is allowed to throw */ - Source *s = new CoreAudioSource (s, node); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + Source *src = new CoreAudioSource (s, node); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); if (setup_peakfile (ret, defer_peaks)) { @@ -180,7 +179,7 @@ SourceFactory::create (Session& s, const XMLNode& node, bool defer_peaks) } else if (type == DataType::MIDI) { Source* src = new SMFSource (s, node); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); ret->check_for_analysis_data_on_disk (); SourceCreated (ret); @@ -201,7 +200,7 @@ SourceFactory::createReadable (DataType type, Session& s, const string& path, try { Source* src = new SndFileSource (s, path, chn, flags); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); if (setup_peakfile (ret, defer_peaks)) { @@ -219,7 +218,7 @@ SourceFactory::createReadable (DataType type, Session& s, const string& path, #ifdef USE_COREAUDIO_FOR_FILES Source* src = new CoreAudioSource (s, path, chn, flags); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); if (setup_peakfile (ret, defer_peaks)) { return boost::shared_ptr(); @@ -242,7 +241,7 @@ SourceFactory::createReadable (DataType type, Session& s, const string& path, } else if (type == DataType::MIDI) { Source* src = new SMFSource (s, path, SMFSource::Flag(0)); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); if (announce) { @@ -257,20 +256,20 @@ SourceFactory::createReadable (DataType type, Session& s, const string& path, } boost::shared_ptr -SourceFactory::createWritable (DataType type, Session& s, const std::string& path, - bool destructive, nframes_t rate, bool announce, bool defer_peaks) +SourceFactory::createWritable (DataType type, Session& s, const std::string& path, const std::string& origin, + bool destructive, framecnt_t rate, bool announce, bool defer_peaks) { /* this might throw failed_constructor(), which is OK */ if (type == DataType::AUDIO) { - Source* src = new SndFileSource (s, path, + Source* src = new SndFileSource (s, path, origin, s.config.get_native_file_data_format(), s.config.get_native_file_header_format(), rate, (destructive ? Source::Flag (SndFileSource::default_writable_flags | Source::Destructive) : SndFileSource::default_writable_flags)); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); if (setup_peakfile (ret, defer_peaks)) { @@ -285,9 +284,9 @@ SourceFactory::createWritable (DataType type, Session& s, const std::string& pat return ret; } else if (type == DataType::MIDI) { - - Source* src = new SMFSource (s, path, Source::Flag(0)); - // boost_debug_shared_ptr_mark_interesting (src, typeid(src).name()); + // XXX writable flags should belong to MidiSource too + Source* src = new SMFSource (s, path, SndFileSource::default_writable_flags); + // boost_debug_shared_ptr_mark_interesting (src, "Source"); boost::shared_ptr ret (src); // no analysis data - this is a new file