33 Analyser* Analyser::the_analyser = 0;
34 Glib::Threads::Mutex Analyser::analysis_queue_lock;
35 Glib::Threads::Cond Analyser::SourcesToAnalyse;
36 list<boost::weak_ptr<Source> > Analyser::analysis_queue;
43 Analyser::~Analyser ()
56 Glib::Threads::Thread::create (sigc::ptr_fun (
analyser_work));
72 SourcesToAnalyse.broadcast ();
78 SessionEvent::create_per_thread_pool (
"Analyser", 64);
81 analysis_queue_lock.lock ();
84 if (analysis_queue.empty()) {
85 SourcesToAnalyse.wait (analysis_queue_lock);
88 if (analysis_queue.empty()) {
93 analysis_queue.pop_front();
94 analysis_queue_lock.unlock ();
99 analyse_audio_file_source (afs);
virtual float sample_rate() const =0
shared_ptr< T > dynamic_pointer_cast(shared_ptr< U > const &r)
LIBPBD_API Transmitter error
std::ostream & endmsg(std::ostream &ostr)
bool has_been_analysed() const
std::list< framepos_t > AnalysisFeatureList
virtual bool can_be_analysed() const
static void analyser_work()
framepos_t timeline_position() const
std::string get_transients_path() const
framecnt_t length(framepos_t pos) const
LIBARDOUR_API bool init(bool with_vst, bool try_optimization, const char *localedir)
std::string string_compose(const std::string &fmt, const T1 &o1)
virtual void set_been_analysed(bool yn)