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@1122: #ifndef WAVE_FILE_MODEL_H
Chris@1122: #define WAVE_FILE_MODEL_H
Chris@316: 
Chris@147: #include "RangeSummarisableTimeValueModel.h"
Chris@147: 
Chris@147: #include <stdlib.h>
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@1122:     virtual int getChannelCount() const = 0;
Chris@1122:     virtual sv_samplerate_t getSampleRate() const = 0;
Chris@1122:     virtual sv_samplerate_t getNativeRate() const = 0;
Chris@147: 
Chris@1122:     virtual QString getTitle() const = 0;
Chris@1122:     virtual QString getMaker() const = 0;
Chris@1122:     virtual QString getLocation() const = 0;
Chris@179: 
Chris@1122:     virtual sv_frame_t getStartFrame() const = 0;
Chris@1122:     virtual sv_frame_t getEndFrame() const = 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