From e2de64d6f1beb9e492daf5b886e19933c1fa41dd Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- krec/krecexport_template.h | 99 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 krec/krecexport_template.h (limited to 'krec/krecexport_template.h') diff --git a/krec/krecexport_template.h b/krec/krecexport_template.h new file mode 100644 index 00000000..8a1c4a03 --- /dev/null +++ b/krec/krecexport_template.h @@ -0,0 +1,99 @@ +/*************************************************************************** + copyright : (C) 2003 by Arnold Krille + email : arnold@arnoldarts.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; version 2 of the License. * + * * + ***************************************************************************/ + +#ifndef KREC_EXPORT_TEMPLATE_H +#define KREC_EXPORT_TEMPLATE_H + +#include + +#include +#include +#include +#include + +/** + * This class is the template for all exportitems in KRec. + * + * To register your ExportItem you have to do @code registerAtGlobal( this ); @code + * at the end of your constructor. + * + * @author Arnold Krille +*/ +class KRecExportItem : public QObject { + Q_OBJECT +private: + /// Controls wether an export is running, or not... + bool _running; + int _samplingRate, _bits, _channels; +protected: + KRecExportItem( QObject*, const char* =0, const QStringList& =0 ); + + /** + * This registers this class at the KRecGlobal. + */ + static void registerAtGlobal( KRecExportItem* ); + + int samplingRate() const; + int bits() const; + int channels() const; + + /// Helpers for reading and writing to an char-array + Q_INT16 read16( char* array, int index ); + void write16( char* array, Q_INT16 value, int index ); + void write32( char* array, Q_INT32 value, int index ); +public: + ~KRecExportItem(); + + /** + * Returns a new Item for your export. + */ + virtual KRecExportItem* newItem()=0; + + /// Returns a list with the extensions. + virtual QStringList extensions()=0; + /// Returns the export format. + virtual QString exportFormat()=0; + + bool running() const { return _running; } +public slots: + /** + * Initializes the sound-settings. + * Has to be called before the initialize( const QString & ) function. + */ + void initialize( int samplingRate, int bits, int channels ); + /// Initializes the export. + virtual bool initialize( const QString &filename )=0; + /** + * Start the real export (including the emission of @see getData() while running=true). + * Best way to do this is to use @see QTimer::singleShot() since then the events are + * put at the end of the EventLoop not blocking the gui and everything else. + */ + bool start(); + virtual bool process() =0; + + /// Stops the export by setting running=false. + void stop(); + /// Finish the export. + virtual bool finalize()=0; + //virtual void data( QByteArray& ); +signals: + /// Is emitted when this Item wants data to export. + void getData( QByteArray& ); + + void running( bool ); +}; + + +#endif + +// vim:sw=4:ts=4 -- cgit v1.2.1