kwave  18.07.70
MP3Encoder.h
Go to the documentation of this file.
1 /*************************************************************************
2  MP3Encoder.h - export of MP3 data via "lame"
3  -------------------
4  begin : Sat May 19 2012
5  copyright : (C) 2012 by Thomas Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef MP3_ENCODER_H
19 #define MP3_ENCODER_H
20 
21 #include "config.h"
22 
23 #include <limits.h>
24 
25 #include <QList>
26 #include <QMutex>
27 #include <QProcess>
28 
29 #include "libkwave/Encoder.h"
30 
31 #include "ID3_PropertyMap.h"
32 
33 class ID3_Tag;
34 class QIODevice;
35 class QWidget;
36 
37 namespace Kwave
38 {
39 
40  class MultiTrackReader;
41 
42  class MP3Encoder: public Kwave::Encoder
43  {
44  Q_OBJECT
45  public:
47  MP3Encoder();
48 
50  virtual ~MP3Encoder();
51 
53  virtual Kwave::Encoder *instance();
54 
64  virtual bool encode(QWidget *widget, Kwave::MultiTrackReader &src,
65  QIODevice &dst,
66  const Kwave::MetaDataList &meta_data);
67 
69  virtual QList<Kwave::FileProperty> supportedProperties();
70 
71  private slots:
72 
74  void dataAvailable();
75 
76  private:
77 
83  void encodeID3Tags(const Kwave::MetaDataList &meta_data,
84  ID3_Tag &tag);
85 
86  private:
87 
90 
92  QMutex m_lock;
93 
95  QIODevice *m_dst;
96 
98  QProcess m_process;
99 
101  QString m_program;
102 
104  QStringList m_params;
105 
116  quint8 m_write_buffer[PIPE_BUF];
117 
119  char m_read_buffer[PIPE_BUF];
120 
121  };
122 }
123 
124 #endif /* MP3_ENCODER_H */
125 
126 //***************************************************************************
127 //***************************************************************************
QProcess m_process
Definition: MP3Encoder.h:98
virtual QList< Kwave::FileProperty > supportedProperties()
Definition: MP3Encoder.cpp:80
Definition: App.h:33
virtual Kwave::Encoder * instance()
Definition: MP3Encoder.cpp:74
ID3_PropertyMap m_property_map
Definition: MP3Encoder.h:89
void encodeID3Tags(const Kwave::MetaDataList &meta_data, ID3_Tag &tag)
Definition: MP3Encoder.cpp:86
QIODevice * m_dst
Definition: MP3Encoder.h:95
char m_read_buffer[PIPE_BUF]
Definition: MP3Encoder.h:119
quint8 m_write_buffer[PIPE_BUF]
Definition: MP3Encoder.h:116
virtual ~MP3Encoder()
Definition: MP3Encoder.cpp:69
virtual bool encode(QWidget *widget, Kwave::MultiTrackReader &src, QIODevice &dst, const Kwave::MetaDataList &meta_data)
Definition: MP3Encoder.cpp:265
QStringList m_params
Definition: MP3Encoder.h:104