OSDN Git Service

Merge branch 'master' of github.com:lordmulder/LameXP
[lamexp/LameXP.git] / src / Thread_Process.h
index d1fac69..ec60b18 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 
 class QMutex;
 class AbstractFilter;
+class WaveProperties;
 
 class ProcessThread: public QThread
 {
        Q_OBJECT
 
 public:
-       ProcessThread(const AudioFileModel &audioFile, const QString &outputDirectory, AbstractEncoder *encoder, const bool prependRelativeSourcePath);
+       ProcessThread(const AudioFileModel &audioFile, const QString &outputDirectory, const QString &tempDirectory, AbstractEncoder *encoder, const bool prependRelativeSourcePath);
        ~ProcessThread(void);
        
        void run();
        
        void abort() { m_aborted = true; }
        QUuid getId() { return m_jobId; }
+       void setRenamePattern(const QString &pattern);
        void addFilter(AbstractFilter *filter);
 
 private slots:
@@ -59,24 +61,30 @@ private:
        enum ProcessStep
        {
                DecodingStep = 0,
-               FilteringStep = 1,
-               EncodingStep = 2,
-               UnknownStep = 3
+               AnalyzeStep = 1,
+               FilteringStep = 2,
+               EncodingStep = 3,
+               UnknownStep = 4
        };
        
        void processFile();
        QString generateOutFileName(void);
        QString generateTempFileName(void);
+       void insertDownsampleFilter(void);
+       void insertDownmixFilter(void);
        
        const QUuid m_jobId;
        AudioFileModel m_audioFile;
        AbstractEncoder *m_encoder;
        const QString m_outputDirectory;
+       const QString m_tempDirectory;
        volatile bool m_aborted;
        ProcessStep m_currentStep;
        QStringList m_tempFiles;
        const bool m_prependRelativeSourcePath;
        QList<AbstractFilter*> m_filters;
+       QString m_renamePattern;
+       WaveProperties *m_propDetect;
        
        static QMutex *m_mutex_genFileName;
 };