WavFileWriter.h

Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     Sonic Visualiser
00005     An audio file viewer and annotation editor.
00006     Centre for Digital Music, Queen Mary, University of London.
00007     This file copyright 2006 Chris Cannam.
00008     
00009     This program is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU General Public License as
00011     published by the Free Software Foundation; either version 2 of the
00012     License, or (at your option) any later version.  See the file
00013     COPYING included with this distribution for more information.
00014 */
00015 
00016 #ifndef _WAV_FILE_WRITER_H_
00017 #define _WAV_FILE_WRITER_H_
00018 
00019 #include <QString>
00020 
00021 #include <sndfile.h>
00022 
00023 class DenseTimeValueModel;
00024 class MultiSelection;
00025 
00026 class WavFileWriter
00027 {
00028 public:
00029     WavFileWriter(QString path, size_t sampleRate, size_t channels);
00030     virtual ~WavFileWriter();
00031 
00032     bool isOK() const;
00033 
00034     virtual QString getError() const;
00035 
00036     QString getPath() const { return m_path; }
00037 
00038     bool writeModel(DenseTimeValueModel *source,
00039                     MultiSelection *selection = 0);
00040 
00041     bool writeSamples(float **samples, size_t count); // count per channel
00042 
00043     bool close();
00044 
00045 protected:
00046     QString m_path;
00047     size_t m_sampleRate;
00048     size_t m_channels;
00049     SNDFILE *m_file;
00050     QString m_error;
00051 };
00052 
00053 
00054 #endif

Generated on Wed Feb 20 15:45:30 2008 for SonicVisualiser by  doxygen 1.5.1