svcore  1.9
WavFileWriter.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7  This file copyright 2006 Chris Cannam.
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License as
11  published by the Free Software Foundation; either version 2 of the
12  License, or (at your option) any later version. See the file
13  COPYING included with this distribution for more information.
14 */
15 
16 #ifndef _WAV_FILE_WRITER_H_
17 #define _WAV_FILE_WRITER_H_
18 
19 #include <QString>
20 
21 #include <sndfile.h>
22 
24 class MultiSelection;
25 class TempWriteFile;
26 
28 {
29 public:
45  };
46 
47  WavFileWriter(QString path, int sampleRate, int channels,
48  FileWriteMode mode);
49  virtual ~WavFileWriter();
50 
51  bool isOK() const;
52 
53  virtual QString getError() const;
54 
55  QString getPath() const { return m_path; }
56 
57  bool writeModel(DenseTimeValueModel *source,
58  MultiSelection *selection = 0);
59 
60  bool writeSamples(float **samples, int count); // count per channel
61 
62  bool close();
63 
64 protected:
65  QString m_path;
69  SNDFILE *m_file;
70  QString m_error;
71 
72  QString getWriteFilename() const;
73 };
74 
75 
76 #endif
QString getPath() const
Definition: WavFileWriter.h:55
bool isOK() const
QString m_error
Definition: WavFileWriter.h:70
virtual ~WavFileWriter()
QString m_path
Definition: WavFileWriter.h:65
bool writeModel(DenseTimeValueModel *source, MultiSelection *selection=0)
QString getWriteFilename() const
A class that manages the creation of a temporary file with a given prefix and the renaming of that fi...
Definition: TempWriteFile.h:27
FileWriteMode
Specify the method used to open the destination file.
Definition: WavFileWriter.h:42
virtual QString getError() const
TempWriteFile * m_temp
Definition: WavFileWriter.h:68
Base class for models containing dense two-dimensional data (value against time).
SNDFILE * m_file
Definition: WavFileWriter.h:69
bool writeSamples(float **samples, int count)
WavFileWriter(QString path, int sampleRate, int channels, FileWriteMode mode)