snapcast/common/chunk.cpp
(no author) 3e6a1e5b07 buffers
git-svn-id: svn://elaine/murooma/trunk@182 d8a302eb-03bc-478d-80e4-98257eca68ef
2014-08-11 20:42:35 +00:00

45 lines
660 B
C++

#include "chunk.h"
#include <string.h>
#include <iostream>
Chunk::Chunk(WireChunk* _wireChunk) : idx(0), wireChunk(_wireChunk)
{
}
Chunk::~Chunk()
{
delete wireChunk;
}
bool Chunk::isEndOfChunk()
{
return idx >= WIRE_CHUNK_SIZE;
}
bool Chunk::getNext(int16_t& _result)
{
if (isEndOfChunk())
return false;
_result = wireChunk->payload[idx++];
return true;
}
int Chunk::read(short* _outputBuffer, int _count)
{
int result = _count;
if (idx + _count > WIRE_CHUNK_SIZE)
result = WIRE_CHUNK_SIZE - idx;
if (_outputBuffer != NULL)
memcpy(_outputBuffer, &wireChunk->payload[idx], sizeof(int16_t)*result);
idx += result;
return result;
}