diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2012-10-30 21:14:03 +0000 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2012-10-30 21:14:03 +0000 |
commit | c8a4bdc4a4aecca78a986aa419fc0ccdea1c8a69 (patch) | |
tree | 2574487edd8f7f43a8434f37755a270e758fdf06 /libs/audiographer/audiographer | |
parent | b5c5fc7a08a4f02d80a664ee18812e84d08dc6fd (diff) |
Create export temporary files in the export directory
git-svn-id: svn://localhost/ardour2/branches/3.0@13371 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/audiographer/audiographer')
-rw-r--r-- | libs/audiographer/audiographer/sndfile/tmp_file.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/libs/audiographer/audiographer/sndfile/tmp_file.h b/libs/audiographer/audiographer/sndfile/tmp_file.h index a4e7b2679a..8655fd7191 100644 --- a/libs/audiographer/audiographer/sndfile/tmp_file.h +++ b/libs/audiographer/audiographer/sndfile/tmp_file.h @@ -1,6 +1,9 @@ #ifndef AUDIOGRAPHER_TMP_FILE_H #define AUDIOGRAPHER_TMP_FILE_H +#include <cstdio> +#include <string> + #include "sndfile_writer.h" #include "sndfile_reader.h" @@ -12,14 +15,29 @@ template<typename T = DefaultSampleType> class TmpFile : public SndfileWriter<T>, public SndfileReader<T> { public: - + + /// \a filename_template must match the requirements for mkstemp, i.e. end in "XXXXXX" + TmpFile (char * filename_template, int format, ChannelCount channels, framecnt_t samplerate) + : SndfileHandle (mkstemp(filename_template), true, SndfileBase::ReadWrite, format, channels, samplerate) + , filename (filename_template) + {} + TmpFile (int format, ChannelCount channels, framecnt_t samplerate) : SndfileHandle (fileno (tmpfile()), true, SndfileBase::ReadWrite, format, channels, samplerate) {} - + TmpFile (TmpFile const & other) : SndfileHandle (other) {} using SndfileHandle::operator=; - + + ~TmpFile() + { + if (!filename.empty()) { + std::remove(filename.c_str()); + } + } + + private: + std::string filename; }; } // namespace |