Chris@439: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
Chris@439: 
Chris@439: /*
Chris@439:     Sonic Visualiser
Chris@439:     An audio file viewer and annotation editor.
Chris@439:     Centre for Digital Music, Queen Mary, University of London.
Chris@439:     This file copyright 2008 QMUL.
Chris@439:    
Chris@439:     This program is free software; you can redistribute it and/or
Chris@439:     modify it under the terms of the GNU General Public License as
Chris@439:     published by the Free Software Foundation; either version 2 of the
Chris@439:     License, or (at your option) any later version.  See the file
Chris@439:     COPYING included with this distribution for more information.
Chris@439: */
Chris@439: 
Chris@439: #ifndef _RDF_IMPORTER_H_
Chris@439: #define _RDF_IMPORTER_H_
Chris@439: 
Chris@439: #include <QObject>
Chris@439: #include <QString>
Chris@439: 
Chris@439: #include <vector>
Chris@439: 
Chris@439: class Model;
Chris@439: class RDFImporterImpl;
Chris@439: class ProgressReporter;
Chris@439: 
Chris@439: class RDFImporter : public QObject
Chris@439: {
Chris@439:     Q_OBJECT
Chris@439: 
Chris@439: public:
Chris@439:     /**
Chris@439:      * Return the file extensions that we have data file readers for,
Chris@439:      * in a format suitable for use with QFileDialog.  For example,
Chris@439:      * "*.rdf *.n3".
Chris@439:      */
Chris@439:     static QString getKnownExtensions();
Chris@439: 
Chris@490:     RDFImporter(QString url, int sampleRate = 0);
Chris@439:     virtual ~RDFImporter();
Chris@439: 
Chris@490:     void setSampleRate(int sampleRate);
Chris@490: 
Chris@439:     bool isOK();
Chris@439:     QString getErrorString() const;
Chris@439: 
Chris@439:     std::vector<Model *> getDataModels(ProgressReporter *reporter);
Chris@439: 
Chris@490:     enum RDFDocumentType {
Chris@490:         AudioRefAndAnnotations,
Chris@490:         Annotations,
Chris@490:         AudioRef,
Chris@499:         OtherRDFDocument,
Chris@499:         NotRDF
Chris@490:     };
Chris@490: 
Chris@490:     static RDFDocumentType identifyDocumentType(QString url);
Chris@490: 
Chris@439: protected:
Chris@439:     RDFImporterImpl *m_d;
Chris@439: };
Chris@439: 
Chris@439: #endif