Das BlinkenSendButtons
[ardour.git] / libs / ardour / ardour / coreaudiosource.h
index 5f54d01f5dbc147840fad62c25786182c9e148f4..7e9f975d03536633a9274712fb7172c6f6669dbe 100644 (file)
 #define __coreaudio_source_h__
 
 #include <appleutility/CAAudioFile.h>
-
-#include <ardour/audiofilesource.h>
+#include "ardour/audiofilesource.h"
 
 namespace ARDOUR {
 
 class CoreAudioSource : public AudioFileSource {
   public:
        CoreAudioSource (ARDOUR::Session&, const XMLNode&);
-       CoreAudioSource (ARDOUR::Session&, const string& path_plus_channel, Flag);
+       CoreAudioSource (ARDOUR::Session&, const string& path, int chn, Flag);
        ~CoreAudioSource ();
 
        float sample_rate() const;
@@ -38,6 +37,8 @@ class CoreAudioSource : public AudioFileSource {
        int flush_header () {return 0;};
        void set_header_timeline_position () {};
 
+       static int get_soundfile_info (string path, SoundFileInfo& _info, string& error_msg);
+
   protected:
        nframes_t read_unlocked (Sample *dst, nframes_t start, nframes_t cnt) const;
        nframes_t write_unlocked (Sample *dst, nframes_t cnt) { return 0; }
@@ -46,11 +47,8 @@ class CoreAudioSource : public AudioFileSource {
        mutable CAAudioFile af;
        uint16_t n_channels;
 
-       mutable float *tmpbuf;
-       mutable nframes_t tmpbufsize;
-       mutable Glib::Mutex _tmpbuf_lock;
-
-       void init (string str);
+       void init ();
+       int safe_read (Sample*, nframes_t start, nframes_t cnt, AudioBufferList&) const;
 };
 
 }; /* namespace ARDOUR */