X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libs%2Fardour%2Fardour%2Fsilentfilesource.h;h=5cdade3751da049a803136976f81e6b81676e488;hb=355183f1abea75d8fab0926cd7e7130796574cb0;hp=92ef076a9ba62d6005bb710de53b82b7f67000eb;hpb=672a31a552ae0bd67d40a0c078306d3a63a44746;p=ardour.git diff --git a/libs/ardour/ardour/silentfilesource.h b/libs/ardour/ardour/silentfilesource.h index 92ef076a9b..5cdade3751 100644 --- a/libs/ardour/ardour/silentfilesource.h +++ b/libs/ardour/ardour/silentfilesource.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2007 Paul Davis + Copyright (C) 2007 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,47 +17,54 @@ */ -#ifndef __ardour_silentfilesource_h__ +#ifndef __ardour_silentfilesource_h__ #define __ardour_silentfilesource_h__ -#include +#include +#include "ardour/audiofilesource.h" namespace ARDOUR { class SilentFileSource : public AudioFileSource { - public: - virtual ~SilentFileSource (); - - int update_header (nframes_t when, struct tm&, time_t) { return 0; } +public: + int update_header (framepos_t /*when*/, struct tm&, time_t) { return 0; } int flush_header () { return 0; } float sample_rate () const { return _sample_rate; } - void set_length (nframes_t len); - - int read_peaks (PeakData *peaks, nframes_t npeaks, nframes_t start, nframes_t cnt, double samples_per_unit) const { - memset (peaks, 0, sizeof (PeakData) * npeaks); - return 0; - } + void set_length (framecnt_t len) { _length = len; } bool destructive() const { return false; } + bool can_be_analysed() const { return false; } - protected: - - float _sample_rate; - - SilentFileSource (Session&, const XMLNode&, nframes_t nframes, float sample_rate); + bool clamped_at_unity() const { return false; } +protected: friend class SourceFactory; - nframes_t read_unlocked (Sample *dst, nframes_t start, nframes_t cnt) const { + SilentFileSource (Session& s, const XMLNode& x, framecnt_t len, float srate) + : Source (s, x) + , AudioFileSource (s, x, false) + , _sample_rate(srate) + { + _length = len; + } + + framecnt_t read_unlocked (Sample *dst, framepos_t /*start*/, framecnt_t cnt) const { memset (dst, 0, sizeof (Sample) * cnt); return cnt; } - nframes_t write_unlocked (Sample *dst, nframes_t cnt) { return 0; } + framecnt_t write_unlocked (Sample */*dst*/, framecnt_t /*cnt*/) { return 0; } void set_header_timeline_position () {} + int read_peaks_with_fpp (PeakData *peaks, framecnt_t npeaks, framepos_t /*start*/, framecnt_t /*cnt*/, + double /*samples_per_unit*/, framecnt_t /*fpp*/) const { + memset (peaks, 0, sizeof (PeakData) * npeaks); + return 0; + } + + float _sample_rate; }; } // namespace ARDOUR