X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fcoreaudiosource.h;h=bb007768398b83911a16ad3581f3bb40ca82df9c;hb=cf89f645ab4a7fae37abd0241c02203353f359ff;hp=30c66069f69949272cd6990fd37a553918a1b3b1;hpb=8cd71108c1d153f84f25c3b9e5153a110826c130;p=ardour.git diff --git a/libs/ardour/ardour/coreaudiosource.h b/libs/ardour/ardour/coreaudiosource.h index 30c66069f6..bb00776839 100644 --- a/libs/ardour/ardour/coreaudiosource.h +++ b/libs/ardour/ardour/coreaudiosource.h @@ -20,7 +20,11 @@ #ifndef __coreaudio_source_h__ #define __coreaudio_source_h__ -#include +#ifdef COREAUDIO105 +#include "CAAudioFile.h" +#else +#include "CAExtAudioFile.h" +#endif #include "ardour/audiofilesource.h" #include @@ -28,7 +32,7 @@ using namespace std; namespace ARDOUR { -class CoreAudioSource : public AudioFileSource { +class LIBARDOUR_API CoreAudioSource : public AudioFileSource { public: CoreAudioSource (ARDOUR::Session&, const XMLNode&); CoreAudioSource (ARDOUR::Session&, const string& path, int chn, Flag); @@ -39,6 +43,8 @@ class CoreAudioSource : public AudioFileSource { float sample_rate() const; int update_header (framepos_t when, struct tm&, time_t); + uint32_t channel_count () const { return n_channels; } + int flush_header () {return 0;}; void set_header_timeline_position () {}; bool clamped_at_unity () const { return false; } @@ -48,11 +54,16 @@ class CoreAudioSource : public AudioFileSource { static int get_soundfile_info (string path, SoundFileInfo& _info, string& error_msg); protected: + void close (); framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const; framecnt_t write_unlocked (Sample *, framecnt_t) { return 0; } private: +#ifdef COREAUDIO105 mutable CAAudioFile af; +#else + mutable CAExtAudioFile af; +#endif uint16_t n_channels; void init_cafile ();