use XML state to store processors in mixer (strips) and fixup crash caused by missing...
[ardour.git] / libs / ardour / ardour / coreaudiosource.h
index cf25c466eef501b9cb627b01d63f2eea506ac9de..ad21188531de6c350c6cd64466ca74ed745f8c3e 100644 (file)
 #ifndef __coreaudio_source_h__ 
 #define __coreaudio_source_h__
 
+#include <appleutility/CAAudioFile.h>
+
 #include <ardour/audiofilesource.h>
-#include <AudioToolbox/ExtendedAudioFile.h>
 
 namespace ARDOUR {
 
 class CoreAudioSource : public AudioFileSource {
   public:
-       CoreAudioSource (const XMLNode&);
-       CoreAudioSource (const string& path_plus_channel, Flag);
+       CoreAudioSource (ARDOUR::Session&, const XMLNode&);
+       CoreAudioSource (ARDOUR::Session&, const string& path, int chn, Flag);
        ~CoreAudioSource ();
 
        float sample_rate() const;
-       int update_header (jack_nframes_t when, struct tm&, time_t);
+       int update_header (nframes_t when, struct tm&, time_t);
 
        int flush_header () {return 0;};
        void set_header_timeline_position () {};
 
+       static int get_soundfile_info (string path, SoundFileInfo& _info, string& error_msg);
+
   protected:
-       jack_nframes_t read_unlocked (Sample *dst, jack_nframes_t start, jack_nframes_t cnt) const;
-       
-       jack_nframes_t write_unlocked (Sample *dst, jack_nframes_t cnt) 
-       { return 0; }
-       
+       nframes_t read_unlocked (Sample *dst, nframes_t start, nframes_t cnt) const;
+       nframes_t write_unlocked (Sample *dst, nframes_t cnt) { return 0; }
 
   private:
-       ExtAudioFileRef af;
+       mutable CAAudioFile af;
        uint16_t n_channels;
 
        mutable float *tmpbuf;
-       mutable jack_nframes_t tmpbufsize;
+       mutable nframes_t tmpbufsize;
        mutable Glib::Mutex _tmpbuf_lock;
 
-       void init (const string &str);
+       void init ();
 };
 
 }; /* namespace ARDOUR */