Fixed a typo, thanks to Rub3n CT for reporting.
[LameXP.git] / src / Thread_FileAnalyzer.h
blobd41f75371347ed28870ecdfa314dd0ce4075c4a3
1 ///////////////////////////////////////////////////////////////////////////////
2 // LameXP - Audio Encoder Front-End
3 // Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License along
16 // with this program; if not, write to the Free Software Foundation, Inc.,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 // http://www.gnu.org/licenses/gpl-2.0.txt
20 ///////////////////////////////////////////////////////////////////////////////
22 #pragma once
24 //#include "Model_AudioFile.h"
26 #include <QThread>
27 #include <QStringList>
29 class AudioFileModel;
30 class QFile;
31 class QDir;
32 class QFileInfo;
34 ////////////////////////////////////////////////////////////
35 // Splash Thread
36 ////////////////////////////////////////////////////////////
38 class FileAnalyzer: public QThread
40 Q_OBJECT
42 public:
43 FileAnalyzer(const QStringList &inputFiles);
44 void run();
45 bool getSuccess(void) { return !isRunning() && m_bSuccess; }
46 unsigned int filesAccepted(void);
47 unsigned int filesRejected(void);
48 unsigned int filesDenied(void);
49 unsigned int filesDummyCDDA(void);
50 unsigned int filesCueSheet(void);
52 signals:
53 void fileSelected(const QString &fileName);
54 void fileAnalyzed(const AudioFileModel &file);
56 public slots:
57 void abortProcess(void) { m_abortFlag = true; }
59 private:
60 enum section_t
62 sectionGeneral,
63 sectionAudio,
64 sectionOther
66 enum cover_t
68 coverNone,
69 coverJpeg,
70 coverPng,
71 coverGif
73 enum fileType_t
75 fileTypeNormal = 0,
76 fileTypeCDDA = 1,
77 fileTypeDenied = 2,
78 fileTypeSkip = 3
81 const AudioFileModel analyzeFile(const QString &filePath, int *type);
82 void updateInfo(AudioFileModel &audioFile, const QString &key, const QString &value);
83 void updateSection(const QString &section);
84 unsigned int parseYear(const QString &str);
85 unsigned int parseDuration(const QString &str);
86 bool checkFile_CDDA(QFile &file);
87 void retrieveCover(AudioFileModel &audioFile, const QString &filePath);
88 bool analyzeAvisynthFile(const QString &filePath, AudioFileModel &info);
90 const QString m_mediaInfoBin;
91 const QString m_avs2wavBin;
93 QStringList m_inputFiles;
94 QStringList m_recentlyAdded;
95 section_t m_currentSection;
96 cover_t m_currentCover;
97 unsigned int m_filesAccepted;
98 unsigned int m_filesRejected;
99 unsigned int m_filesDenied;
100 unsigned int m_filesDummyCDDA;
101 unsigned int m_filesCueSheet;
103 volatile bool m_abortFlag;
105 bool m_bAborted;
106 bool m_bSuccess;