--- /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();
+ }
+
+