OSDN Git Service

Updated Monkey's Audio binary to v4.11 (2013-01-20), including STDERR flush fix.
[lamexp/LameXP.git] / src / Encoder_Abstract.h
index ec9fcfe..6bb3690 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2010 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2013 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
 
 #pragma once
 
+#include "Tool_Abstract.h"
 #include "Model_AudioFile.h"
 
-#include <QObject>
-
 class QProcess;
 class QStringList;
 class QMutex;
 
-class AbstractEncoder : public QObject
+class AbstractEncoder : public AbstractTool
 {
        Q_OBJECT
 
 public:
        AbstractEncoder(void);
-       ~AbstractEncoder(void);
+       virtual ~AbstractEncoder(void);
 
        //Internal encoder API
-       virtual bool encode(const AudioFileModel &sourceFile, const QString &outputFile, volatile bool *abortFlag) = 0;
+       virtual bool encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag) = 0;
        virtual bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion) = 0;
        virtual QString extension(void) = 0;
+       virtual const unsigned int *supportedSamplerates(void);
+       virtual const unsigned int *supportedChannelCount(void);
+       virtual const unsigned int *supportedBitdepths(void);
+       virtual const bool needsTimingInfo(void);
 
        //Common setter methods
        void setBitrate(int bitrate);
        void setRCMode(int mode);
-
-       //Auxiliary functions
-       bool startProcess(QProcess &process, const QString &program, const QStringList &args);
-       static QString commandline2string(const QString &program, const QStringList &arguments);
-
-signals:
-       void statusUpdated(int progress);
-       void messageLogged(const QString &line);
+       void setCustomParams(const QString &customParams);
 
 protected:
        int m_configBitrate;
        int m_configRCMode;
+       QString m_configCustomParams;
 
-private:
-       static QMutex *m_mutex_startProcess;
-       static void *m_handle_jobObject;
+       //Helper functions
+       bool isUnicode(const QString &text);
+       QString cleanTag(const QString &text);
 };