qtms/src/qtmsmembuffer.cpp
changeset 32 edd273b3192a
parent 27 cbb1bfb7ebfb
child 40 4a1905d205a2
--- 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 <qtms.h>
-#include <qtmsbuffer.h>
+#include <tmsbuffer.h>
 #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;
     }
-