diff -r cbb1bfb7ebfb -r edd273b3192a qtms/src/qtmsmembuffer.cpp --- a/qtms/src/qtmsmembuffer.cpp Fri May 14 16:21:14 2010 +0300 +++ b/qtms/src/qtmsmembuffer.cpp Thu May 27 13:19:19 2010 +0300 @@ -16,144 +16,140 @@ */ #include -#include +#include #include "qtmsmembuffer.h" #include "tmsutility.h" using namespace QTMS; using namespace TMS; -QTMSMemBuffer::QTMSMemBuffer() : - iBufferSize(0), - iTimeStamp(0), - iDataPtr(NULL), - iOwnsBuffer(FALSE) +QTMSMemBuffer::QTMSMemBuffer() { } QTMSMemBuffer::~QTMSMemBuffer() { - if (iOwnsBuffer) - { - free(iDataPtr); - } + delete iBuffer; } -gint QTMSMemBuffer::Create(guint size, QTMSBuffer*& tmsbuffer) +gint QTMSMemBuffer::Create(guint size, QTMSBuffer*& qbuffer, + TMS::TMSBuffer*& tmsbuffer) { + TRACE_PRN_FN_ENT; gint ret(TMS_RESULT_INSUFFICIENT_MEMORY); - TRACE_PRN_FN_ENT; QTMSMemBuffer* self = new QTMSMemBuffer(); if (self) { - ret = self->PostConstruct(size); + ret = self->PostConstruct(); if (ret != TMS_RESULT_SUCCESS) { delete self; self = NULL; } + self->iBuffer = tmsbuffer; } - tmsbuffer = self; + qbuffer = self; TRACE_PRN_FN_EXT; return ret; } -gint QTMSMemBuffer::PostConstruct(guint size) +gint QTMSMemBuffer::PostConstruct() { gint ret(TMS_RESULT_SUCCESS); - TRACE_PRN_FN_ENT; - iDataPtr = (guint8*) malloc(size); - if (!iDataPtr) - { - ret = TMS_RESULT_INSUFFICIENT_MEMORY; - } - iOwnsBuffer = TRUE; - iBufferSize = size; - TRACE_PRN_FN_EXT; return ret; } gint QTMSMemBuffer::GetType(QTMSBufferType& buffertype) { - gint ret(TMS_RESULT_SUCCESS); - buffertype = TMS_BUFFER_MEMORY; - return ret; - } - -// Implementation of TMSBuffer interface begins -/** - Gets the timestamp on the Buffer so that the framework can - determine the time at which this buffer has to be rendered - by the output device sink. - - @param ts - timestamp in microseconds - - */ -gint QTMSMemBuffer::GetTimeStamp(guint64& ts) - { - gint ret(TMS_RESULT_SUCCESS); - ts = iTimeStamp; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iBuffer) + { + ret = iBuffer->GetType(buffertype); + } return ret; } /** - Sets the timestamp on the Buffer so that the framework can - determine the time at which this buffer has to be rendered - by the output device sink. + * Gets the timestamp on the Buffer so that the framework can + * determine the time at which this buffer has to be rendered + * by the output device sink. + * + * @param ts timestamp in microseconds + * + */ +gint QTMSMemBuffer::GetTimeStamp(guint64& ts) + { + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iBuffer) + { + ret = iBuffer->GetTimeStamp(ts); + } + return ret; + } - @param ts - timestamp in milliseconds - +/** + * Sets the timestamp on the Buffer so that the framework can + * determine the time at which this buffer has to be rendered + * by the output device sink. + * + * @param ts timestamp in milliseconds + * */ gint QTMSMemBuffer::SetTimeStamp(const guint64 ts) { - gint ret(TMS_RESULT_SUCCESS); - iTimeStamp = ts; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iBuffer) + { + ret = iBuffer->SetTimeStamp(ts); + } return ret; } /** - Gets the size of data in the buffer specified by the client. - - @param size - size of data in bytes - + * Gets the size of data in the buffer specified by the client. + * + * @param size size of data in bytes + * */ gint QTMSMemBuffer::GetDataSize(guint& size) { - gint ret(TMS_RESULT_SUCCESS); - size = iBufferSize; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iBuffer) + { + ret = iBuffer->GetDataSize(size); + } return ret; } /** - Sets the size of data in the buffer after the client - fill it. - - @param size - size of data in bytes - + * Sets the size of data in the buffer after the client fill it. + * + * @param size size of data in bytes + * */ gint QTMSMemBuffer::SetDataSize(const guint size) { - gint ret(TMS_RESULT_SUCCESS); - iBufferSize = size; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iBuffer) + { + ret = iBuffer->SetDataSize(size); + } return ret; } /** - Gets the pointer to the memory location associated with this - buffer where the data is stored. - - @param bufptr - ptr to the data stored in the buffer. - + * Gets the pointer to the memory location associated with this + * buffer where the data is stored. + * + * @param bufptr ptr to the data stored in the buffer. + * */ gint QTMSMemBuffer::GetDataPtr(guint8*& bufptr) { - gint ret(TMS_RESULT_SUCCESS); - bufptr = iDataPtr; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iBuffer) + { + ret = iBuffer->GetDataPtr(bufptr); + } return ret; } -