diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-03-17 20:54:03 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-03-17 20:54:03 +0000 |
commit | 997e4b1f9cd7ccfc704b7c035051da7f60d831e7 (patch) | |
tree | 1236e40183b677abf4a2882e4cfe8e0a345eb24d /libs/ardour/ardour/importable_source.h | |
parent | 19a4b990325577fc949ccd5d5fbad4520eb1df56 (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.h | 30 |
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; }; } |