Chris@1086: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@1086: Chris@1086: /* Chris@1086: Sonic Visualiser Chris@1086: An audio file viewer and annotation editor. Chris@1086: Centre for Digital Music, Queen Mary, University of London. Chris@1086: This file copyright 2006 Chris Cannam. Chris@1086: Chris@1086: This program is free software; you can redistribute it and/or Chris@1086: modify it under the terms of the GNU General Public License as Chris@1086: published by the Free Software Foundation; either version 2 of the Chris@1086: License, or (at your option) any later version. See the file Chris@1086: COPYING included with this distribution for more information. Chris@1086: */ Chris@1086: Chris@1086: #ifndef MOCK_WAVE_MODEL_H Chris@1086: #define MOCK_WAVE_MODEL_H Chris@1086: Chris@1086: #include "../DenseTimeValueModel.h" Chris@1086: Chris@1086: #include Chris@1086: Chris@1086: enum Sort { Chris@1086: DC, Chris@1086: Sine, Chris@1086: Cosine, Chris@1086: Nyquist, Chris@1086: Dirac Chris@1086: }; Chris@1086: Chris@1086: class MockWaveModel : public DenseTimeValueModel Chris@1086: { Chris@1086: Q_OBJECT Chris@1086: Chris@1086: public: Chris@1088: /** One Sort per channel! Length is in samples, and is in addition Chris@1088: * to "pad" number of zero samples at the start and end */ Chris@1088: MockWaveModel(std::vector sorts, int length, int pad); Chris@1086: Chris@1086: virtual float getValueMinimum() const { return -1.f; } Chris@1086: virtual float getValueMaximum() const { return 1.f; } Chris@1086: virtual int getChannelCount() const { return int(m_data.size()); } Chris@1086: Chris@1086: virtual sv_frame_t getData(int channel, sv_frame_t start, sv_frame_t count, Chris@1086: float *buffer) const; Chris@1086: virtual sv_frame_t getMultiChannelData(int fromchannel, int tochannel, Chris@1086: sv_frame_t start, sv_frame_t count, Chris@1086: float **buffers) const; Chris@1086: Chris@1086: virtual bool canPlay() const { return true; } Chris@1086: virtual QString getDefaultPlayClipId() const { return ""; } Chris@1086: Chris@1086: virtual sv_frame_t getStartFrame() const { return 0; } Chris@1086: virtual sv_frame_t getEndFrame() const { return m_data[0].size(); } Chris@1086: virtual sv_samplerate_t getSampleRate() const { return 44100; } Chris@1086: virtual bool isOK() const { return true; } Chris@1086: Chris@1086: QString getTypeName() const { return tr("Mock Wave"); } Chris@1086: Chris@1086: private: Chris@1086: std::vector > m_data; Chris@1088: std::vector generate(Sort sort, int length, int pad) const; Chris@1086: }; Chris@1086: Chris@1086: #endif