Sayonara Player
Loading...
Searching...
No Matches
DirectoryReader.h
1/* DirectoryReader.h */
2
3/* Copyright (C) 2011-2024 Michael Lugmair (Lucio Carreras)
4 *
5 * This file is part of sayonara player
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef SAYONARA_DIRECTORY_READER
22#define SAYONARA_DIRECTORY_READER
23
24#include <QStringList>
25
26#include <memory>
27
28class QDir;
29class MetaDataList;
30
31namespace Tagging
32{
33 class TagReader;
34}
35
36namespace Util
37{
38 class FileSystem;
40 {
41 public:
43 virtual ~DirectoryReader() noexcept;
44
45 [[nodiscard]] virtual QStringList
46 scanFilesInDirectory(const QDir& baseDir, const QStringList& nameFilters = QStringList()) = 0;
47
48 [[nodiscard]] virtual QStringList
49 scanFilesRecursively(const QDir& baseDirOrig, const QStringList& nameFilters = QStringList()) = 0;
50
51 [[nodiscard]] virtual MetaDataList scanMetadata(const QStringList& fileList) = 0;
52
53 static std::shared_ptr<DirectoryReader> create(const std::shared_ptr<FileSystem>& fileSystem,
54 const std::shared_ptr<Tagging::TagReader>& tagReader);
55 };
56
57 using DirectoryReaderPtr = std::shared_ptr<DirectoryReader>;
58}
59
60#endif // SAYONARA_DIRECTORY_READER
Definition MetaDataList.h:34
Definition DirectoryReader.h:40
The GUI_TagEdit class.
Definition Engine.h:33
Helper functions.
Definition MetaTypeRegistry.h:25