aboutsummaryrefslogtreecommitdiff
path: root/audio/dream
diff options
context:
space:
mode:
authorMartin Wilke <miwi@FreeBSD.org>2006-09-01 19:49:07 +0000
committerMartin Wilke <miwi@FreeBSD.org>2006-09-01 19:49:07 +0000
commit9e6466651aa006e1768e377b167b48bfb36be45d (patch)
tree853dfcd51651ab81f7951d49f04927cba1d279ed /audio/dream
parent7028e50a544dbc574c9b500140265188fbada104 (diff)
downloadports-9e6466651aa006e1768e377b167b48bfb36be45d.tar.gz
ports-9e6466651aa006e1768e377b167b48bfb36be45d.zip
Notes
Diffstat (limited to 'audio/dream')
-rw-r--r--audio/dream/Makefile35
-rw-r--r--audio/dream/distinfo3
-rw-r--r--audio/dream/files/patch-Buffer.h166
-rw-r--r--audio/dream/files/patch-Modul.h403
-rw-r--r--audio/dream/files/patch-Vector.h180
-rw-r--r--audio/dream/pkg-descr5
6 files changed, 792 insertions, 0 deletions
diff --git a/audio/dream/Makefile b/audio/dream/Makefile
new file mode 100644
index 000000000000..3db4580d5ed7
--- /dev/null
+++ b/audio/dream/Makefile
@@ -0,0 +1,35 @@
+# New ports collection makefile for: Dream DRM Receiver
+# Date created: 1st september 2006
+# Whom: Soeren Straaarup <xride@x12.dk>
+#
+# $FreeBSD$
+
+PORTNAME= dream
+PORTVERSION= 1.2.4
+CATEGORIES= audio
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR= drm
+DISTNAME= drm-${PORTVERSION}
+
+MAINTAINER= xride@x12.dk
+COMMENT= Digital Radio Mondiale (DRM) software receiver
+
+LIB_DEPENDS= fftw.2:${PORTSDIR}/math/fftw \
+ qwt.4:${PORTSDIR}/x11-toolkits/qwt \
+ faad.0:${PORTSDIR}/audio/faad
+
+USE_X_PREFIX= yes
+USE_QT_VER= 3
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= CXXFLAGS="-I${LOCALBASE}/include ${PTHREAD_CFLAGS}" \
+ LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}" QTDIR="${QT_PREFIX}"
+
+PLIST_FILES= bin/drm
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/usr/include/qwt|${LOCALBASE}/include/qwt|g' ${WRKSRC}/configure
+ @${REINPLACE_CMD} -e 's|<linux/soundcard.h>|<sys/soundcard.h>|g' ${WRKSRC}/linux/source/sound.cpp
+ @${REINPLACE_CMD} -e 's|neaacdec.h|faad.h|g' ${WRKSRC}/common/sourcedecoders/AudioSourceDecoder.cpp
+ @${REINPLACE_CMD} -e 's|DRMCH_SBR_PS_STEREO|DRMCH_SBR_STEREO|g' ${WRKSRC}/common/sourcedecoders/AudioSourceDecoder.cpp
+
+.include <bsd.port.mk>
diff --git a/audio/dream/distinfo b/audio/dream/distinfo
new file mode 100644
index 000000000000..6dbbccd2c262
--- /dev/null
+++ b/audio/dream/distinfo
@@ -0,0 +1,3 @@
+MD5 (drm-1.2.4.tar.gz) = 55b219cc30b0999ebf66c458b74fe2f2
+SHA256 (drm-1.2.4.tar.gz) = 85c34ab4c543f107aa4b8d7ba91a12672f847366fa6559b0c997c87073604ea1
+SIZE (drm-1.2.4.tar.gz) = 686118
diff --git a/audio/dream/files/patch-Buffer.h b/audio/dream/files/patch-Buffer.h
new file mode 100644
index 000000000000..3046f17445b5
--- /dev/null
+++ b/audio/dream/files/patch-Buffer.h
@@ -0,0 +1,166 @@
+===================================================================
+RCS file: /cvsroot/drm/drm/common/util/Buffer.h,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -r1.1 -r1.2
+--- common/util/Buffer.h 2005/05/18 07:50:28 1.1
++++ common/util/Buffer.h 2005/09/08 16:22:18 1.2
+@@ -71,7 +71,7 @@
+
+ virtual void Init(const int iNewBufferSize);
+ virtual CVectorEx<TData>* Get(const int iRequestedSize);
+- virtual CVectorEx<TData>* QueryWriteBuffer() {return &vecBuffer;}
++ virtual CVectorEx<TData>* QueryWriteBuffer() {return &(this->vecBuffer);}
+ virtual void Put(const int iOfferedSize);
+ virtual void Clear() {iFillLevel = 0;}
+ virtual int GetFillLevel() const {return iFillLevel;}
+@@ -123,7 +123,7 @@
+ template<class TData> void CSingleBuffer<TData>::Init(const int iNewBufferSize)
+ {
+ /* Only initialize buffer when size has changed, otherwise preserve data */
+- if (iNewBufferSize != iBufferSize)
++ if (iNewBufferSize != this->iBufferSize)
+ {
+ CBuffer<TData>::Init(iNewBufferSize);
+
+@@ -146,7 +146,7 @@
+ /* Block is read, buffer is now empty again */
+ iFillLevel -= iRequestedSize;
+
+- return &vecBuffer;
++ return &(this->vecBuffer);
+ }
+
+ template<class TData> void CSingleBuffer<TData>::Put(const int iOfferedSize)
+@@ -170,7 +170,7 @@
+ template<class TData> void CCyclicBuffer<TData>::Init(const int iNewBufferSize)
+ {
+ /* Only initialize buffer when size has changed, otherwise preserve data */
+- if (iNewBufferSize != iBufferSize)
++ if (iNewBufferSize != this->iBufferSize)
+ {
+ CBuffer<TData>::Init(iNewBufferSize);
+
+@@ -191,7 +191,7 @@
+ iPut = 0;
+ iGet = 0;
+ iBufferState = BS_EMPTY;
+- bRequestFlag = FALSE;
++ this->bRequestFlag = FALSE;
+ }
+
+ template<class TData> CVectorEx<TData>* CCyclicBuffer<TData>::Get(const int iRequestedSize)
+@@ -204,7 +204,7 @@
+ iAvailSpace = iPut - iGet;
+ /* Test if wrap is needed */
+ if ((iAvailSpace < 0) || ((iAvailSpace == 0) && (iBufferState == BS_FULL)))
+- iAvailSpace += iBufferSize;
++ iAvailSpace += this->iBufferSize;
+
+ #ifdef _DEBUG_
+ if (iAvailSpace < iRequestedSize)
+@@ -219,17 +219,17 @@
+ iElementCount = 0;
+
+ /* Test if data can be read in one block */
+- if (iBufferSize - iGet < iRequestedSize)
++ if (this->iBufferSize - iGet < iRequestedSize)
+ {
+ /* Data must be read in two portions */
+- for (i = iGet; i < iBufferSize; i++)
++ for (i = iGet; i < this->iBufferSize; i++)
+ {
+- vecInOutBuffer[iElementCount] = vecBuffer[i];
++ vecInOutBuffer[iElementCount] = this->vecBuffer[i];
+ iElementCount++;
+ }
+- for (i = 0; i < iRequestedSize - iBufferSize + iGet; i++)
++ for (i = 0; i < iRequestedSize - this->iBufferSize + iGet; i++)
+ {
+- vecInOutBuffer[iElementCount] = vecBuffer[i];
++ vecInOutBuffer[iElementCount] = this->vecBuffer[i];
+ iElementCount++;
+ }
+ }
+@@ -238,15 +238,15 @@
+ /* Data can be read in one block */
+ for (i = iGet; i < iGet + iRequestedSize; i++)
+ {
+- vecInOutBuffer[iElementCount] = vecBuffer[i];
++ vecInOutBuffer[iElementCount] = this->vecBuffer[i];
+ iElementCount++;
+ }
+ }
+
+ /* Adjust iGet pointer */
+ iGet += iRequestedSize;
+- if (iGet >= iBufferSize)
+- iGet -= iBufferSize;
++ if (iGet >= this->iBufferSize)
++ iGet -= this->iBufferSize;
+
+ /* Test if buffer is empty. If yes, set empty-flag */
+ if ((iGet == iPut) && (iRequestedSize > 0))
+@@ -265,7 +265,7 @@
+ iAvailSpace = iGet - iPut;
+ /* Test if wrap is needed */
+ if ((iAvailSpace < 0) || ((iAvailSpace == 0) && (iBufferState == BS_EMPTY)))
+- iAvailSpace += iBufferSize;
++ iAvailSpace += this->iBufferSize;
+
+ #ifdef _DEBUG_
+ if (iAvailSpace < iOfferedSize)
+@@ -280,17 +280,17 @@
+ iElementCount = 0;
+
+ /* Test if data can be written in one block */
+- if (iBufferSize - iPut < iOfferedSize)
++ if (this->iBufferSize - iPut < iOfferedSize)
+ {
+ /* Data must be written in two steps */
+- for (i = iPut; i < iBufferSize; i++)
++ for (i = iPut; i < this->iBufferSize; i++)
+ {
+- vecBuffer[i] = vecInOutBuffer[iElementCount];
++ this->vecBuffer[i] = vecInOutBuffer[iElementCount];
+ iElementCount++;
+ }
+- for (i = 0; i < iOfferedSize - iBufferSize + iPut; i++)
++ for (i = 0; i < iOfferedSize - this->iBufferSize + iPut; i++)
+ {
+- vecBuffer[i] = vecInOutBuffer[iElementCount];
++ this->vecBuffer[i] = vecInOutBuffer[iElementCount];
+ iElementCount++;
+ }
+ }
+@@ -299,15 +299,15 @@
+ /* Data can be written in one block */
+ for (i = iPut; i < iPut + iOfferedSize; i++)
+ {
+- vecBuffer[i] = vecInOutBuffer[iElementCount];
++ this->vecBuffer[i] = vecInOutBuffer[iElementCount];
+ iElementCount++;
+ }
+ }
+
+ /* Adjust iPut pointer */
+ iPut += iOfferedSize;
+- if (iPut >= iBufferSize)
+- iPut -= iBufferSize;
++ if (iPut >= this->iBufferSize)
++ iPut -= this->iBufferSize;
+
+ /* Test if buffer is full. If yes, set full-flag */
+ if ((iGet == iPut) && (iOfferedSize > 0))
+@@ -322,9 +322,9 @@
+ Take into account the flag-information (full or empty buffer) */
+ iFillLevel = iPut - iGet;
+ if ((iFillLevel == 0) && (iBufferState == BS_FULL))
+- iFillLevel = iBufferSize;
++ iFillLevel = this->iBufferSize;
+ if (iFillLevel < 0)
+- iFillLevel += iBufferSize; /* Wrap around */
++ iFillLevel += this->iBufferSize; /* Wrap around */
+
+ return iFillLevel;
+ }
diff --git a/audio/dream/files/patch-Modul.h b/audio/dream/files/patch-Modul.h
new file mode 100644
index 000000000000..c93d9827a1d0
--- /dev/null
+++ b/audio/dream/files/patch-Modul.h
@@ -0,0 +1,403 @@
+===================================================================
+RCS file: /cvsroot/drm/drm/common/util/Modul.h,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -r1.1 -r1.2
+--- common/util/Modul.h 2005/05/18 07:50:28 1.1
++++ common/util/Modul.h 2005/09/08 16:22:18 1.2
+@@ -217,7 +217,7 @@
+
+ /* Implementation *************************************************************/
+ /******************************************************************************\
+-* CModul *
++* CModul *
+ \******************************************************************************/
+ template<class TInput, class TOutput>
+ CModul<TInput, TOutput>::CModul()
+@@ -302,7 +302,7 @@
+
+
+ /******************************************************************************\
+-* Transmitter modul (CTransmitterModul) *
++* Transmitter modul (CTransmitterModul) *
+ \******************************************************************************/
+ template<class TInput, class TOutput>
+ CTransmitterModul<TInput, TOutput>::CTransmitterModul()
+@@ -347,7 +347,7 @@
+ if (OutputBuffer.GetRequestFlag() == TRUE)
+ {
+ /* Check, if enough input data is available */
+- if (InputBuffer.GetFillLevel() < iInputBlockSize)
++ if (InputBuffer.GetFillLevel() < this->iInputBlockSize)
+ {
+ /* Set request flag */
+ InputBuffer.SetRequestFlag(TRUE);
+@@ -356,19 +356,20 @@
+ }
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Copy extended data from vectors */
+- (*pvecOutputData).SetExData((*pvecInputData).GetExData());
++ (*(this->pvecOutputData)).
++ SetExData((*(this->pvecInputData)).GetExData());
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+
+ /* Data was provided, clear data request */
+ OutputBuffer.SetRequestFlag(FALSE);
+@@ -389,7 +390,7 @@
+ if (OutputBuffer.GetRequestFlag() == TRUE)
+ {
+ /* Check, if enough input data is available from all sources */
+- if (InputBuffer.GetFillLevel() < iInputBlockSize)
++ if (InputBuffer.GetFillLevel() < this->iInputBlockSize)
+ {
+ /* Set request flag */
+ InputBuffer.SetRequestFlag(TRUE);
+@@ -412,18 +413,18 @@
+ }
+
+ /* Get vectors from transfer-buffers */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+ pvecInputData2 = InputBuffer2.Get(iInputBlockSize2);
+ pvecInputData3 = InputBuffer3.Get(iInputBlockSize3);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+
+ /* Data was provided, clear data request */
+ OutputBuffer.SetRequestFlag(FALSE);
+@@ -440,13 +441,13 @@
+ {
+ /* Read data and write it in the transfer-buffer.
+ Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+
+ /* Data was provided, clear data request */
+ OutputBuffer.SetRequestFlag(FALSE);
+@@ -459,7 +460,7 @@
+ {
+ /* OUTPUT-DRIVEN modul implementation in the transmitter */
+ /* Check, if enough input data is available */
+- if (InputBuffer.GetFillLevel() < iInputBlockSize)
++ if (InputBuffer.GetFillLevel() < this->iInputBlockSize)
+ {
+ /* Set request flag */
+ InputBuffer.SetRequestFlag(TRUE);
+@@ -468,17 +469,17 @@
+ }
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ return TRUE;
+ }
+
+
+ /******************************************************************************\
+-* Receiver modul (CReceiverModul) *
++* Receiver modul (CReceiverModul) *
+ \******************************************************************************/
+ template<class TInput, class TOutput>
+ CReceiverModul<TInput, TOutput>::CReceiverModul()
+@@ -593,7 +594,7 @@
+ }
+
+ /* Special case if input block size is zero */
+- if (iInputBlockSize == 0)
++ if (this->iInputBlockSize == 0)
+ {
+ InputBuffer.Clear();
+
+@@ -605,21 +606,22 @@
+ _BOOLEAN bEnoughData = FALSE;
+
+ /* Check if enough data is available in the input buffer for processing */
+- if (InputBuffer.GetFillLevel() >= iInputBlockSize)
++ if (InputBuffer.GetFillLevel() >= this->iInputBlockSize)
+ {
+ bEnoughData = TRUE;
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Copy extended data from vectors */
+- (*pvecOutputData).SetExData((*pvecInputData).GetExData());
++ (*(this->pvecOutputData)).
++ SetExData((*(this->pvecInputData)).GetExData());
+
+ /* Call the underlying processing-routine */
+- ProcessDataThreadSave(Parameter);
++ this->ProcessDataThreadSave(Parameter);
+
+ /* Reset output-buffers if flag was set by processing routine */
+ if (bResetBuf == TRUE)
+@@ -631,7 +633,7 @@
+ else
+ {
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ }
+ }
+
+@@ -662,19 +664,19 @@
+
+ /* INPUT-DRIVEN modul implementation in the receiver -------------------- */
+ /* Check if enough data is available in the input buffer for processing */
+- if (InputBuffer.GetFillLevel() >= iInputBlockSize)
++ if (InputBuffer.GetFillLevel() >= this->iInputBlockSize)
+ {
+ bEnoughData = TRUE;
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+ pvecOutputData2 = OutputBuffer2.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataThreadSave(Parameter);
++ this->ProcessDataThreadSave(Parameter);
+
+ /* Reset output-buffers if flag was set by processing routine */
+ if (bResetBuf == TRUE)
+@@ -686,7 +688,7 @@
+ else
+ {
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ }
+
+ if (bResetBuf2 == TRUE)
+@@ -730,20 +732,20 @@
+
+ /* INPUT-DRIVEN modul implementation in the receiver -------------------- */
+ /* Check if enough data is available in the input buffer for processing */
+- if (InputBuffer.GetFillLevel() >= iInputBlockSize)
++ if (InputBuffer.GetFillLevel() >= this->iInputBlockSize)
+ {
+ bEnoughData = TRUE;
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+ pvecOutputData2 = OutputBuffer2.QueryWriteBuffer();
+ pvecOutputData3 = OutputBuffer3.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataThreadSave(Parameter);
++ this->ProcessDataThreadSave(Parameter);
+
+ /* Reset output-buffers if flag was set by processing routine */
+ if (bResetBuf == TRUE)
+@@ -755,7 +757,7 @@
+ else
+ {
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ }
+
+ if (bResetBuf2 == TRUE)
+@@ -805,10 +807,10 @@
+
+ /* INPUT-DRIVEN modul implementation in the receiver -------------------- */
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataThreadSave(Parameter);
++ this->ProcessDataThreadSave(Parameter);
+
+ /* Reset output-buffers if flag was set by processing routine */
+ if (bResetBuf == TRUE)
+@@ -820,7 +822,7 @@
+ else
+ {
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ }
+ }
+
+@@ -842,7 +844,7 @@
+ }
+
+ /* Special case if input block size is zero and buffer, too */
+- if ((InputBuffer.GetFillLevel() == 0) && (iInputBlockSize == 0))
++ if ((InputBuffer.GetFillLevel() == 0) && (this->iInputBlockSize == 0))
+ {
+ InputBuffer.Clear();
+ return FALSE;
+@@ -853,15 +855,15 @@
+ _BOOLEAN bEnoughData = FALSE;
+
+ /* Check if enough data is available in the input buffer for processing */
+- if (InputBuffer.GetFillLevel() >= iInputBlockSize)
++ if (InputBuffer.GetFillLevel() >= this->iInputBlockSize)
+ {
+ bEnoughData = TRUE;
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Call the underlying processing-routine */
+- ProcessDataThreadSave(Parameter);
++ this->ProcessDataThreadSave(Parameter);
+ }
+
+ return bEnoughData;
+@@ -869,7 +871,7 @@
+
+
+ /******************************************************************************\
+-* Simulation modul (CSimulationModul) *
++* Simulation modul (CSimulationModul) *
+ \******************************************************************************/
+ template<class TInput, class TOutput, class TInOut2>
+ CSimulationModul<TInput, TOutput, TInOut2>::CSimulationModul()
+@@ -929,7 +931,7 @@
+ {
+ /* TransferData needed for simulation */
+ /* Check, if enough input data is available */
+- if (InputBuffer.GetFillLevel() < iInputBlockSize)
++ if (InputBuffer.GetFillLevel() < this->iInputBlockSize)
+ {
+ /* Set request flag */
+ InputBuffer.SetRequestFlag(TRUE);
+@@ -938,16 +940,16 @@
+ }
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ }
+
+ template<class TInput, class TOutput, class TInOut2>
+@@ -961,26 +963,27 @@
+ _BOOLEAN bEnoughData = FALSE;
+
+ /* Check if enough data is available in the input buffer for processing */
+- if ((InputBuffer.GetFillLevel() >= iInputBlockSize) &&
++ if ((InputBuffer.GetFillLevel() >= this->iInputBlockSize) &&
+ (InputBuffer2.GetFillLevel() >= iInputBlockSize2))
+ {
+ bEnoughData = TRUE;
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+ pvecInputData2 = InputBuffer2.Get(iInputBlockSize2);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+
+ /* Copy extended data from FIRST input vector (definition!) */
+- (*pvecOutputData).SetExData((*pvecInputData).GetExData());
++ (*(this->pvecOutputData)).
++ SetExData((*(this->pvecInputData)).GetExData());
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ /* Write processed data from internal memory in transfer-buffer */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ }
+
+ return bEnoughData;
+@@ -997,22 +1000,22 @@
+ _BOOLEAN bEnoughData = FALSE;
+
+ /* Check if enough data is available in the input buffer for processing */
+- if (InputBuffer.GetFillLevel() >= iInputBlockSize)
++ if (InputBuffer.GetFillLevel() >= this->iInputBlockSize)
+ {
+ bEnoughData = TRUE;
+
+ /* Get vector from transfer-buffer */
+- pvecInputData = InputBuffer.Get(iInputBlockSize);
++ this->pvecInputData = InputBuffer.Get(this->iInputBlockSize);
+
+ /* Query vector from output transfer-buffer for writing */
+- pvecOutputData = OutputBuffer.QueryWriteBuffer();
++ this->pvecOutputData = OutputBuffer.QueryWriteBuffer();
+ pvecOutputData2 = OutputBuffer2.QueryWriteBuffer();
+
+ /* Call the underlying processing-routine */
+- ProcessDataInternal(Parameter);
++ this->ProcessDataInternal(Parameter);
+
+ /* Write processed data from internal memory in transfer-buffers */
+- OutputBuffer.Put(iOutputBlockSize);
++ OutputBuffer.Put(this->iOutputBlockSize);
+ OutputBuffer2.Put(iOutputBlockSize2);
+ }
+
diff --git a/audio/dream/files/patch-Vector.h b/audio/dream/files/patch-Vector.h
new file mode 100644
index 000000000000..ebeae46480c5
--- /dev/null
+++ b/audio/dream/files/patch-Vector.h
@@ -0,0 +1,180 @@
+===================================================================
+RCS file: /cvsroot/drm/drm/common/util/Vector.h,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- common/util/Vector.h 2005/06/29 21:21:25 1.2
++++ common/util/Vector.h 2005/09/08 16:22:18 1.3
+@@ -39,7 +39,7 @@
+ template<class TData> class CVector : public vector<TData>
+ {
+ public:
+- CVector() : pData(begin()), iBitArrayCounter(0), iVectorSize(0) {}
++ CVector() : iBitArrayCounter(0), iVectorSize(0) {pData = this->begin();}
+ CVector(const int iNeSi) {Init(iNeSi);}
+ CVector(const int iNeSi, const TData tInVa) {Init(iNeSi, tInVa);}
+ virtual ~CVector() {}
+@@ -49,8 +49,8 @@
+ pointer must be set to the new data source. The bit access is, by
+ default, reset */
+ CVector(const CVector<TData>& vecI) :
+- vector<TData>(static_cast<const vector<TData>&>(vecI)),
+- iVectorSize(vecI.Size()), pData(begin()), iBitArrayCounter(0) {}
++ vector<TData>(static_cast<const vector<TData>&>(vecI)),
++ iVectorSize(vecI.Size()), iBitArrayCounter(0) {pData = this->begin();}
+
+ virtual void Init(const int iNewSize);
+
+@@ -87,7 +87,7 @@
+
+ inline CVector<TData>& operator=(const CVector<TData>& vecI) {
+ #ifdef _DEBUG_
+- /* Vectors which shall be copied MUST have same size! (If this is
++ /* Vectors which shall be copied MUST have same size! (If this is
+ satisfied, the parameter "iVectorSize" must not be adjusted as
+ a side effect) */
+ if (vecI.Size() != iVectorSize)
+@@ -100,7 +100,7 @@
+
+ /* Reset my data pointer in case, the operator=() of the base class
+ did change the actual memory */
+- pData = begin();
++ pData = this->begin();
+
+ return *this;
+ }
+@@ -125,9 +125,9 @@
+
+ /* Clear old buffer and reserve memory for new buffer, get iterator
+ for pointer operations */
+- clear();
+- resize(iNewSize);
+- pData = begin();
++ this->clear();
++ this->resize(iNewSize);
++ pData = this->begin();
+ }
+
+ template<class TData> void CVector<TData>::Init(const int iNewSize,
+@@ -143,11 +143,11 @@
+ template<class TData> void CVector<TData>::Enlarge(const int iAddedSize)
+ {
+ iVectorSize += iAddedSize;
+- resize(iVectorSize);
++ this->resize(iVectorSize);
+
+ /* We have to reset the pointer since it could be that the vector size was
+ zero before enlarging the vector */
+- pData = begin();
++ pData = this->begin();
+ }
+
+ template<class TData> void CVector<TData>::Reset(const TData tResetVal)
+@@ -224,21 +224,21 @@
+ template<class TData> void CShiftRegister<TData>::AddBegin(const TData tNewD)
+ {
+ /* Shift old values */
+- for (int i = iVectorSize - 1; i > 0; i--)
+- pData[i] = pData[i - 1];
++ for (int i = this->iVectorSize - 1; i > 0; i--)
++ this->pData[i] = this->pData[i - 1];
+
+ /* Add new value */
+- pData[0] = tNewD;
++ this->pData[0] = tNewD;
+ }
+
+ template<class TData> void CShiftRegister<TData>::AddEnd(const TData tNewD)
+ {
+ /* Shift old values */
+- for (int i = 0; i < iVectorSize - 1; i++)
+- pData[i] = pData[i + 1];
++ for (int i = 0; i < this->iVectorSize - 1; i++)
++ this->pData[i] = this->pData[i + 1];
+
+ /* Add new value */
+- pData[iVectorSize - 1] = tNewD;
++ this->pData[this->iVectorSize - 1] = tNewD;
+ }
+
+ template<class TData> void CShiftRegister<TData>::AddEnd(const CVector<TData>& vectNewD,
+@@ -246,16 +246,16 @@
+ {
+ int i, iBlockEnd, iMovLen;
+
+- iBlockEnd = iVectorSize - iLen;
++ iBlockEnd = this->iVectorSize - iLen;
+ iMovLen = iLen;
+
+ /* Shift old values */
+ for (i = 0; i < iBlockEnd; i++)
+- pData[i] = pData[iMovLen++];
++ this->pData[i] = this->pData[iMovLen++];
+
+ /* Add new block of data */
+ for (i = 0; i < iLen; i++)
+- pData[iBlockEnd++] = vectNewD[i];
++ this->pData[iBlockEnd++] = vectNewD[i];
+ }
+
+
+@@ -271,7 +271,7 @@
+ CVector<TData>(iNeSi, tInVa), iCurIdx(0) {}
+
+ void Add(const TData tNewD);
+- inline TData Get() {return pData[iCurIdx];}
++ inline TData Get() {return this->pData[iCurIdx];}
+
+ virtual void Init(const int iNewSize);
+ virtual void Init(const int iNewSize, const TData tIniVal);
+@@ -295,11 +295,11 @@
+
+ template<class TData> void CFIFO<TData>::Add(const TData tNewD)
+ {
+- pData[iCurIdx] = tNewD;
++ this->pData[iCurIdx] = tNewD;
+
+ /* Increment index */
+ iCurIdx++;
+- if (iCurIdx >= iVectorSize)
++ if (iCurIdx >= this->iVectorSize)
+ iCurIdx = 0;
+ }
+
+@@ -334,7 +334,7 @@
+
+ /* Init each vector in vector */
+ for (int i = 0; i < iNewSize; i++)
+- pData[i].Init(iNewVecSize, 0);
++ this->pData[i].Init(iNewVecSize, 0);
+
+ /* Init current average result */
+ tCurAvResult.Init(iNewVecSize, 0);
+@@ -355,15 +355,15 @@
+ history buffer
+ */
+ /* Subtract oldest value */
+- tCurAvResult -= pData[iCurIdx];
++ tCurAvResult -= this->pData[iCurIdx];
+
+ /* Add new value and write in memory */
+ tCurAvResult += tNewD;
+- pData[iCurIdx] = tNewD;
++ this->pData[iCurIdx] = tNewD;
+
+ /* Increase position pointer and test if wrap */
+ iCurIdx++;
+- if (iCurIdx >= iVectorSize)
++ if (iCurIdx >= this->iVectorSize)
+ iCurIdx = 0;
+ }
+
+@@ -381,7 +381,7 @@
+ /* This flag indicates that the symbol ID has changed */
+ _BOOLEAN bSymbolIDHasChanged;
+
+- /* The channel estimation needs information about timing corrections,
++ /* The channel estimation needs information about timing corrections,
+ because it is using information from the symbol memory */
+ int iCurTimeCorr;
+ };
diff --git a/audio/dream/pkg-descr b/audio/dream/pkg-descr
new file mode 100644
index 000000000000..e74a5bcdd839
--- /dev/null
+++ b/audio/dream/pkg-descr
@@ -0,0 +1,5 @@
+Dream is a software implementation of a Digital Radio Mondiale (DRM) receiver.
+All you need to receive DRM transmissions is a PC with a sound card and a
+modified analog short-wave (MW, LW) receiver.
+
+WWW: http://drm.sourceforge.net/