summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/sndfilesource.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-05-14 02:24:44 +0000
committerCarl Hetherington <carl@carlh.net>2010-05-14 02:24:44 +0000
commit0fd0679c67bdac2b6fb8aa7a9b5cca7592baa7ab (patch)
tree0e1645688a95e03d76d3a6469865418bbc9ebef0 /libs/ardour/ardour/sndfilesource.h
parent1f196b40138d779d87a02d2f10e0cefe9a454fd1 (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.h5
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