imagingandcamerafws/imagingunittest/testcodec/src/ExtendedPlugin.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/testcodec/src/ExtendedPlugin.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,206 @@
+// 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 "ExtendedPlugin.h"
+
+//CExtendedDecoder
+EXPORT_C CExtendedDecoder* CExtendedDecoder::NewL()
+	{
+	CExtendedDecoder* self;
+	self = new (ELeave) CExtendedDecoder;
+	return self;
+	}
+
+CExtendedDecoder::CExtendedDecoder()
+	{
+	}
+
+EXPORT_C TInt CExtendedDecoder::SyncResult() const
+	{
+	CExtendedDecoderPlugin* plugin;
+	plugin = static_cast<CExtendedDecoderPlugin*>(Plugin());
+	return plugin->iSyncResult;
+	}
+
+EXPORT_C TInt CExtendedDecoder::AsyncResult() const
+	{
+	CExtendedDecoderPlugin* plugin;
+	plugin = static_cast<CExtendedDecoderPlugin*>(Plugin());
+	return plugin->iAsyncResult;
+	}
+
+EXPORT_C TBool CExtendedDecoder::UsingThread() const
+	{
+	CExtendedDecoderPlugin* plugin;
+	plugin = static_cast<CExtendedDecoderPlugin*>(Plugin());
+	return plugin->UsingThread();
+	}
+
+EXPORT_C TInt CExtendedDecoder::DoCustomAsync() const
+	{
+	CExtendedDecoderPlugin* plugin;
+	plugin = static_cast<CExtendedDecoderPlugin*>(Plugin());
+	return plugin->iDoCustomAsync;
+	}
+
+EXPORT_C void CExtendedDecoder::CustomSyncL(TInt aParam)
+	{
+	CImageDecoder::CustomSyncL(aParam);
+	}
+
+EXPORT_C void CExtendedDecoder::CustomAsync(TRequestStatus* aRequestStatus, TInt aParam)
+	{
+	CImageDecoder::CustomAsync(aRequestStatus, aParam);
+	}
+	
+//CExtendedDecoderPlugin
+EXPORT_C void CExtendedDecoderPlugin::HandleCustomSyncL(TInt aParam)
+	{
+	if(aParam == 0)
+		iSyncResult = -2;
+	else
+		User::Leave(KErrNotSupported);
+	}
+
+EXPORT_C void CExtendedDecoderPlugin::InitCustomAsyncL(TInt aParam)
+	{
+	iDoCustomAsync = ETrue;
+	if(aParam == 0)
+		{
+		iAsyncResult = -1;
+		}
+	else
+		{
+		iDoCustomAsync = EFalse;
+		User::Leave(KErrNotSupported);
+		}
+	}
+
+EXPORT_C void CExtendedDecoderPlugin::DoConvert()
+	{
+	if(iDoCustomAsync)
+		{
+		iAsyncResult = -2;
+		RequestComplete(KErrNone);
+		}
+	else
+		CImageDecoderPlugin::DoConvert();
+	}
+
+EXPORT_C void CExtendedDecoderPlugin::NotifyComplete()
+	{
+	iDoCustomAsync = EFalse;
+	}
+
+EXPORT_C TBool CExtendedDecoderPlugin::UsingThread() const
+	{
+	return AmInThread();
+	}
+
+//CExtendedEncoder
+EXPORT_C CExtendedEncoder* CExtendedEncoder::NewL()
+	{
+	CExtendedEncoder* self;
+	self = new (ELeave) CExtendedEncoder;
+	return self;
+	}
+
+CExtendedEncoder::CExtendedEncoder()
+	{
+	}
+
+EXPORT_C TInt CExtendedEncoder::SyncResult() const
+	{
+	CExtendedEncoderPlugin* plugin;
+	plugin = static_cast<CExtendedEncoderPlugin*>(Plugin());
+	return plugin->iSyncResult;
+	}
+
+EXPORT_C TInt CExtendedEncoder::AsyncResult() const
+	{
+	CExtendedEncoderPlugin* plugin;
+	plugin = static_cast<CExtendedEncoderPlugin*>(Plugin());
+	return plugin->iAsyncResult;
+	}
+
+EXPORT_C TBool CExtendedEncoder::UsingThread() const
+	{
+	CExtendedEncoderPlugin* plugin;
+	plugin = static_cast<CExtendedEncoderPlugin*>(Plugin());
+	return plugin->UsingThread();
+	}
+
+EXPORT_C TInt CExtendedEncoder::DoCustomAsync() const
+	{
+	CExtendedEncoderPlugin* plugin;
+	plugin = static_cast<CExtendedEncoderPlugin*>(Plugin());
+	return plugin->iDoCustomAsync;
+	}
+
+EXPORT_C void CExtendedEncoder::CustomSyncL(TInt aParam)
+	{
+	CImageEncoder::CustomSyncL(aParam);
+	}
+
+EXPORT_C void CExtendedEncoder::CustomAsync(TRequestStatus* aRequestStatus, TInt aParam)
+	{
+	CImageEncoder::CustomAsync(aRequestStatus, aParam);
+	}
+	
+//CExtendedEncoderPlugin
+EXPORT_C void CExtendedEncoderPlugin::HandleCustomSyncL(TInt aParam)
+	{
+	if(aParam == 0)
+		iSyncResult = -2;
+	else
+		User::Leave(KErrNotSupported);
+	}
+
+EXPORT_C void CExtendedEncoderPlugin::InitCustomAsyncL(TInt aParam)
+	{
+	iDoCustomAsync = ETrue;
+	if(aParam == 0)
+		{
+		iAsyncResult = -1;
+		}
+	else
+		{
+		iDoCustomAsync = EFalse;		
+		User::Leave(KErrNotSupported);
+		}
+	}
+
+EXPORT_C void CExtendedEncoderPlugin::DoConvert()
+	{
+	if(iDoCustomAsync)
+		{
+		iAsyncResult = -2;
+		RequestComplete(KErrNone);
+		}
+	else
+		CImageEncoderPlugin::DoConvert();
+	}
+
+EXPORT_C void CExtendedEncoderPlugin::NotifyComplete()
+	{
+	iDoCustomAsync = EFalse;
+	}
+
+EXPORT_C TBool CExtendedEncoderPlugin::UsingThread() const
+	{
+	return AmInThread();
+	}
+
+