sl@0: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include "ECamUnitTestPlugin.h" sl@0: #include "ECamUnitTestPluginUids.hrh" sl@0: #include "AdvancedSettings.h" sl@0: #include sl@0: #include "EnhanceFunctionality.h" sl@0: #include "directviewfinder.h" sl@0: #include "extended_functionality.h" sl@0: sl@0: const TBool KTestCamerasPresent[] = {ETrue, EFalse, EFalse}; sl@0: const CCamera::CCameraAdvancedSettings::TCameraType KTestCamerasTypes[] = sl@0: { sl@0: CCamera::CCameraAdvancedSettings::ECameraOnBoard, sl@0: CCamera::CCameraAdvancedSettings::ECameraPluggable, sl@0: CCamera::CCameraAdvancedSettings::ECameraPluggable sl@0: }; sl@0: sl@0: // sl@0: // Main stuff sl@0: // sl@0: static void Panic(TInt aReason) sl@0: { sl@0: _LIT(KDllName, "ECam Unit Test Plugin"); sl@0: User::Panic(KDllName, aReason); sl@0: } sl@0: sl@0: // sl@0: // CCamUnitTestPlugin sl@0: // sl@0: CCamUnitTestPlugin::CCamUnitTestPlugin() sl@0: { sl@0: iPresets.Reset(); sl@0: iSupportedISORates.Reset(); sl@0: iIsoRate = KDefaultIsoRate; sl@0: for ( TInt i = 0; i< KECamSetAvailableCameras; i++) sl@0: { sl@0: iCameras[i] = KTestCamerasPresent[i]; sl@0: iCameraTypes[i] = KTestCamerasTypes[i]; sl@0: } sl@0: sl@0: iVFHandleGenerater = 0; sl@0: } sl@0: sl@0: CCamUnitTestPlugin::~CCamUnitTestPlugin() sl@0: { sl@0: iSupportedISORates.Close(); sl@0: } sl@0: sl@0: CCamUnitTestPlugin* CCamUnitTestPlugin::NewL() sl@0: { sl@0: FileDependencyUtil::CheckFileDependencyL(); sl@0: return new (ELeave) CCamUnitTestPlugin; sl@0: } sl@0: sl@0: // sl@0: // 2nd stage ConstructL calls called by framework sl@0: // sl@0: sl@0: void CCamUnitTestPlugin::Construct2L(MCameraObserver& aObserver,TInt aCameraIndex) sl@0: { sl@0: iObserver = &aObserver; sl@0: iCameraIndex = aCameraIndex; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::Construct2DupL(MCameraObserver& aObserver,TInt aCameraHandle) sl@0: { sl@0: iObserver = &aObserver; sl@0: iCameraHandle = aCameraHandle; sl@0: } sl@0: sl@0: sl@0: void CCamUnitTestPlugin::Construct2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority) sl@0: { sl@0: iObserver2 = &aObserver; sl@0: iCameraIndex = aCameraIndex; sl@0: iPriority = aPriority; sl@0: sl@0: iSupportedISORates.AppendL(KMinIsoRate); sl@0: iSupportedISORates.AppendL(KDefaultIsoRate); sl@0: iSupportedISORates.AppendL(KIsoRate1); sl@0: iSupportedISORates.AppendL(KIsoRate2); sl@0: iSupportedISORates.AppendL(KIsoRate3); sl@0: iSupportedISORates.AppendL(KIsoRate4); sl@0: iSupportedISORates.AppendL(KIsoRate5); sl@0: iSupportedISORates.AppendL(KMaxIsoRate); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::Construct2DupL(MCameraObserver2& aObserver,TInt aCameraHandle) sl@0: { sl@0: iObserver2 = &aObserver; sl@0: iCameraHandle = aCameraHandle; sl@0: sl@0: sl@0: iSupportedISORates.AppendL(KMinIsoRate); sl@0: iSupportedISORates.AppendL(KDefaultIsoRate); sl@0: iSupportedISORates.AppendL(KIsoRate1); sl@0: iSupportedISORates.AppendL(KIsoRate2); sl@0: iSupportedISORates.AppendL(KIsoRate3); sl@0: iSupportedISORates.AppendL(KIsoRate4); sl@0: iSupportedISORates.AppendL(KIsoRate5); sl@0: iSupportedISORates.AppendL(KMaxIsoRate); sl@0: } sl@0: sl@0: sl@0: sl@0: // sl@0: // Dummy versions of virtual functions sl@0: // sl@0: sl@0: void CCamUnitTestPlugin::CameraInfo(TCameraInfo& /*aInfo*/) const sl@0: { sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::Reserve() sl@0: { sl@0: } sl@0: sl@0: sl@0: void CCamUnitTestPlugin::Release() sl@0: { sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::PowerOn() sl@0: { sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::PowerOff() sl@0: { sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::Handle() sl@0: { sl@0: return 0; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetZoomFactorL(TInt /*aZoomFactor = 0*/) sl@0: { sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::ZoomFactor() const sl@0: { sl@0: return 0; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetDigitalZoomFactorL(TInt /*aDigitalZoomFactor = 0*/) sl@0: { sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::DigitalZoomFactor() const sl@0: { sl@0: return 0; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetContrastL(TInt /*aContrast*/) sl@0: { sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::Contrast() const sl@0: { sl@0: return 0; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetBrightnessL(TInt /*aBrightness*/) sl@0: { sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::Brightness() const sl@0: { sl@0: return 0; sl@0: } sl@0: sl@0: sl@0: void CCamUnitTestPlugin::SetFlashL(TFlash /*aFlash = EFlashNone*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: CCamera::TFlash CCamUnitTestPlugin::Flash() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return EFlashNone; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetExposureL(TExposure /*aExposure = EExposureAuto*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: CCamera::TExposure CCamUnitTestPlugin::Exposure() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return EExposureAuto; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetWhiteBalanceL(TWhiteBalance /*aWhiteBalance = EWBAuto*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: CCamera::TWhiteBalance CCamUnitTestPlugin::WhiteBalance() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return EWBAuto; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StartViewFinderDirectL(RWsSession& /*aWs*/,CWsScreenDevice& /*aScreenDevice*/,RWindowBase& /*aWindow*/,TRect& /*aScreenRect*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StartViewFinderDirectL(RWsSession& /*aWs*/,CWsScreenDevice& /*aScreenDevice*/,RWindowBase& /*aWindow*/,TRect& /*aScreenRect*/,TRect& /*aClipRect*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StartViewFinderBitmapsL(TSize& /*aSize*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StartViewFinderBitmapsL(TSize& /*aSize*/,TRect& /*aClipRect*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: sl@0: void CCamUnitTestPlugin::StartViewFinderL(TFormat /*aImageFormat*/,TSize& /*aSize*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StartViewFinderL(TFormat /*aImageFormat*/,TSize& /*aSize*/,TRect& /*aClipRect*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: sl@0: void CCamUnitTestPlugin::StopViewFinder() sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: TBool CCamUnitTestPlugin::ViewFinderActive() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return EFalse; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetViewFinderMirrorL(TBool /*aMirror*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: TBool CCamUnitTestPlugin::ViewFinderMirror() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return EFalse; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::PrepareImageCaptureL(TFormat /*aImageFormat*/,TInt /*aSizeIndex*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::PrepareImageCaptureL(TFormat /*aImageFormat*/,TInt /*aSizeIndex*/,const TRect& /*aClipRect*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::CaptureImage() sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::CancelCaptureImage() sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::EnumerateCaptureSizes(TSize& /*aSize*/,TInt /*aSizeIndex*/,TFormat /*aFormat*/) const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::PrepareVideoCaptureL(TFormat /*aFormat*/,TInt /*aSizeIndex*/,TInt /*aRateIndex*/,TInt /*aBuffersToUse*/,TInt /*aFramesPerBuffer*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::PrepareVideoCaptureL(TFormat /*aFormat*/,TInt /*aSizeIndex*/,TInt /*aRateIndex*/,TInt /*aBuffersToUse*/,TInt /*aFramesPerBuffer*/,const TRect& /*aClipRect*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StartVideoCapture() sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::StopVideoCapture() sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: TBool CCamUnitTestPlugin::VideoCaptureActive() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return EFalse; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::EnumerateVideoFrameSizes(TSize& /*aSize*/,TInt /*aSizeIndex*/,TFormat /*aFormat*/) const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::EnumerateVideoFrameRates(TReal32& /*aRate*/,TInt /*aRateIndex*/,TFormat /*aFormat*/,TInt /*aSizeIndex*/,TExposure /*aExposure = EExposureAuto*/) const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::GetFrameSize(TSize& /*aSize*/) const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: TReal32 CCamUnitTestPlugin::FrameRate() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return 0.0; sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::BuffersInUse() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return 0; sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::FramesPerBuffer() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return 0; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::SetJpegQuality(TInt /*aQuality*/) sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: } sl@0: sl@0: TInt CCamUnitTestPlugin::JpegQuality() const sl@0: { sl@0: Panic(EPanicUnimplemented); sl@0: return 0; sl@0: } sl@0: sl@0: TAny* CCamUnitTestPlugin::CustomInterface(TUid aInterfaceUid) sl@0: { sl@0: TAny* advSettingObject = NULL; sl@0: // use the fact that the parent is a friend of the class sl@0: sl@0: TRAPD(err, advSettingObject = CCamera::CustomInterface(aInterfaceUid)); sl@0: sl@0: if (err == KErrNone) sl@0: { sl@0: return advSettingObject; sl@0: } sl@0: /*else if (err == KErrNoMemory) sl@0: { sl@0: User::Leave(KErrNoMemory); sl@0: }*/ sl@0: return NULL; sl@0: } sl@0: sl@0: sl@0: TAny* CCamera::CustomInterface(TUid aInterfaceUid) sl@0: { sl@0: switch (aInterfaceUid.iUid) sl@0: { sl@0: // presets sl@0: case KECamPresetsUidValue: sl@0: { sl@0: CCamera::CCameraPresets* presets = new (ELeave)CCamera::CCameraPresets(*this); sl@0: CleanupStack::PushL(presets); sl@0: presets->ConstructL(); sl@0: CleanupStack::Pop(presets); sl@0: sl@0: return static_cast(presets); sl@0: } sl@0: sl@0: case KECamMCameraPresetsUidValue: sl@0: { sl@0: return static_cast(CCamPresets::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraPresets2UidValue: sl@0: { sl@0: return static_cast(CCamPresets::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: // image processing sl@0: case KECamImageProcessingUidValue: sl@0: { sl@0: CCamera::CCameraImageProcessing* processing = new (ELeave)CCamera::CCameraImageProcessing(*this); sl@0: CleanupStack::PushL(processing); sl@0: processing->ConstructL(); sl@0: CleanupStack::Pop(processing); sl@0: sl@0: return static_cast(processing); sl@0: } sl@0: sl@0: case KECamMCameraImageProcessingUidValue: sl@0: { sl@0: return static_cast(CCamImgProc::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraImageProcessing2UidValue: sl@0: { sl@0: return static_cast(CCamImgProc::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraImageProcessing3UidValue: sl@0: { sl@0: return static_cast(CCamImgProc::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: // advanced settings sl@0: case KECamAdvancedSettingUidValue: sl@0: { sl@0: CCamera::CCameraAdvancedSettings* settings = new (ELeave)CCamera::CCameraAdvancedSettings(*this); sl@0: CleanupStack::PushL(settings); sl@0: settings->ConstructL(); sl@0: CleanupStack::Pop(settings); sl@0: sl@0: return static_cast(settings); sl@0: } sl@0: sl@0: case KECamMCameraAdvancedSettingsUidValue: sl@0: { sl@0: return static_cast(CCamAdvSet::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraAdvancedSettings2UidValue: sl@0: { sl@0: return static_cast(CCamAdvSet::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraAdvancedSettings3UidValue: sl@0: { sl@0: return static_cast(CCamAdvSet::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraAdvancedSettings4UidValue: sl@0: { sl@0: return static_cast(CCamAdvSet::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KUidCameraManagementUidValue: sl@0: { sl@0: return (CCamManagement::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: // sl@0: // enhance camera functionality // sl@0: // sl@0: case KECamHistogramUidValue: sl@0: { sl@0: return static_cast(CCamera::CCameraHistogram::NewL(*this)); sl@0: } sl@0: sl@0: case KECamMCameraHistogramUidValue: sl@0: { sl@0: return static_cast(CCamHistogram::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamOverlayUidValue: sl@0: { sl@0: return static_cast(CCamera::CCameraOverlay::NewL(*this)); sl@0: } sl@0: sl@0: case KECamMCameraOverlayUidValue: sl@0: { sl@0: return static_cast(CCamOverlay::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraOverlay2UidValue: sl@0: { sl@0: return static_cast(CCamOverlay::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamSnapshotUidValue: sl@0: { sl@0: return static_cast(CCamera::CCameraSnapshot::NewL(*this)); sl@0: } sl@0: sl@0: case KECamMCameraSnapshotUidValue: sl@0: { sl@0: return static_cast(CCamSnapshot::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: // sl@0: // direct viewfinder functionality // sl@0: // sl@0: case KECamDirectViewFinderUidValue: sl@0: { sl@0: return static_cast(CCamera::CCameraDirectViewFinder::NewL(*this)); sl@0: } sl@0: sl@0: case KECamMCameraDirectViewFinderUidValue: sl@0: { sl@0: return static_cast(CCamDirectViewFinder::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraPreImageCaptureControlUidValue: sl@0: { sl@0: return static_cast(CCamPreImageCaptureControl::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraImageCaptureUidValue: sl@0: { sl@0: return static_cast(CCamImageCapture::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraVideoCaptureControlUidValue: sl@0: { sl@0: return static_cast(CCamVideoCaptureControl::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraClientViewFinderUidValue: sl@0: { sl@0: return static_cast(CCamClientViewFinder::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraBaseClientViewFinderUidValue: sl@0: { sl@0: return static_cast(CCamClientViewFinder::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraV2DirectViewFinderUidValue: sl@0: { sl@0: return static_cast(CCamV2DirectViewFinder::NewL(static_cast(*this))); sl@0: } sl@0: sl@0: case KECamMCameraBaseV2DirectViewFinderUidValue: sl@0: { sl@0: return static_cast(CCamV2DirectViewFinder::NewL(static_cast(*this))); sl@0: } sl@0: default: sl@0: { sl@0: return NULL; sl@0: } sl@0: } sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::GenerateVFHandle(TInt& aVFHandle) sl@0: { sl@0: iVFHandleGenerater++; sl@0: aVFHandle = iVFHandleGenerater; sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::Notify(TUid aMessageId, TInt aError) sl@0: { sl@0: if (iObserver2 != NULL) sl@0: { sl@0: iObserver2->HandleEvent(TECAMEvent(aMessageId, aError)); sl@0: } sl@0: } sl@0: sl@0: void CCamUnitTestPlugin::Notify2(TUid aMessageId, TInt aError, TInt aParam) sl@0: { sl@0: if (iObserver2 != NULL) sl@0: { sl@0: iObserver2->HandleEvent(TECAMEvent2(aMessageId, aError, aParam)); sl@0: } sl@0: } sl@0: sl@0: // sl@0: // CCamUnitTestPluginInfo sl@0: // sl@0: sl@0: CCamUnitTestPluginInfo::CCamUnitTestPluginInfo() sl@0: { sl@0: } sl@0: sl@0: CCamUnitTestPluginInfo::~CCamUnitTestPluginInfo() sl@0: { sl@0: } sl@0: sl@0: CCamUnitTestPluginInfo* CCamUnitTestPluginInfo::NewL() sl@0: { sl@0: FileDependencyUtil::CheckFileDependencyL(); sl@0: return new (ELeave) CCamUnitTestPluginInfo; sl@0: } sl@0: sl@0: TInt CCamUnitTestPluginInfo::CamerasAvailable() sl@0: { sl@0: return KECamSetAvailableCameras; sl@0: } sl@0: sl@0: // sl@0: // CCamUnitTestPluginSecureId sl@0: // sl@0: sl@0: CCamUnitTestPluginSecureId::CCamUnitTestPluginSecureId() sl@0: { sl@0: } sl@0: sl@0: CCamUnitTestPluginSecureId::~CCamUnitTestPluginSecureId() sl@0: { sl@0: } sl@0: sl@0: CCamUnitTestPluginSecureId* CCamUnitTestPluginSecureId::NewL() sl@0: { sl@0: CCamUnitTestPluginSecureId* pluginSecureId = new (ELeave) CCamUnitTestPluginSecureId; sl@0: return pluginSecureId; sl@0: } sl@0: sl@0: void CCamUnitTestPluginSecureId::Release() sl@0: { sl@0: delete this; sl@0: } sl@0: sl@0: void CCamUnitTestPluginSecureId::GetSecureIdL(TInt& aSecureId) const sl@0: { sl@0: TSecureId secureId = User::CreatorSecureId(); sl@0: aSecureId = secureId.iId; sl@0: } sl@0: sl@0: void FileDependencyUtil::CheckFileDependencyL() sl@0: { sl@0: RFs fsSession; sl@0: RFile file; sl@0: sl@0: User::LeaveIfError(fsSession.Connect()); sl@0: CleanupClosePushL(fsSession); sl@0: TInt err = file.Open(fsSession, KECamUnitTestPluginName, EFileRead); sl@0: file.Close(); sl@0: sl@0: if(err != KErrNone) sl@0: { sl@0: User::LeaveIfError(KErrNotSupported); sl@0: } sl@0: CleanupStack::PopAndDestroy(); //fsSession sl@0: sl@0: } sl@0: sl@0: // __________________________________________________________________________ sl@0: // Exported proxy for instantiation method resolution sl@0: // Define the interface UIDs sl@0: const TImplementationProxy ImplementationTable[] = sl@0: { sl@0: IMPLEMENTATION_PROXY_ENTRY(KUidCameraUnitTestPlugin, CCamUnitTestPlugin::NewL), sl@0: IMPLEMENTATION_PROXY_ENTRY(KUidCameraUnitTestInfo, CCamUnitTestPluginInfo::NewL), sl@0: IMPLEMENTATION_PROXY_ENTRY(KUidCameraUnitTestSecureId, CCamUnitTestPluginSecureId::NewL) sl@0: }; sl@0: sl@0: EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) sl@0: { sl@0: aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); sl@0: sl@0: return ImplementationTable; sl@0: } sl@0: