summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/importable_source.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-03-17 20:54:03 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-03-17 20:54:03 +0000
commit997e4b1f9cd7ccfc704b7c035051da7f60d831e7 (patch)
tree1236e40183b677abf4a2882e4cfe8e0a345eb24d /libs/ardour/ardour/importable_source.h
parent19a4b990325577fc949ccd5d5fbad4520eb1df56 (diff)
merge with 2.0-ongoing @ rev 3147
git-svn-id: svn://localhost/ardour2/branches/3.0@3152 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/importable_source.h')
-rw-r--r--libs/ardour/ardour/importable_source.h30
1 files changed, 6 insertions, 24 deletions
diff --git a/libs/ardour/ardour/importable_source.h b/libs/ardour/ardour/importable_source.h
index 5845d841b6..a33cf567e7 100644
--- a/libs/ardour/ardour/importable_source.h
+++ b/libs/ardour/ardour/importable_source.h
@@ -20,7 +20,6 @@
#ifndef __ardour_importable_source_h__
#define __ardour_importable_source_h__
-#include <sndfile.h>
#include <pbd/failed_constructor.h>
#include <ardour/types.h>
@@ -28,32 +27,15 @@ namespace ARDOUR {
class ImportableSource {
public:
- ImportableSource (const std::string& path)
- : in (sf_open (path.c_str(), SFM_READ, &sf_info), sf_close)
- {
- if (!in) throw failed_constructor();
-
- }
-
+ ImportableSource () {}
virtual ~ImportableSource() {}
- virtual nframes_t read (Sample* buffer, nframes_t nframes) {
- nframes_t per_channel = nframes / sf_info.channels;
- per_channel = sf_readf_float (in.get(), buffer, per_channel);
- return per_channel * sf_info.channels;
- }
-
+ virtual nframes_t read (Sample* buffer, nframes_t nframes) = 0;
virtual float ratio() const { return 1.0f; }
-
- uint channels() const { return sf_info.channels; }
-
- nframes_t length() const { return sf_info.frames; }
-
- nframes_t samplerate() const { return sf_info.samplerate; }
-
-protected:
- SF_INFO sf_info;
- boost::shared_ptr<SNDFILE> in;
+ virtual uint32_t channels() const = 0;
+ virtual nframes_t length() const = 0;
+ virtual nframes_t samplerate() const = 0;
+ virtual void seek (nframes_t pos) = 0;
};
}