Re-integrate export-optimization branch.
[ardour.git] / libs / audiographer / audiographer / source.h
1 #ifndef AUDIOGRAPHER_SOURCE_H
2 #define AUDIOGRAPHER_SOURCE_H
3
4 #include "types.h"
5 #include "sink.h"
6
7 #include <boost/shared_ptr.hpp>
8
9 namespace AudioGrapher
10 {
11
12 template<typename T>
13 class Source
14 {
15   public:
16         virtual ~Source () { }
17         
18         typedef boost::shared_ptr<Sink<T> > SinkPtr;
19         
20         virtual void add_output (SinkPtr output) = 0;
21         virtual void clear_outputs () = 0;
22         virtual void remove_output (SinkPtr output) = 0;
23 };
24
25 } // namespace
26
27 #endif //AUDIOGRAPHER_SOURCE_H
28