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