diff options
author | Carl Hetherington <carl@carlh.net> | 2010-05-14 02:24:44 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-05-14 02:24:44 +0000 |
commit | 0fd0679c67bdac2b6fb8aa7a9b5cca7592baa7ab (patch) | |
tree | 0e1645688a95e03d76d3a6469865418bbc9ebef0 /libs/ardour/ardour/sndfilesource.h | |
parent | 1f196b40138d779d87a02d2f10e0cefe9a454fd1 (diff) |
Keep to a quota of open files by closing least recently used ones as required. Should fix #2341.
git-svn-id: svn://localhost/ardour2/branches/3.0@7101 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/sndfilesource.h')
-rw-r--r-- | libs/ardour/ardour/sndfilesource.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/ardour/ardour/sndfilesource.h b/libs/ardour/ardour/sndfilesource.h index 96f39de2c8..2338e35bb0 100644 --- a/libs/ardour/ardour/sndfilesource.h +++ b/libs/ardour/ardour/sndfilesource.h @@ -24,6 +24,7 @@ #include "ardour/audiofilesource.h" #include "ardour/broadcast_info.h" +#include "ardour/file_manager.h" namespace ARDOUR { @@ -72,13 +73,14 @@ class SndFileSource : public AudioFileSource { framecnt_t write_float (Sample* data, framepos_t pos, framecnt_t cnt); private: - SNDFILE *sf; + SndFileDescriptor* _descriptor; SF_INFO _info; BroadcastInfo *_broadcast_info; void init_sndfile (); int open(); int setup_broadcast_info (framepos_t when, struct tm&, time_t); + void file_closed (); /* destructive */ @@ -100,6 +102,7 @@ class SndFileSource : public AudioFileSource { framecnt_t nondestructive_write_unlocked (Sample *dst, framecnt_t cnt); void handle_header_position_change (); PBD::ScopedConnection header_position_connection; + PBD::ScopedConnection file_manager_connection; }; } // namespace ARDOUR |