- Symbolizer is Processor::Block
- removed ISymbolizer git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1069 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
+27
-18
@@ -5,11 +5,11 @@
|
||||
#include "Symbolizer.hpp"
|
||||
|
||||
|
||||
Symbolizer::Symbolizer(ISymbolizer *pSymbolHandler)
|
||||
: m_pSymbolHandler(pSymbolHandler)
|
||||
, m_symbolBitCount(0)
|
||||
, m_lastSymbol(0)
|
||||
, m_symbolMask(0)
|
||||
Symbolizer::Symbolizer()
|
||||
: Processor::Block(1, 1)
|
||||
, m_symbolBitCount(0)
|
||||
, m_lastSymbol(0)
|
||||
, m_symbolMask(0)
|
||||
{
|
||||
setNumBitsPerSymbol(8);
|
||||
}
|
||||
@@ -35,7 +35,8 @@ void Symbolizer::process(uint8_t src)
|
||||
// Speed up
|
||||
if (m_nBitsPerSym == SIZEOF_DATA_BITS)
|
||||
{
|
||||
m_pSymbolHandler->onSymbol(differentialEncode((uint32_t)src));
|
||||
symbol_t symbol_encoded = differentialEncode((uint32_t)src);
|
||||
m_buf_out->write(&symbol_encoded, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -48,7 +49,8 @@ void Symbolizer::process(uint8_t src)
|
||||
m_symbolBitCount++;
|
||||
if (m_symbolBitCount == m_nBitsPerSym)
|
||||
{
|
||||
m_pSymbolHandler->onSymbol(differentialEncode(dst));
|
||||
symbol_t symbol_encoded = differentialEncode(dst);
|
||||
m_buf_out->write(&symbol_encoded, 1);
|
||||
m_symbolBitCount = 0;
|
||||
dst = 0;
|
||||
}
|
||||
@@ -67,6 +69,24 @@ void Symbolizer::process(void *pSrc, uint32_t len)
|
||||
}
|
||||
}
|
||||
|
||||
void Symbolizer::prepare()
|
||||
{
|
||||
// Get buffers
|
||||
m_buf_in = buffer_in<uint8_t>();
|
||||
m_buf_out = buffer_out<symbol_t>();
|
||||
}
|
||||
|
||||
void Symbolizer::process()
|
||||
{
|
||||
// Process input
|
||||
while(m_buf_in->len())
|
||||
{
|
||||
uint8_t data;
|
||||
m_buf_in->read(&data, 1);
|
||||
process(data);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t Symbolizer::differentialEncode(uint32_t symbol)
|
||||
{
|
||||
// Differential encode
|
||||
@@ -75,15 +95,4 @@ uint32_t Symbolizer::differentialEncode(uint32_t symbol)
|
||||
return m_lastSymbol;
|
||||
}
|
||||
|
||||
void Symbolizer::onFrame(void *pFrame, uint32_t size)
|
||||
{
|
||||
data_t *pData = (data_t*)pFrame;
|
||||
|
||||
while(size)
|
||||
{
|
||||
process(*(pData++));
|
||||
size -= sizeof(data_t);
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user