Sayonara Player
Converter.h
1 #ifndef AUDIOCONVERTER_H
2 #define AUDIOCONVERTER_H
3 
4 #include <QObject>
5 #include <QProcess>
6 #include "Utils/Pimpl.h"
7 
8 class MetaDataList;
9 class MetaData;
10 
11 class Converter :
12  public QObject
13 {
14  Q_OBJECT
15  PIMPL(Converter)
16 
17 signals:
18  void sig_finished();
19  void sig_progress(int percent);
20 
21 public:
22  Converter(int quality, QObject* parent=nullptr);
23  virtual ~Converter();
24 
25  virtual QStringList supported_input_formats() const=0;
26  virtual QString binary() const=0;
27 
28  QString log_directory() const;
29  QString target_file(const MetaData& md) const;
30  void add_metadata(const MetaDataList& v_md);
31  int num_errors() const;
32  int quality() const;
33  int num_files() const;
34  bool is_available() const;
35 
36 private:
37  bool start_process(const QString& process_name, const QStringList& arguments);
38 
39 protected:
40  virtual QStringList process_entry(const MetaData& md) const=0;
41  virtual QString extension() const=0;
42 
43 public slots:
44  void start(int num_threads, const QString& target_dir);
45  void stop();
46 
47 private slots:
48  void process_finished(int ret);
49  void error_occured(QProcess::ProcessError err);
50 };
51 
52 #endif // OGGCONVERTER_H
The MetaData class.
Definition: MetaData.h:44
The MetaDataList class.
Definition: MetaDataList.h:37
Definition: Converter.h:11