kaudiorecordstream.h
00001 /* 00002 00003 Copyright (C) 2001,2002 Matthias Kretz 00004 kretz@kde.org 00005 2003 Arnold Krille 00006 arnold@arnoldarts.de 00007 00008 This library is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Library General Public 00010 License as published by the Free Software Foundation; either 00011 version 2 of the License, or (at your option) any later version. 00012 00013 This library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Library General Public License for more details. 00017 00018 You should have received a copy of the GNU Library General Public License 00019 along with this library; see the file COPYING.LIB. If not, write to 00020 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00021 Boston, MA 02110-1301, USA. 00022 00023 */ 00024 00025 #ifndef _KAUDIORECORDSTREAM__H 00026 #define _KAUDIORECORDSTREAM__H 00027 00028 #include <qobject.h> 00029 00030 #include <kdelibs_export.h> 00031 00032 class KArtsServer; 00033 namespace Arts { class StereoEffectStack; } 00034 00041 class KDE_ARTS_EXPORT KAudioRecordStream : public QObject 00042 { 00043 Q_OBJECT 00044 00045 public: 00054 KAudioRecordStream( KArtsServer * server, const QString & title, QObject * parent = 0, const char * name = 0 ); 00055 00056 ~KAudioRecordStream(); 00057 00066 int read( char *, int size ); 00067 00074 void setBlockingIO( bool ); 00075 00081 bool blockingIO() const; 00082 00091 void usePolling( bool ); 00092 00098 bool polling() const; 00099 00103 Arts::StereoEffectStack effectStack() const; 00104 00109 bool running() const; 00110 00111 public slots: 00116 void stop(); 00117 00130 void start( int samplingRate, int bits, int channels ); 00131 00135 void flush(); 00136 00137 signals: 00145 void data( QByteArray & data ); 00146 00151 void running( bool ); 00152 00153 private slots: 00154 void slotRestartedServer(); 00155 void slotData( const char *, unsigned int ); 00156 00157 private: 00158 KAudioRecordStream( const KAudioRecordStream & ); 00159 KAudioRecordStream & operator=( const KAudioRecordStream & ); 00160 00161 struct Data; 00162 Data * d; 00163 }; 00164 00165 #endif //_KAUDIORECORDSTREAM__H