kwave  18.07.70
Encoder.h
Go to the documentation of this file.
1 /***************************************************************************
2  Encoder.h - abstract base class of all encoders
3  -------------------
4  begin : Mar 10 2002
5  copyright : (C) 2002 by Thomas Eschenbacher
6  email : Thomas Eschenbacher <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 ENCODER_H
19 #define ENCODER_H
20 
21 #include "config.h"
22 
23 #include <QtGlobal>
24 #include <QList>
25 #include <QObject>
26 
27 #include "libkwave/CodecBase.h"
28 #include "libkwave/FileInfo.h"
29 
30 class QIODevice;
31 class QWidget;
32 
33 namespace Kwave
34 {
35 
36  class MultiTrackReader;
37 
38  class Q_DECL_EXPORT Encoder: public QObject, public Kwave::CodecBase
39  {
40  Q_OBJECT
41  public:
43  Encoder();
44 
46  virtual ~Encoder() {}
47 
49  virtual Encoder *instance() = 0;
50 
60  virtual bool encode(QWidget *widget,
62  QIODevice &dst,
63  const Kwave::MetaDataList &meta_data) = 0;
64 
66  virtual QList<Kwave::FileProperty> supportedProperties() {
67  QList<Kwave::FileProperty> empty;
68  return empty;
69  }
70 
77  virtual QList<Kwave::FileProperty> unsupportedProperties(
78  const QList<Kwave::FileProperty> &properties_to_check
79  );
80  };
81 }
82 
83 #endif /* ENCODER_H */
84 
85 //***************************************************************************
86 //***************************************************************************
Definition: App.h:33
virtual ~Encoder()
Definition: Encoder.h:46
virtual QList< Kwave::FileProperty > supportedProperties()
Definition: Encoder.h:66