File indexing completed on 2024-04-14 04:43:59

0001 /*
0002    SPDX-FileCopyrightText: 2018 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr>
0003 
0004    SPDX-License-Identifier: LGPL-3.0-or-later
0005  */
0006 
0007 #ifndef FILESCANNER_H
0008 #define FILESCANNER_H
0009 
0010 #include "elisaLib_export.h"
0011 
0012 #include "datatypes.h"
0013 
0014 #include <memory>
0015 
0016 class QFileInfo;
0017 class QUrl;
0018 class FileScannerPrivate;
0019 
0020 class ELISALIB_EXPORT FileScanner
0021 {
0022 public:
0023 
0024     FileScanner();
0025 
0026     ~FileScanner();
0027 
0028     bool shouldScanFile(const QString &scanFile);
0029 
0030     DataTypes::TrackDataType scanOneFile(const QUrl &scanFile);
0031 
0032     DataTypes::TrackDataType scanOneFile(const QUrl &scanFile, const QFileInfo &scanFileInfo);
0033 
0034     QUrl searchForCoverFile(const QString &localFileName);
0035 
0036 private:
0037 
0038     void scanProperties(const QString &localFileName, DataTypes::TrackDataType &trackData);
0039 
0040     bool checkEmbeddedCoverImage(const QString &localFileName);
0041 
0042     std::unique_ptr<FileScannerPrivate> d;
0043 
0044 };
0045 
0046 #endif // FILESCANNER_H