NOOP, remove trailing tabs/whitespace.
[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 #include "audiographer/visibility.h"
10
11 namespace AudioGrapher
12 {
13
14 /** A source for data
15   * This is a pure virtual interface for all data sources in AudioGrapher
16   */
17 template<typename T>
18 class /*LIBAUDIOGRAPHER_API*/ Source
19 {
20   public:
21         virtual ~Source () { }
22
23         typedef boost::shared_ptr<Sink<T> > SinkPtr;
24
25         /// Adds an output to this source. All data generated is forwarded to \a output
26         virtual void add_output (SinkPtr output) = 0;
27
28         /// Removes all outputs added
29         virtual void clear_outputs () = 0;
30
31         /// Removes a specific output from this source
32         virtual void remove_output (SinkPtr output) = 0;
33 };
34
35 } // namespace
36
37 #endif //AUDIOGRAPHER_SOURCE_H
38