#include #include #include #include "librasdatamessage.h" namespace Codificador { LibrasDataMessage::LibrasDataMessage(unsigned char *data, int size) : LibrasControlSection() { type = LIBRAS_DATA_TYPE; messagelength = 4; glosadatalength = size; glosaDataBytes = NULL; //Pode mudar sinaislooplength = 1; if (size > 0) { glosaDataBytes = new unsigned char[glosadatalength]; memcpy(glosaDataBytes, data, size); } } LibrasDataMessage::~LibrasDataMessage() { if (glosaDataBytes) delete [] glosaDataBytes; } unsigned short LibrasDataMessage::getMessageLength() { return messagelength; } unsigned int LibrasDataMessage::getStm() { return stm; } unsigned short LibrasDataMessage::getSinaisLoopLength() { return sinaislooplength; } unsigned char LibrasDataMessage::getGlosaDataLength() { return glosadatalength; } unsigned char *LibrasDataMessage::getGlosaDataBytes() { return glosaDataBytes; } void LibrasDataMessage::setMessageLength(unsigned short messagelength) { this->messagelength = messagelength; } void LibrasDataMessage::setStm(unsigned int stm) { this->stm = stm; } void LibrasDataMessage::setSinaisLoopLength(unsigned short sinaislooplength) { this->sinaislooplength = sinaislooplength; } void LibrasDataMessage::setGlosaDataLength(unsigned char glosadatalength) { this->glosadatalength = glosadatalength; } void LibrasDataMessage::setGlosaDataBytes(unsigned char *glosaDataBytes, int len) { if (this->glosaDataBytes) { delete [] (this->glosaDataBytes); } this->glosaDataBytes = new unsigned char[len]; memcpy(this->glosaDataBytes, glosaDataBytes, len); } unsigned char *LibrasDataMessage::generateBytes(unsigned short *librasLen) { unsigned char *librasDataBytes; *librasLen = glosadatalength + messagelength + 3; sinaislooplength += glosadatalength; librasDataBytes = new unsigned char[*librasLen]; messageid = MESSAGE_ID_DATA; messagelength += glosadatalength; librasDataBytes[0] = messageid & 0xFF; librasDataBytes[1] = (messagelength >> 8) & 0xFF; librasDataBytes[2] = messagelength & 0xFF; librasDataBytes[3] = timecontrolflag & 0x01; //Ajeitar pra quando tiver STM librasDataBytes[4] = (sinaislooplength >> 8) & 0xFF; librasDataBytes[5] = sinaislooplength & 0xFF; librasDataBytes[6] = glosadatalength & 0xFF; memcpy(librasDataBytes + 7, glosaDataBytes, glosadatalength); return librasDataBytes; } }