1 #ifndef AUDIOGRAPHER_SOURCE_H
2 #define AUDIOGRAPHER_SOURCE_H
7 #include <boost/shared_ptr.hpp>
9 #include "audiographer/visibility.h"
11 namespace AudioGrapher
15 * This is a pure virtual interface for all data sources in AudioGrapher
18 class /*LIBAUDIOGRAPHER_API*/ Source
21 virtual ~Source () { }
23 typedef boost::shared_ptr<Sink<T> > SinkPtr;
25 /// Adds an output to this source. All data generated is forwarded to \a output
26 virtual void add_output (SinkPtr output) = 0;
28 /// Removes all outputs added
29 virtual void clear_outputs () = 0;
31 /// Removes a specific output from this source
32 virtual void remove_output (SinkPtr output) = 0;
37 #endif //AUDIOGRAPHER_SOURCE_H