Optimize automation-event process splitting
[ardour.git] / libs / ardour / ardour / caimportable.h
index dc7f5769ae2c93f28c220a4362b06088182a3495..23fc1782ed67cdf6c84dbe11ffa97b18e9eba708 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2007 Paul Davis 
+    Copyright (C) 2007 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #ifndef __ardour_ca_importable_source_h__
 #define __ardour_ca_importable_source_h__
 
-#include <pbd/failed_constructor.h>
-#include <ardour/types.h>
-#include <ardour/importable_source.h>
+#include "pbd/failed_constructor.h"
+#include "ardour/libardour_visibility.h"
+#include "ardour/types.h"
+#include "ardour/importable_source.h"
 
-#include <appleutility/CAAudioFile.h>
+#ifdef COREAUDIO105
+#include "CAAudioFile.h"
+#else
+#include "CAExtAudioFile.h"
+#endif
 
 namespace ARDOUR {
 
-class CAImportableSource : public ImportableSource {
+class LIBARDOUR_API CAImportableSource : public ImportableSource {
     public:
        CAImportableSource (const std::string& path);
        virtual ~CAImportableSource();
 
-       nframes_t read (Sample* buffer, nframes_t nframes);
+       samplecnt_t read (Sample* buffer, samplecnt_t nframes);
        uint32_t  channels() const;
-       nframes_t length() const;
-       nframes_t samplerate() const;
-       void      seek (nframes_t pos);
+       samplecnt_t length() const;
+       samplecnt_t samplerate() const;
+       void      seek (samplepos_t pos);
+       samplepos_t natural_position() const { return 0; }
+       bool clamped_at_unity () const { return false; }
 
    protected:
+#ifdef COREAUDIO105
        mutable CAAudioFile af;
+#else
+       mutable CAExtAudioFile af;
+#endif
 };
 
 }