1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include "XnLinkUnpackedDataReductionParser.h"
#include "XnLinkProtoUtils.h"
#include "XnLinkDefs.h"
#include <XnOS.h>
#include <XnLog.h>
namespace xn
{
const XnUInt16 LinkUnpackedDataReductionParser::FACTOR = 200;
LinkUnpackedDataReductionParser::LinkUnpackedDataReductionParser()
{
}
LinkUnpackedDataReductionParser::~LinkUnpackedDataReductionParser()
{
}
XnStatus LinkUnpackedDataReductionParser::ParsePacketImpl(XnLinkFragmentation /*fragmentation*/,
const XnUInt8* pSrc,
const XnUInt8* pSrcEnd,
XnUInt8*& pDst,
const XnUInt8* pDstEnd)
{
XnSizeT nPacketDataSize = pSrcEnd - pSrc;
if ((pDst + nPacketDataSize) > pDstEnd)
{
XN_ASSERT(FALSE);
return XN_STATUS_OUTPUT_BUFFER_OVERFLOW;
}
////////////////////////////////////////////
while (pSrc < pSrcEnd)
{
*((XnUInt16*)pDst) = *((XnUInt16*)pSrc) * FACTOR;
pDst += sizeof(XnUInt16);
pSrc += sizeof(XnUInt16);
}
////////////////////////////////////////////
return XN_STATUS_OK;
}
}
|