File indexing completed on 2024-05-12 04:51:02

0001 /*
0002     SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 
0007 #ifndef _K3B_AUDIO_NORMALIZE_JOB_H_
0008 #define _K3B_AUDIO_NORMALIZE_JOB_H_
0009 
0010 
0011 #include "k3bjob.h"
0012 
0013 #include <QList>
0014 #include <QProcess>
0015 
0016 namespace K3b {
0017     class Process;
0018 
0019     class AudioNormalizeJob : public Job
0020     {
0021         Q_OBJECT
0022 
0023     public:
0024         explicit AudioNormalizeJob( JobHandler*, QObject* parent = 0 );
0025         ~AudioNormalizeJob() override;
0026 
0027     public Q_SLOTS:
0028         void start() override;
0029         void cancel() override;
0030 
0031         void setFilesToNormalize( const QList<QString>& files ) { m_files = files; }
0032 
0033     private Q_SLOTS:
0034         void slotStdLine( const QString& line );
0035         void slotProcessExited( int exitCode, QProcess::ExitStatus exitStatus );
0036 
0037     private:
0038         Process* m_process;
0039 
0040         QList<QString> m_files;
0041         bool m_canceled;
0042 
0043         enum Action {
0044             COMPUTING_LEVELS,
0045             ADJUSTING_LEVELS
0046         };
0047 
0048         int m_currentAction;
0049         int m_currentTrack;
0050     };
0051 }
0052 
0053 
0054 #endif