kdatarequest_impl.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <kdebug.h>
00023 #include "flowsystem.h"
00024 #include "convert.h"
00025 #include "kdatarequest_impl.moc"
00026
00027 using namespace Arts;
00028
00029 KDataRequest_impl::KDataRequest_impl()
00030 {
00031 m_lastBlockSize = 0;
00032 m_outBlock = 0;
00033 }
00034
00035 KDataRequest_impl::~KDataRequest_impl()
00036 {
00037 delete []m_outBlock;
00038 }
00039
00040 void KDataRequest_impl::streamInit()
00041 {
00042 }
00043
00044 void KDataRequest_impl::streamEnd()
00045 {
00046 }
00047
00048 void KDataRequest_impl::calculateBlock(unsigned long samples)
00049 {
00050 long blockSize = samples * 4;
00051
00052 if(m_lastBlockSize != blockSize)
00053 {
00054 delete []m_outBlock;
00055 emit newBlockSize(blockSize);
00056
00057 m_outBlock = new unsigned char[blockSize];
00058
00059 emit newBlockPointer((long) m_outBlock);
00060
00061 m_lastBlockSize = blockSize;
00062 }
00063
00064 convert_stereo_2float_i16le(samples, left, right, m_outBlock);
00065 emit newData();
00066 }
00067
00068
00069
00070
00071
00072
00073
00074
00075 void KDataRequest_impl::goOn()
00076 {
00077 _node()->requireFlow();
00078 }
00079
00080 REGISTER_IMPLEMENTATION(KDataRequest_impl);
|