Use proper rounding for stereo mixing
[skype-call-recorder.git] / wavewriter.h
blob9336a974a4031ea325f9b1d0e1a47a16179192d7
1 /*
2 Skype Call Recorder
3 Copyright (C) 2008 jlh (jlh at gmx dot ch)
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2 of the License, version 3 of
8 the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 The GNU General Public License version 2 is included with the source of
20 this program under the file name COPYING. You can also get a copy on
21 http://www.fsf.org/
24 #ifndef WAVEWRITER_H
25 #define WAVEWRITER_H
27 #include "common.h"
28 #include "writer.h"
30 class QString;
31 class QByteArray;
33 class WaveWriter : public AudioFileWriter {
34 public:
35 WaveWriter();
36 virtual ~WaveWriter();
38 virtual bool open(const QString &, long, bool);
39 virtual void close();
40 virtual bool write(QByteArray &, QByteArray &, long, bool = false);
42 private:
43 void updateHeader();
45 private:
46 long updateHeaderInterval;
47 long nextUpdateHeader;
48 int fileSizeOffset;
49 int dataSizeOffset;
50 qint64 fileSize;
51 qint64 dataSize;
52 bool hasFlushed;
54 DISABLE_COPY_AND_ASSIGNMENT(WaveWriter);
57 #endif