Merge some cases to avoid duplicated logic
[ardour.git] / libs / ardour / ardour / auditioner.h
index 452f7eb2462ba6e856d152f85b3739863f3f5157..48d889344a318a75d250a51957329b413a4d7327 100644 (file)
 #include <glibmm/threads.h>
 
 #include "ardour/ardour.h"
-#include "ardour/audio_track.h"
-#include "ardour/midi_region.h"
-
-#include "ardour/audio_diskstream.h"
-#include "ardour/midi_diskstream.h"
+#include "ardour/track.h"
 
 namespace ARDOUR {
 
 class Session;
+class AudioDiskstream;
 class AudioRegion;
 class AudioPlaylist;
+class MidiDiskstream;
+class MidiRegion;
 
 class LIBARDOUR_API Auditioner : public Track
 {
@@ -103,12 +102,8 @@ class LIBARDOUR_API Auditioner : public Track
        boost::shared_ptr<Diskstream> diskstream_factory (XMLNode const &)
                { return boost::shared_ptr<Diskstream> (); }
 
-       boost::shared_ptr<AudioDiskstream> audio_diskstream() const
-               { return boost::dynamic_pointer_cast<AudioDiskstream> (_diskstream); }
-
-       boost::shared_ptr<MidiDiskstream> midi_diskstream() const
-               { return boost::dynamic_pointer_cast<MidiDiskstream> (_diskstream); }
-
+       boost::shared_ptr<AudioDiskstream> audio_diskstream() const;
+       boost::shared_ptr<MidiDiskstream> midi_diskstream() const;
 
   private:
        boost::shared_ptr<AudioRegion> the_region;