Some const correctness.
[dcpomatic.git] / src / lib / audio_source.h
index 1c53da74eca2ac9106140baf9902ccee7e904c05..c13f1636b521661055ed18eb3c5daf89aaa44948 100644 (file)
 
 */
 
+/** @file  src/audio_source.h
+ *  @brief Parent class for classes which emit audio data.
+ */
+
 #ifndef DVDOMATIC_AUDIO_SOURCE_H
 #define DVDOMATIC_AUDIO_SOURCE_H
 
 
 class AudioBuffers;
 class AudioSink;
+class TimedAudioSink;
 
+/** A class that emits audio data */
 class AudioSource
 {
 public:
        /** Emitted when some audio data is ready */
-       boost::signals2::signal<void (boost::shared_ptr<AudioBuffers>)> Audio;
+       boost::signals2::signal<void (boost::shared_ptr<const AudioBuffers>)> Audio;
+
+       void connect_audio (boost::shared_ptr<AudioSink>);
+};
+
+
+/** A class that emits audio data with timestamps */
+class TimedAudioSource
+{
+public:
+       /** Emitted when some audio data is ready */
+       boost::signals2::signal<void (boost::shared_ptr<const AudioBuffers>, double)> Audio;
 
        void connect_audio (boost::shared_ptr<AudioSink>);
+       void connect_audio (boost::shared_ptr<TimedAudioSink>);
 };
 
 #endif