convert from Glib:: to Glib::Threads for all thread-related API
[ardour.git] / libs / ardour / ardour / analyser.h
1 #ifndef __ardour_analyser_h__
2 #define __ardour_analyser_h__
3
4 #include <glibmm/threads.h>
5 #include <boost/shared_ptr.hpp>
6
7 namespace ARDOUR {
8
9 class AudioFileSource;
10 class Source;
11 class TransientDetector;
12
13 class Analyser {
14
15   public:
16         Analyser();
17         ~Analyser ();
18
19         static void init ();
20         static void queue_source_for_analysis (boost::shared_ptr<Source>, bool force);
21         static void work ();
22
23   private:
24         static Analyser* the_analyser;
25         static Glib::Threads::Mutex analysis_queue_lock;
26         static Glib::Threads::Cond  SourcesToAnalyse;
27         static std::list<boost::weak_ptr<Source> > analysis_queue;
28
29         static void analyse_audio_file_source (boost::shared_ptr<AudioFileSource>);
30 };
31
32
33 }
34
35 #endif /* __ardour_analyser_h__ */