lbajardsilogic@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@0: lbajardsilogic@0: /* lbajardsilogic@0: Sonic Visualiser lbajardsilogic@0: An audio file viewer and annotation editor. lbajardsilogic@0: Centre for Digital Music, Queen Mary, University of London. lbajardsilogic@0: This file copyright 2006 Chris Cannam. lbajardsilogic@0: lbajardsilogic@0: This program is free software; you can redistribute it and/or lbajardsilogic@0: modify it under the terms of the GNU General Public License as lbajardsilogic@0: published by the Free Software Foundation; either version 2 of the lbajardsilogic@0: License, or (at your option) any later version. See the file lbajardsilogic@0: COPYING included with this distribution for more information. lbajardsilogic@0: */ lbajardsilogic@0: lbajardsilogic@0: #include "DataFileReaderFactory.h" lbajardsilogic@0: #include "MIDIFileReader.h" lbajardsilogic@0: #include "CSVFileReader.h" lbajardsilogic@0: lbajardsilogic@0: #include "model/Model.h" lbajardsilogic@0: lbajardsilogic@0: #include lbajardsilogic@0: lbajardsilogic@0: QString lbajardsilogic@0: DataFileReaderFactory::getKnownExtensions() lbajardsilogic@0: { lbajardsilogic@0: return "*.svl *.csv *.lab *.mid *.txt"; lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: DataFileReader * lbajardsilogic@0: DataFileReaderFactory::createReader(QString path, size_t mainModelSampleRate) lbajardsilogic@0: { lbajardsilogic@0: QString err; lbajardsilogic@0: lbajardsilogic@0: DataFileReader *reader = 0; lbajardsilogic@0: lbajardsilogic@0: reader = new MIDIFileReader(path, mainModelSampleRate); lbajardsilogic@0: if (reader->isOK()) return reader; lbajardsilogic@0: if (reader->getError() != "") err = reader->getError(); lbajardsilogic@0: delete reader; lbajardsilogic@0: lbajardsilogic@0: reader = new CSVFileReader(path, mainModelSampleRate); lbajardsilogic@0: if (reader->isOK()) return reader; lbajardsilogic@0: if (reader->getError() != "") err = reader->getError(); lbajardsilogic@0: delete reader; lbajardsilogic@0: lbajardsilogic@0: return 0; lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: Model * lbajardsilogic@0: DataFileReaderFactory::load(QString path, size_t mainModelSampleRate) lbajardsilogic@0: { lbajardsilogic@0: DataFileReader *reader = createReader(path, mainModelSampleRate); lbajardsilogic@0: if (!reader) return NULL; lbajardsilogic@0: lbajardsilogic@0: Model *model = reader->load(); lbajardsilogic@0: delete reader; lbajardsilogic@0: lbajardsilogic@0: return model; lbajardsilogic@0: } lbajardsilogic@0: