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
KDE Home | KDE Accessibility Home | Description of Access Keys