1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4     Sonic Visualiser
5     An audio file viewer and annotation editor.
6     Centre for Digital Music, Queen Mary, University of London.
7     This file copyright 2007 QMUL.
8 
9     This program is free software; you can redistribute it and/or
10     modify it under the terms of the GNU General Public License as
11     published by the Free Software Foundation; either version 2 of the
12     License, or (at your option) any later version.  See the file
13     COPYING included with this distribution for more information.
14 */
15 
16 #ifndef SV_PLAYLIST_FILE_READER_H
17 #define SV_PLAYLIST_FILE_READER_H
18 
19 #include "FileSource.h"
20 
21 #include <QString>
22 
23 #include <vector>
24 #include <set>
25 
26 class QFile;
27 
28 class PlaylistFileReader
29 {
30 public:
31     typedef std::vector<QString> Playlist;
32 
33     PlaylistFileReader(QString path);
34     PlaylistFileReader(FileSource source);
35     virtual ~PlaylistFileReader();
36 
37     virtual bool isOK() const;
38     virtual QString getError() const;
39     virtual Playlist load() const;
40 
41     static void getSupportedExtensions(std::set<QString> &extensions);
42 
43 protected:
44     void init();
45 
46     FileSource m_source;
47     QFile *m_file;
48     QString m_basedir;
49     QString m_error;
50 };
51 
52 #endif
53