svcore  1.9
AudioFileReaderFactory.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 _AUDIO_FILE_READER_FACTORY_H_
00017 #define _AUDIO_FILE_READER_FACTORY_H_
00018 
00019 #include <QString>
00020 
00021 #include "FileSource.h"
00022 
00023 class AudioFileReader;
00024 class ProgressReporter;
00025 
00026 class AudioFileReaderFactory
00027 {
00028 public:
00034     static QString getKnownExtensions();
00035 
00055     static AudioFileReader *createReader(FileSource source,
00056                                          int targetRate = 0,
00057                                          bool normalised = false,
00058                                          ProgressReporter *reporter = 0);
00059 
00084     static AudioFileReader *createThreadingReader(FileSource source,
00085                                                   int targetRate = 0,
00086                                                   bool normalised = false,
00087                                                   ProgressReporter *reporter = 0);
00088 
00089 protected:
00090     static AudioFileReader *create(FileSource source,
00091                                    int targetRate,
00092                                    bool normalised,
00093                                    bool threading,
00094                                    ProgressReporter *reporter);
00095 };
00096 
00097 #endif
00098