mmlibs/mmfw/src/Client/Audio/MmfFifo.cpp
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/src/Client/Audio/MmfFifo.cpp	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,108 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "MmfFifo.h"
+
+const TInt TMMFFifoItemBase::iOffset = _FOFF(TMMFFifoItemBase, iSlink);
+
+
+/**
+ *
+ * Construct
+ *
+ */
+CMMFFifoBase::CMMFFifoBase() : iFifo(TMMFFifoItemBase::iOffset), iFifoIter(iFifo)
+	{
+	}
+
+
+/**
+ *
+ *	Destructor
+ *
+ */
+CMMFFifoBase::~CMMFFifoBase()
+	{
+	TMMFFifoItemBase* item;
+	iFifoIter.SetToFirst();
+	while((item = iFifoIter++)!=NULL)
+		{
+		iFifo.Remove(*item);
+		delete item;
+		};
+	}
+
+
+/**
+ *
+ *  To remove the first stream data from queue	
+ *
+ */
+void CMMFFifoBase::RemoveFirstItemBase()
+	{
+	if(!iFifo.IsEmpty())
+		{
+		iFifo.Remove(*iFifo.First());
+		}
+	}
+
+/**
+ *
+ *  To get the first stream data from queue	
+ *
+ *	@return	"CMMFFifoItem*"	
+ *			a pointer point to the stream data
+ *
+ */
+TMMFFifoItemBase* CMMFFifoBase::GetBase()
+	{
+	TMMFFifoItemBase* firstItem;
+	if(iFifo.IsEmpty())
+		return NULL;
+	firstItem = iFifo.First();
+	return firstItem;
+	}
+
+/**
+ *
+ *  To add a stream data to the queue, the data will be added at end of queue
+ *
+ *	@param	"TMMFFifoItemBase& aItem"	
+ *			a reference to data
+ *
+ */
+void CMMFFifoBase::AddToFifo(TMMFFifoItemBase& aItem)
+	{
+	iFifo.AddLast(aItem);
+	}
+
+/**
+ *
+ *  To check stream data queue empty or not	
+ *
+ *	@return	"TBool"	
+ *			a boolean value to indicate the queue is empty or not (ETrue is empty)
+ *
+ */
+TBool CMMFFifoBase::IsEmpty()
+	{
+	return iFifo.IsEmpty();
+	}
+
+
+
+
+
+