annotate data/fileio/PlaylistFileReader.h @ 1854:bde22957545e

Add support for doubling escapes for quotes in quoted texts in CSV-like formats on import (similar to how we, and the relevant RFC, do escaping on export now)
author Chris Cannam
date Mon, 11 May 2020 14:43:58 +0100
parents f36fef97ac81
children
rev   line source
Chris@297 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@297 2
Chris@297 3 /*
Chris@297 4 Sonic Visualiser
Chris@297 5 An audio file viewer and annotation editor.
Chris@297 6 Centre for Digital Music, Queen Mary, University of London.
Chris@297 7 This file copyright 2007 QMUL.
Chris@297 8
Chris@297 9 This program is free software; you can redistribute it and/or
Chris@297 10 modify it under the terms of the GNU General Public License as
Chris@297 11 published by the Free Software Foundation; either version 2 of the
Chris@297 12 License, or (at your option) any later version. See the file
Chris@297 13 COPYING included with this distribution for more information.
Chris@297 14 */
Chris@297 15
Chris@1581 16 #ifndef SV_PLAYLIST_FILE_READER_H
Chris@1581 17 #define SV_PLAYLIST_FILE_READER_H
Chris@297 18
Chris@401 19 #include "FileSource.h"
Chris@401 20
Chris@297 21 #include <QString>
Chris@297 22
Chris@297 23 #include <vector>
Chris@297 24 #include <set>
Chris@297 25
Chris@297 26 class QFile;
Chris@297 27
Chris@297 28 class PlaylistFileReader
Chris@297 29 {
Chris@297 30 public:
Chris@297 31 typedef std::vector<QString> Playlist;
Chris@297 32
Chris@297 33 PlaylistFileReader(QString path);
Chris@401 34 PlaylistFileReader(FileSource source);
Chris@297 35 virtual ~PlaylistFileReader();
Chris@297 36
Chris@297 37 virtual bool isOK() const;
Chris@297 38 virtual QString getError() const;
Chris@297 39 virtual Playlist load() const;
Chris@297 40
Chris@1853 41 // Return the set of file extensions that are expected to
Chris@1853 42 // represent parseable playlists.
Chris@297 43 static void getSupportedExtensions(std::set<QString> &extensions);
Chris@297 44
Chris@1853 45 // Return true if the given source has a file extension that is
Chris@1853 46 // one of the supported extensions. Does not look at the content
Chris@1853 47 // of the file.
Chris@1853 48 static bool isSupported(FileSource source);
Chris@1853 49
Chris@297 50 protected:
Chris@401 51 void init();
Chris@401 52
Chris@401 53 FileSource m_source;
Chris@297 54 QFile *m_file;
Chris@440 55 QString m_basedir;
Chris@297 56 QString m_error;
Chris@297 57 };
Chris@297 58
Chris@297 59 #endif