Chris@147: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@147: Chris@147: /* Chris@147: Sonic Visualiser Chris@147: An audio file viewer and annotation editor. Chris@147: Centre for Digital Music, Queen Mary, University of London. Chris@202: This file copyright 2006 Chris Cannam and QMUL. Chris@147: Chris@147: This program is free software; you can redistribute it and/or Chris@147: modify it under the terms of the GNU General Public License as Chris@147: published by the Free Software Foundation; either version 2 of the Chris@147: License, or (at your option) any later version. See the file Chris@147: COPYING included with this distribution for more information. Chris@147: */ Chris@147: Chris@1535: #ifndef SV_WAVE_FILE_MODEL_H Chris@1535: #define SV_WAVE_FILE_MODEL_H Chris@316: Chris@147: #include "RangeSummarisableTimeValueModel.h" Chris@147: Chris@147: #include Chris@147: Chris@179: class WaveFileModel : public RangeSummarisableTimeValueModel Chris@147: { Chris@147: Q_OBJECT Chris@147: Chris@147: public: Chris@1122: virtual ~WaveFileModel(); Chris@147: Chris@1122: virtual sv_frame_t getFrameCount() const = 0; Chris@1580: int getChannelCount() const override = 0; Chris@1580: sv_samplerate_t getSampleRate() const override = 0; Chris@1580: sv_samplerate_t getNativeRate() const override = 0; Chris@147: Chris@1580: QString getTitle() const override = 0; Chris@1580: QString getMaker() const override = 0; Chris@1580: QString getLocation() const override = 0; Chris@179: Chris@1580: sv_frame_t getStartFrame() const override = 0; Chris@1580: sv_frame_t getEndFrame() const override = 0; Chris@147: Chris@1122: virtual void setStartFrame(sv_frame_t startFrame) = 0; Chris@333: Chris@147: protected: Chris@1122: WaveFileModel() { } // only accessible from subclasses Chris@147: }; Chris@147: Chris@147: #endif