Initial
This commit is contained in:
112
sample/holdii/PureSmpl.hpp
Normal file
112
sample/holdii/PureSmpl.hpp
Normal file
@@ -0,0 +1,112 @@
|
||||
#ifndef _SAMPLE_PURESAMPLE_HPP_
|
||||
#define _SAMPLE_PURESAMPLE_HPP_
|
||||
#ifndef _COMMON_TYPES_HPP_
|
||||
#include <common/types.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_MEMFILE_HPP_
|
||||
#include <common/memfile.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_OPENFILE_HPP_
|
||||
#include <common/openfile.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_GLOBALDATA_HPP_
|
||||
#include <common/gdata.hpp>
|
||||
#endif
|
||||
|
||||
// This object holds the sample data as bytes. It does not know anything about the internal
|
||||
// makeup of the sample (ie) does not know how many bits per sample
|
||||
|
||||
class PureSample
|
||||
{
|
||||
public:
|
||||
PureSample(void);
|
||||
PureSample(const PureSample &somePureSample);
|
||||
virtual ~PureSample();
|
||||
PureSample &operator=(const PureSample &somePureSample);
|
||||
PureSample &operator+=(const PureSample &somePureSample);
|
||||
DWORD numSamples(void)const;
|
||||
void numSamples(DWORD numSamples);
|
||||
UHUGE *sampleData(void);
|
||||
WORD isOkay(void)const;
|
||||
MemFile &operator>>(MemFile &someMemFile)const;
|
||||
FileHandle &operator<<(FileHandle &someFileHandle);
|
||||
String toString(void)const;
|
||||
private:
|
||||
void copySampleData(UHUGE *lpDstSample,UHUGE *lpSrcSamples,DWORD numBytes);
|
||||
DWORD mNumSamples;
|
||||
GlobalData<BYTE> mSampleData;
|
||||
};
|
||||
|
||||
inline
|
||||
PureSample::PureSample(void)
|
||||
: mNumSamples(0)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
PureSample::PureSample(const PureSample &somePureSample)
|
||||
{
|
||||
*this=somePureSample;
|
||||
}
|
||||
|
||||
inline
|
||||
PureSample::~PureSample()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
DWORD PureSample::numSamples(void)const
|
||||
{
|
||||
return mNumSamples;
|
||||
}
|
||||
|
||||
inline
|
||||
void PureSample::numSamples(DWORD numSamples)
|
||||
{
|
||||
mNumSamples=numSamples;
|
||||
mSampleData.size(mNumSamples,GMEM_MOVEABLE);
|
||||
}
|
||||
|
||||
inline
|
||||
UHUGE *PureSample::sampleData(void)
|
||||
{
|
||||
if(!isOkay())return (UHUGE*)0;
|
||||
return (UHUGE*)&mSampleData[0];
|
||||
}
|
||||
|
||||
inline
|
||||
MemFile &PureSample::operator>>(MemFile &someMemFile)const
|
||||
{
|
||||
if(!isOkay())return someMemFile;
|
||||
someMemFile.write((char*)(UHUGE*)&(((GlobalData<BYTE>&)mSampleData)[0]),mNumSamples);
|
||||
return someMemFile;
|
||||
}
|
||||
|
||||
inline
|
||||
FileHandle &PureSample::operator<<(FileHandle &someFileHandle)
|
||||
{
|
||||
if(!isOkay())return someFileHandle;
|
||||
someFileHandle.read((BYTE*)(UHUGE*)&mSampleData[0],mNumSamples);
|
||||
return someFileHandle;
|
||||
}
|
||||
|
||||
inline
|
||||
WORD PureSample::isOkay(void)const
|
||||
{
|
||||
return mSampleData.isOkay();
|
||||
}
|
||||
|
||||
inline
|
||||
String PureSample::toString(void)const
|
||||
{
|
||||
String strPureSample;
|
||||
strPureSample+="<PURESAMPLE>";
|
||||
strPureSample+=String(" NumSamples=")+String().fromInt(mNumSamples).quotes();
|
||||
strPureSample+=String(" SampleData=")+String().fromInt(mSampleData.size()).quotes();
|
||||
strPureSample+=String("<PURESAMPLE/>");
|
||||
return strPureSample;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user