X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsilentfilesource.h;h=cf6462247ae05ca1d07d8a7894e53bfddaf23fab;hb=b855e5f3220027502a3c88f189d511fe2a5a3c2b;hp=87065c1cd01be5b505c517753e064ab5db1f309c;hpb=80c3677c837cc9eb432df3d65a34aba543fa7258;p=ardour.git diff --git a/libs/ardour/ardour/silentfilesource.h b/libs/ardour/ardour/silentfilesource.h index 87065c1cd0..cf6462247a 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,48 +17,55 @@ */ -#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; } +class LIBARDOUR_API SilentFileSource : public AudioFileSource { +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); - - bool destructive() const { return false; } - bool can_be_analysed() const { return false; } - - protected: + void set_length (framecnt_t len) { _length = len; } + void flush () {} - float _sample_rate; + bool destructive() const { return false; } + bool can_be_analysed() const { return false; } - 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, nframes_t npeaks, nframes_t start, nframes_t cnt, double samples_per_unit, nframes_t fpp) const { + int read_peaks_with_fpp (PeakData *peaks, framecnt_t npeaks, framepos_t /*start*/, framecnt_t /*cnt*/, + double /*frames_per_pixel*/, framecnt_t /*fpp*/) const { memset (peaks, 0, sizeof (PeakData) * npeaks); return 0; } + float _sample_rate; }; } // namespace ARDOUR