51 lines
946 B
C++
51 lines
946 B
C++
#ifndef _MIXER_SAMPLEDATA_HPP_
|
|
#define _MIXER_SAMPLEDATA_HPP_
|
|
#ifndef _COMMON_ARRAY_HPP_
|
|
#include <common/array.hpp>
|
|
#endif
|
|
|
|
class SampleData : protected Array<BYTE>
|
|
{
|
|
public:
|
|
friend class SampleDataByte;
|
|
friend class SampleDataWord;
|
|
typedef enum BitsPerSample{Bit16=16,Bit8=8};
|
|
BitsPerSample getBitsPerSample(void)const;
|
|
void setNumSamples(int numSamples);
|
|
int getNumSamples(void)const;
|
|
virtual ~SampleData();
|
|
private:
|
|
SampleData(BitsPerSample bitsPerSample=Bit16);
|
|
BitsPerSample mBitsPerSample;
|
|
};
|
|
|
|
inline
|
|
SampleData::SampleData(BitsPerSample bitsPerSample)
|
|
: mBitsPerSample(bitsPerSample)
|
|
{
|
|
}
|
|
|
|
inline
|
|
SampleData::~SampleData()
|
|
{
|
|
}
|
|
|
|
inline
|
|
SampleData::BitsPerSample SampleData::getBitsPerSample(void)const
|
|
{
|
|
return mBitsPerSample;
|
|
}
|
|
|
|
inline
|
|
void SampleData::setNumSamples(int numSamples)
|
|
{
|
|
size(numSamples*(mBitsPerSample>>3));
|
|
}
|
|
|
|
inline
|
|
int SampleData::getNumSamples(void)const
|
|
{
|
|
return size()/(mBitsPerSample>>3);
|
|
}
|
|
#endif
|