kaudioplaystream_p.h
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef KAUDIOPLAYSTREAM_P_H
00021 #define KAUDIOPLAYSTREAM_P_H
00022 
00023 #include <soundserver.h>
00024 #include <stdsynthmodule.h>
00025 
00026 #include <qobject.h>
00027 
00028 class KArtsServer;
00029 class KAudioManagerPlay;
00030 namespace Arts {
00031     class Synth_AMAN_PLAY;
00032     class StereoEffectStack;
00033     class ByteStreamToAudio;
00034 }
00035 
00036 class KAudioPlayStream;
00037 class KByteSoundProducer;
00038 
00039 class KAudioPlayStreamPrivate : public QObject {
00040    Q_OBJECT
00041 public:
00042     KAudioPlayStreamPrivate( KArtsServer*, const QString title, QObject*, const char* =0 );
00043     ~KAudioPlayStreamPrivate();
00044 
00045     KArtsServer* _server;
00046     KAudioManagerPlay* _play;
00047     Arts::StereoEffectStack _effectrack;
00048     Arts::ByteStreamToAudio _bs2a;
00049     KByteSoundProducer* _sender;
00050     Arts::ByteSoundProducerV2 _artssender;
00051     bool _polling, _attached, _effects;
00052 
00053 public slots:
00054     void initaRts();
00055 };
00056 
00057 class KByteSoundProducer : virtual public Arts::ByteSoundProducerV2_skel
00058                          , virtual public Arts::StdSynthModule
00059 {
00060 public:
00061     KByteSoundProducer( KAudioPlayStream*, float minBufferTime, int rate, int bits, int channels, const char * title );
00062     ~KByteSoundProducer();
00063 
00064     long samplingRate() { return _samplingRate; }
00065     long channels() { return _channels; }
00066     long bits() { return _bits; }
00067     std::string title() { return _title; }
00068 
00069     void streamStart();
00070     void streamEnd();
00071 
00072 protected:
00073     void request_outdata( Arts::DataPacket<Arts::mcopbyte> *packet );
00074 
00075 private:
00076     long _samplingRate, _channels, _bits, _packets;
00077     std::string _title;
00078     enum { packetCapacity = 4096 };
00079     KAudioPlayStream* _impl;
00080 };
00081 
00082 #endif // KAUDIOPLAYSTREAM_P_H
00083 
00084 
 
This file is part of the documentation for arts Library Version 3.2.0.