Merge master; fix crash on new film.
[dcpomatic.git] / src / lib / audio_source.h
index 5a1510d3ce5fd242980d88ead686d249a5efed42..c7f0a09ed762c438250e67394dc50ab33dcb0892 100644 (file)
  *  @brief Parent class for classes which emit audio data.
  */
 
-#ifndef DVDOMATIC_AUDIO_SOURCE_H
-#define DVDOMATIC_AUDIO_SOURCE_H
+#ifndef DCPOMATIC_AUDIO_SOURCE_H
+#define DCPOMATIC_AUDIO_SOURCE_H
 
 #include <boost/signals2.hpp>
 
 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