mmlibs/mmfw/src/ControllerFramework/MMFDurationInfoCustomCommands.cpp
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/src/ControllerFramework/MMFDurationInfoCustomCommands.cpp	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,117 @@
+// Copyright (c) 2004-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 "mmfdurationinfocustomcommands.h"
+#include <mmf/common/mmfdurationinfocustomcommands.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <mmf/common/mmfdurationinfocustomcommandsimpl.h>
+#include <mmf/common/mmfdurationinfocustomcommandsenums.h>
+#include <mmf/common/mmfdrmcustomcommandsenum.h>
+#endif
+
+EXPORT_C CMMFDurationInfoCustomCommandParser* CMMFDurationInfoCustomCommandParser::NewL(MMMFDurationInfoCustomCommandImplementor& aImplementor)
+	{
+	return new(ELeave) CMMFDurationInfoCustomCommandParser(aImplementor);
+	}
+
+EXPORT_C CMMFDurationInfoCustomCommandParser::~CMMFDurationInfoCustomCommandParser()
+	{
+	}
+
+CMMFDurationInfoCustomCommandParser::CMMFDurationInfoCustomCommandParser(MMMFDurationInfoCustomCommandImplementor& aImplementor) 
+	: CMMFCustomCommandParserBase(KUidInterfaceMMFDurationInfoControl),
+	  iImplementor(aImplementor)
+	{
+	}
+
+void CMMFDurationInfoCustomCommandParser::HandleRequest(TMMFMessage& aMessage)
+	{
+	TInt err = KErrNotSupported;
+	
+	if (aMessage.Destination().InterfaceId() == KUidInterfaceMMFDurationInfoControl)
+		{
+		switch (aMessage.Function())
+			{
+		case EMMFGetDurationInfo:
+			err = GetDurationInfo(aMessage);
+			break;
+		default:
+			err = KErrNotSupported;
+			break;
+			}
+		}
+
+	aMessage.Complete(err);
+	}
+
+
+TInt CMMFDurationInfoCustomCommandParser::GetDurationInfo(TMMFMessage& aMessage)
+	{
+	TInt retRes = KErrNone;
+	TPckgBuf<TMMFDurationInfo> enumPckg;
+	iImplementor.GetDurationInfo( enumPckg() );
+	aMessage.WriteDataToClient(enumPckg);
+	return retRes;
+	}
+
+EXPORT_C CMMFDurationInfoCustomCommandParser2* CMMFDurationInfoCustomCommandParser2::NewL(MMMFDurationInfoCustomCommandImplementor2& aImplementor)
+	{
+	return new(ELeave) CMMFDurationInfoCustomCommandParser2(aImplementor);
+	}
+
+EXPORT_C CMMFDurationInfoCustomCommandParser2::~CMMFDurationInfoCustomCommandParser2()
+	{
+	}
+
+CMMFDurationInfoCustomCommandParser2::CMMFDurationInfoCustomCommandParser2(MMMFDurationInfoCustomCommandImplementor2& aImplementor) 
+	: CMMFCustomCommandParserBase(KUidInterfaceMMFDurationInfoControl2),
+	  iImplementor(aImplementor)
+	{
+	}
+
+void CMMFDurationInfoCustomCommandParser2::HandleRequest(TMMFMessage& aMessage)
+	{
+	TInt err = KErrNone;
+	if (aMessage.Destination().InterfaceId() == KUidInterfaceMMFDurationInfoControl2)
+		{
+		switch (aMessage.Function())
+			{
+		case EMMFGetDurationInfo:
+			err = GetDurationInfo(aMessage);
+			break;
+		default:
+			err = KErrNotSupported;
+			break;
+			}
+		}
+	else
+		{
+		err = KErrNotSupported;
+		}	
+	aMessage.Complete(err);
+	}
+
+TInt CMMFDurationInfoCustomCommandParser2::GetDurationInfo(TMMFMessage& aMessage)
+	{
+	TInt err = KErrNone;
+	TPckgBuf<TMMFDurationInfo> enumPckg;
+	err = iImplementor.GetDurationInfo(enumPckg());
+	if(err==KErrNone)
+		{
+		err = aMessage.WriteDataToClient(enumPckg);
+		}
+	return err;
+	}
+