Initial
This commit is contained in:
48
sample/PureSmpl.cpp
Normal file
48
sample/PureSmpl.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include <sample/puresmpl.hpp>
|
||||
|
||||
PureSample &PureSample::operator=(const PureSample &somePureSample)
|
||||
{
|
||||
numSamples(somePureSample.numSamples());
|
||||
if(!isOkay())return *this;
|
||||
copySampleData(&(((GlobalData<BYTE>&)mSampleData).operator[](0)),&(((GlobalData<BYTE>&)somePureSample.mSampleData).operator[](0)),numSamples());
|
||||
return *this;
|
||||
}
|
||||
|
||||
PureSample &PureSample::operator+=(const PureSample &somePureSample)
|
||||
{
|
||||
PureSample mixedSample;
|
||||
DWORD clampOne;
|
||||
DWORD clampTwo;
|
||||
UHUGE *lpMixedSample;
|
||||
UHUGE *lpSampleOne;
|
||||
UHUGE *lpSampleTwo;
|
||||
|
||||
if(numSamples()>somePureSample.numSamples())
|
||||
{
|
||||
clampOne=somePureSample.numSamples();
|
||||
clampTwo=numSamples();
|
||||
lpSampleOne=sampleData();
|
||||
lpSampleTwo=((PureSample&)somePureSample).sampleData();
|
||||
}
|
||||
else
|
||||
{
|
||||
clampOne=numSamples();
|
||||
clampTwo=somePureSample.numSamples();
|
||||
lpSampleOne=((PureSample&)somePureSample).sampleData();
|
||||
lpSampleTwo=sampleData();
|
||||
}
|
||||
mixedSample.numSamples(clampTwo);
|
||||
lpMixedSample=mixedSample.sampleData();
|
||||
for(DWORD sampleIndex=0;sampleIndex<clampOne;sampleIndex++)
|
||||
*(lpMixedSample+sampleIndex)=((WORD)*(lpSampleOne+sampleIndex)+(WORD)*(lpSampleTwo+sampleIndex))>>0x01;
|
||||
for(;sampleIndex<clampTwo;sampleIndex++)
|
||||
*(lpMixedSample+sampleIndex)=((WORD)*(lpSampleOne+sampleIndex));
|
||||
*this=mixedSample;
|
||||
return *this;
|
||||
}
|
||||
|
||||
void PureSample::copySampleData(UHUGE *lpDstSample,UHUGE *lpSrcSample,DWORD numBytes)
|
||||
{
|
||||
::memcpy(lpDstSample,lpSrcSample,numBytes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user