[3e4acc]: libkwave / CodecManager.h  Maximize  Restore  History

Download this file

138 lines (114 with data), 4.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/***************************************************************************
CodecManager.h - manager for Kwave's coders and decoders
-------------------
begin : Mar 10 2002
copyright : (C) 2002 by Thomas Eschenbacher
email : Thomas Eschenbacher <thomas.eschenbacher@gmx.de>
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef _CODEC_MANAGER_H_
#define _CODEC_MANAGER_H_
#include "config.h"
#include <QObject>
#include <QList>
#include <QString>
#include <QStringList>
#include <kdemacros.h>
#include <kmimetype.h>
class Decoder;
class Encoder;
class KMimeType;
class QMimeData;
class KDE_EXPORT CodecManager: public QObject
{
Q_OBJECT
public:
/** Constructor */
CodecManager();
/** Destructor */
virtual ~CodecManager();
/**
* Registers a new encoder.
* @param encoder a KwaveEncoder that will be used as template for
* creating new encoder instances (used as factory)
*/
static void registerEncoder(Encoder &encoder);
/**
* Registers a new decoder.
* @param decoder a KwaveDecoder that will be used as template for
* creating new decoder instances (used as factory)
*/
static void registerDecoder(Decoder &decoder);
/**
* Returns true if a decoder for the given mime type is known.
* @param mimetype mime type describing the audio format
* @return true if format is supported, false if not
*/
static bool canDecode(const KMimeType &mimetype);
/**
* Returns true if a decoder for the given mime type is known.
* @param mimetype_name name of the mime type
* @return true if format is supported, false if not
*/
static bool canDecode(const QString &mimetype_name);
/**
* Tries to find a decoder that matches to a given mime type.
* @param mimetype mime type of the source
* @return a new decoder for the mime type or null if none found.
*/
static Decoder *decoder(const KMimeType &mimetype);
/**
* Same as above, but takes the mime type as string.
* @param mimetype_name name of the mime type
* @return a new decoder for the mime type or null if none found.
*/
static Decoder *decoder(const QString &mimetype_name);
/**
* Same as above, but takes the mime info from a QMimeData.
* @param mime_source source with a mime type (null pointer is allowed)
* @return a new decoder for the mime type or null if none found.
*/
static Decoder *decoder(const QMimeData *mime_source);
/**
* Tries to find an encoder that matches to a given mime type.
* @param mimetype_name name of the mime type of the destination
* @return a new encoder for the mime type or null if none found.
*/
static Encoder *encoder(const QString &mimetype_name);
/**
* Returns a string with a list of all file types that can be used
* for saving. The string is localized and can be used as a filter
* for a KFileDialog. The entries are unique (by file extension) but
* not sorted alphabetically.
*/
static QString encodingFilter();
/**
* Returns a string with a list of all file types that can be used
* for loading. The string is localized and can be used as a filter
* for a KFileDialog. The entries are unique (by file extension) but
* not sorted alphabetically.
*/
static QString decodingFilter();
/**
* Tries to find the name of a mime type of a decoder by a URL.
* If not found, it returns the default mime type, never an empty string.
* @param url a KUrl, only the filename's extension will be inspected
* @return name of the mime type or the default mime type
*/
static QString whatContains(const KUrl &url);
/** Returns a list of supported mime types for encoding */
static QStringList encodingMimeTypes();
private:
/** list of all encoders */
static QList<Encoder *> m_encoders;
/** list of decoders */
static QList<Decoder *> m_decoders;
};
#endif /* _CODEC_MANAGER_H_ */