kwave  18.07.70
Decoder.h
Go to the documentation of this file.
1 /***************************************************************************
2  Decoder.h - abstract base class of all decoders
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 DECODER_H
19 #define DECODER_H
20 
21 #include "config.h"
22 
23 #include <QtGlobal>
24 #include <QObject>
25 
26 #include "libkwave/CodecBase.h"
27 #include "libkwave/MetaDataList.h"
28 
29 class QIODevice;
30 class QWidget;
31 
32 namespace Kwave
33 {
34 
35  class MultiWriter;
36 
37  class Q_DECL_EXPORT Decoder: public QObject, public Kwave::CodecBase
38  {
39  Q_OBJECT
40  public:
41 
43  Decoder();
44 
46  virtual ~Decoder();
47 
49  virtual Decoder *instance() = 0;
50 
58  virtual bool open(QWidget *widget, QIODevice &source) = 0;
59 
67  virtual bool decode(QWidget *widget, Kwave::MultiWriter &dst) = 0;
68 
72  virtual void close() = 0;
73 
78  virtual inline Kwave::MetaDataList &metaData() { return m_meta_data; }
79 
80  signals:
81 
88  void sourceProcessed(quint64 pos);
89 
90  protected:
91 
94 
95  };
96 }
97 
98 #endif /* DECODER_H */
99 
100 //***************************************************************************
101 //***************************************************************************
Definition: App.h:33
virtual Kwave::MetaDataList & metaData()
Definition: Decoder.h:78
Kwave::MetaDataList m_meta_data
Definition: Decoder.h:93