kwave  18.07.70
FlacEncoder.h
Go to the documentation of this file.
1 /*************************************************************************
2  FlacEncoder.h - encoder for FLAC data
3  -------------------
4  begin : Tue Feb 28 2004
5  copyright : (C) 2004 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 FLAC_ENCODER_H
19 #define FLAC_ENCODER_H
20 
21 #include "config.h"
22 
23 #include <QList>
24 #include <QVector>
25 
26 #include <FLAC++/encoder.h>
27 #include <FLAC++/metadata.h>
28 #include <FLAC/format.h>
29 
30 #include <vorbis/vorbisenc.h>
31 
32 #include "libkwave/Encoder.h"
34 
35 class QIODevice;
36 class QWidget;
37 
38 namespace Kwave
39 {
40 
41  class MultiTrackReader;
42 
43  class FlacEncoder: public Kwave::Encoder,
44  protected FLAC::Encoder::Stream
45  {
46  public:
48  FlacEncoder();
49 
51  virtual ~FlacEncoder() Q_DECL_OVERRIDE;
52 
54  virtual Kwave::Encoder *instance() Q_DECL_OVERRIDE;
55 
65  virtual bool encode(QWidget *widget, Kwave::MultiTrackReader &src,
66  QIODevice &dst,
67  const Kwave::MetaDataList &meta_data)
68  Q_DECL_OVERRIDE;
69 
71  virtual QList<Kwave::FileProperty> supportedProperties()
72  Q_DECL_OVERRIDE;
73 
74  protected:
75 
85  virtual ::FLAC__StreamEncoderWriteStatus write_callback(
86  const FLAC__byte buffer[], size_t bytes,
87  unsigned samples, unsigned current_frame) Q_DECL_OVERRIDE;
88 
95  virtual void metadata_callback(const ::FLAC__StreamMetadata *metadata)
96  Q_DECL_OVERRIDE;
97 
104  virtual void encodeMetaData(const Kwave::FileInfo &info,
105  QVector<FLAC__StreamMetadata *> &flac_metadata);
106 
107  protected:
108 
110  {
111  public:
114 
116  virtual ~VorbisCommentContainer();
117 
124  void add(const QString &tag, const QString &value);
125 
127  FLAC__StreamMetadata *data();
128 
129  private:
131  FLAC__StreamMetadata *m_vc;
132  };
133 
134  private:
135 
138 
140  QIODevice *m_dst;
141 
142  };
143 }
144 
145 #endif /* FLAC_ENCODER_H */
146 
147 //***************************************************************************
148 //***************************************************************************
virtual void metadata_callback(const ::FLAC__StreamMetadata *metadata) Q_DECL_OVERRIDE
Definition: FlacEncoder.cpp:90
QIODevice * m_dst
Definition: FlacEncoder.h:140
Definition: App.h:33
virtual bool encode(QWidget *widget, Kwave::MultiTrackReader &src, QIODevice &dst, const Kwave::MetaDataList &meta_data) Q_DECL_OVERRIDE
virtual Kwave::Encoder * instance() Q_DECL_OVERRIDE
Definition: FlacEncoder.cpp:60
virtual void encodeMetaData(const Kwave::FileInfo &info, QVector< FLAC__StreamMetadata *> &flac_metadata)
Kwave::VorbisCommentMap m_vorbis_comment_map
Definition: FlacEncoder.h:137
virtual QList< Kwave::FileProperty > supportedProperties() Q_DECL_OVERRIDE
Definition: FlacEncoder.cpp:66
void add(const QString &tag, const QString &value)
virtual ~FlacEncoder() Q_DECL_OVERRIDE
Definition: FlacEncoder.cpp:55
virtual ::FLAC__StreamEncoderWriteStatus write_callback(const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame) Q_DECL_OVERRIDE
Definition: FlacEncoder.cpp:72