|
1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // extendedfunctionality.h |
|
15 // |
|
16 // |
|
17 |
|
18 #ifndef EXTENDEDFUNCTIONALITY_H |
|
19 #define EXTENDEDFUNCTIONALITY_H |
|
20 |
|
21 #include <ecam/ecamplugin.h> |
|
22 #include <ecam/ecaminfoplugin.h> |
|
23 |
|
24 #include "ECamUnitTestPlugin.h" |
|
25 #include <fbs.h> |
|
26 |
|
27 #include <ecam/mcamerahistogram.h> |
|
28 #include <ecam/mcamerasnapshot.h> |
|
29 #include <ecam/ecamcapturecontrolintf.h> |
|
30 #include <ecam/ecamimageprocessingintf.h> |
|
31 #include <ecam/ecamviewfinderintf.h> |
|
32 #include <ecam/implementationfactoryintf.h> |
|
33 |
|
34 class CCamUnitTestPlugin; |
|
35 |
|
36 const TInt KSupportedDirectVCType = 0; |
|
37 const TInt KSupportedClientVCType = 1; |
|
38 |
|
39 // |
|
40 // camera buffer 2 |
|
41 class RCamBuffer2 : public MCameraBuffer2 |
|
42 { |
|
43 public: |
|
44 RCamBuffer2(CFbsBitmap*& aFrame): iAvailable(ETrue), iFrame(aFrame) {} |
|
45 virtual TInt NumFrames() {return 0;} |
|
46 virtual TDesC8* DataL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return NULL; } |
|
47 virtual CFbsBitmap& BitmapL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return *iFrame;} |
|
48 virtual RChunk& ChunkL() { return iChunk;} |
|
49 virtual TInt ChunkOffsetL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return 0;} |
|
50 virtual TInt FrameSize(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return 0; } |
|
51 virtual void Release() {iAvailable = ETrue;} |
|
52 |
|
53 virtual TInt GetInterfaceUids(RArray<TUid>& aInterfaceUids) {aInterfaceUids.Reset(); return KErrNotSupported;} |
|
54 virtual TInt CustomInterface(TUid /*aInterface*/, TAny*& aPtrInterface) {aPtrInterface = NULL; return KErrNotSupported;} |
|
55 |
|
56 public: |
|
57 TBool iAvailable; |
|
58 CFbsBitmap*& iFrame; |
|
59 RChunk iChunk; |
|
60 }; |
|
61 |
|
62 // |
|
63 //pre image capture control impl |
|
64 class CCamPreImageCaptureControl: public CBase, public MCameraPreImageCaptureControl |
|
65 { |
|
66 public: |
|
67 static CCamPreImageCaptureControl* NewL(CCamUnitTestPlugin& aOwner); |
|
68 ~CCamPreImageCaptureControl(); |
|
69 |
|
70 void Release(); |
|
71 void SetPreImageCaptureControlObserver(MPreImageCaptureControlObserver& aPreImageCaptureControlObserver); |
|
72 void GetDirectSnapshotSupportInfoL(TUint& aDirectSnapshotSupportInfo) const; |
|
73 void GetSupportedEmbeddedStillCaptureSettingsL(RArray<TUid>& aSupportedEmbeddedStillCaptureSettings) const; |
|
74 void GetSupportedDirectSavingTypeL(CCamera::CCameraPreImageCaptureControl::TDirectSavingType& aSupportedDirectSavingType) const; |
|
75 void SetSequentialImageFilenameL(const TDesC8& aFilename, TInt aStartingSequenceNumber); |
|
76 void SetLowerResolutionSequentialImageFilenameL(const TDesC8& aLowerResolutionFilename, TInt aStartingSequenceNumber); |
|
77 void GetDirectSavingTypeL(CCamera::CCameraPreImageCaptureControl::TDirectSavingType& aDirectSavingType) const; |
|
78 void SetDirectSavingTypeL(CCamera::CCameraPreImageCaptureControl::TDirectSavingType aDirectSavingType); |
|
79 void GetCaptureEventSupportInfoL(TUint& aSupportedDriveModes) const; |
|
80 void GetImageFormatsSupportedL(TUint& aImageFormatsSupported, const TSize& aSize) const; |
|
81 void GetPixelAspectsSupportedL(TUint& aPixelAspectsSupported, CCamera::TFormat aImageFormat, const TSize& aSize) const; |
|
82 void PrepareImageCapture(const CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters& |
|
83 aPrepareImageParameters, MCaptureImageObserver& aCaptureImageObserver); |
|
84 void GetImageMaxMemorySizeSettingSupportInfoL(TBool& aIsImageMaxMemorySizeSettingSupported) const; |
|
85 void GetImageMaxMemorySizeL(TUint& aMemorySize) const; |
|
86 void GetSupportedProcessingOptionsL(TUint& aSupportedProcessingOptions) const; |
|
87 |
|
88 inline MPreImageCaptureControlObserver* PreImageCaptureControlObserver() {return iPreImageCaptureControlObserver;} |
|
89 |
|
90 private: |
|
91 CCamPreImageCaptureControl(CCamUnitTestPlugin& aOwner); |
|
92 |
|
93 void CreateCaptureImageL(CCamera::CCameraImageCapture*& aCameraImageCapture, const CCamera::CCameraPreImageCaptureControl:: |
|
94 TPrepareImageParameters& aPrepareImageParameters, MCaptureImageObserver& aCaptureImageObserver); |
|
95 |
|
96 private: |
|
97 CCamUnitTestPlugin& iOwner; |
|
98 MPreImageCaptureControlObserver* iPreImageCaptureControlObserver; |
|
99 }; |
|
100 |
|
101 // |
|
102 //image capture impl |
|
103 class CCamSnapshotForImage; |
|
104 class CCamImgProcImpForImage; |
|
105 class CCamPostImageCaptureControl; |
|
106 |
|
107 class CCamImageCapture: public CBase, public MCameraImageCapture |
|
108 { |
|
109 friend class CSnapshotFactoryForImage; |
|
110 friend class CImgProcFactoryForImage; |
|
111 friend class CCamPostImageCaptureControl; |
|
112 |
|
113 public: |
|
114 static CCamImageCapture* NewL(CCamUnitTestPlugin& aOwner); |
|
115 ~CCamImageCapture(); |
|
116 |
|
117 void Release(CCamera::CCameraImageCapture* aCameraImageCapture); |
|
118 void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
119 void GetSnapshotImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
120 void GetImageProcessingImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
121 void SetCaptureImageObserver(MCaptureImageObserver& aCaptureImageObserver); |
|
122 void GetPrepareImageParametersL(CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters& aPrepareImageParameters) const; |
|
123 void SetPrepareImageParameters(const CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters& aPrepareImageParameters); |
|
124 TAny* CreatePostImageCaptureControlImpl(TUid aInterface, TPostCaptureControlId aPostCaptureControlId); |
|
125 void CaptureImage(CCamera::CCameraImageCapture* aCameraImageCapture); |
|
126 void CancelCaptureImage(); |
|
127 void GetNumImagesExposedL(TUint& aNumImagesExposed) const; |
|
128 void GetNumTotalImagesL(TUint& aNumTotalImages) const; |
|
129 void GetPostCaptureControlHandleL(CCamera::CCameraPostImageCaptureControl*& aPostCaptureControlHandle, |
|
130 TPostCaptureControlId aPostCaptureControlId) const; |
|
131 void SetCaptureImagePriorityL(TECamImagePriority aCaptureImagePriority); |
|
132 void GetCaptureImagePriorityL(TECamImagePriority& aCaptureImagePriority) const; |
|
133 void PauseProcessing(TUint aProcessingType); |
|
134 void ResumeProcessingL(TUint aProcessingType); |
|
135 |
|
136 inline MCaptureImageObserver* CaptureImageObserver() {return iCaptureImageObserver;} |
|
137 inline CCamera::CCameraImageCapture* CameraImageCapture() {return iCameraImageCapture;} |
|
138 inline CCamUnitTestPlugin& Owner() {return iOwner;} |
|
139 |
|
140 private: |
|
141 CCamImageCapture(CCamUnitTestPlugin& aOwner); |
|
142 void CreatePostImageCaptureControlL(CCamera::CCameraPostImageCaptureControl*& aPostCaptureControlHandle, |
|
143 TPostCaptureControlId aPostCaptureControlId); |
|
144 |
|
145 private: |
|
146 CCamUnitTestPlugin& iOwner; |
|
147 MCaptureImageObserver* iCaptureImageObserver; |
|
148 CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters iPrepareImageParameters; |
|
149 |
|
150 mutable CCamSnapshotForImage* iSnapshotImpForImage; |
|
151 CCamImgProcImpForImage* iCamImgProcImpForImage; |
|
152 RArray<TInt> iArrayPostCaptureControlId; |
|
153 RArray<CCamPostImageCaptureControl*> iArrayPostCaptureControlImpl; |
|
154 RArray<CCamera::CCameraPostImageCaptureControl*> iArrayPostCaptureControlHandle; |
|
155 |
|
156 CCamera::CCameraImageCapture* iCameraImageCapture; |
|
157 }; |
|
158 |
|
159 // |
|
160 //post image capture control impl |
|
161 class CCamPostImageCaptureControl: public CBase, public MCameraPostImageCaptureControl |
|
162 { |
|
163 public: |
|
164 static CCamPostImageCaptureControl* NewL(CCamImageCapture& aCamImageCaptureImpl); |
|
165 ~CCamPostImageCaptureControl(); |
|
166 |
|
167 void Release(TPostCaptureControlId aPostCaptureControlId); |
|
168 void GetImageSequenceNumberL(TUint& aSequenceNumber) const; |
|
169 void CancelImage(); |
|
170 void SetImagePriorityL(TECamImagePriority aImagePriority); |
|
171 void GetImagePriorityL(TECamImagePriority& aImagePriority) const; |
|
172 void PauseProcessing(TUint aProcessingType); |
|
173 void ResumeProcessingL(TUint aProcessingType); |
|
174 void GetImageBufferL(MCameraImageBuffer& aCameraImageBuffer) const; |
|
175 void GetImageStateL(CCamera::CCameraPostImageCaptureControl::TImageState& aImageState) const; |
|
176 void GetBufferStateL(CCamera::CCameraPostImageCaptureControl::TBufferState& aBufferState) const; |
|
177 |
|
178 inline CCamImageCapture& CamImageCaptureImpl() {return iCamImageCaptureImpl;} |
|
179 |
|
180 private: |
|
181 CCamPostImageCaptureControl(CCamImageCapture& aCamImageCaptureImpl); |
|
182 |
|
183 private: |
|
184 CCamImageCapture& iCamImageCaptureImpl; |
|
185 }; |
|
186 |
|
187 // |
|
188 //video capture control impl |
|
189 class CCamSnapshotForVideo; |
|
190 class CCamVideoCaptureControl : public CBase, public MCameraVideoCaptureControl |
|
191 { |
|
192 friend class CSnapshotFactoryForVideo; |
|
193 |
|
194 public: |
|
195 static CCamVideoCaptureControl* NewL(CCamUnitTestPlugin& aOwner); |
|
196 ~CCamVideoCaptureControl(); |
|
197 |
|
198 void Release(); |
|
199 void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
200 void GetSnapshotImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
201 void GetImageProcessingImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
202 void SetCaptureVideoObserver(MCaptureVideoObserver& aCaptureVideoObserver); |
|
203 void GetVideoFormatsSupportedL(TUint& aVideoFormatsSupported, const TSize& aSize) const; |
|
204 void GetPixelAspectsSupportedL(TUint& aPixelAspectsSupported, CCamera::TFormat aVideoFormat, const TSize& aSize) const; |
|
205 void GetEmbeddedStillCaptureSupportInfoL(TInt& aSupportedEmbeddedStillCaptureTypes) const; |
|
206 void PrepareVideoCapture(const CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters& aPrepareVideoParameters); |
|
207 void GetRangeAffectedSettingsL(RArray<TUid>& aRangeAffectedSettings) const; |
|
208 void GetValueAffectedSettingsL(RArray<TUid>& aValueAffectedSettings) const; |
|
209 void GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
210 void ReleaseVideoResource(); |
|
211 void StartVideoCaptureL(); |
|
212 void StopVideoCapture(); |
|
213 void PauseVideoCapture(); |
|
214 void ResumeVideoCaptureL(); |
|
215 void GetFadingEffectStateL(CCamera::CCameraVideoCaptureControl::TFadingEffectState& aFadingEffectState) const; |
|
216 void SetFadingEffectState(CCamera::CCameraVideoCaptureControl::TFadingEffectState aFadingEffectState); |
|
217 void GetVideoCaptureStateL(CCamera::CCameraVideoCaptureControl::TVideoCaptureState& aVideoCaptureState) const; |
|
218 void GetVideoCaptureSupportInfoL(TInt& aSupportedVideoCaptureTypes) const; |
|
219 void GetPrepareVideoParametersL(CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters& aPrepareVideoParameters) const; |
|
220 |
|
221 inline MCaptureVideoObserver* CaptureVideoObserver() {return iCaptureVideoObserver;} |
|
222 inline CCamUnitTestPlugin& Owner() {return iOwner;} |
|
223 |
|
224 private: |
|
225 CCamVideoCaptureControl(CCamUnitTestPlugin& aOwner); |
|
226 void ConstructL(); |
|
227 |
|
228 private: |
|
229 CCamUnitTestPlugin& iOwner; |
|
230 MCaptureVideoObserver* iCaptureVideoObserver; |
|
231 CCamSnapshotForVideo* iSnapshotImpForVideo; |
|
232 CCamera::CCameraVideoCaptureControl::TPrepareVideoParameters iPrepareVideoParameters; |
|
233 CFbsBitmap* iBitmap; |
|
234 }; |
|
235 |
|
236 // |
|
237 //direct snapshot implementation to be used by version2 direct viewfinder. |
|
238 class CCamDirectSnapshot : public CBase, public MCameraDirectSnapshot |
|
239 { |
|
240 public: |
|
241 |
|
242 static CCamDirectSnapshot* NewL(); |
|
243 ~CCamDirectSnapshot(); |
|
244 |
|
245 void Release(); |
|
246 void SetDirectViewFinder(const CCamera::CCameraV2DirectViewFinder* aDirectViewFinder); |
|
247 void GetDirectViewFinderL(CCamera::CCameraV2DirectViewFinder*& aDirectViewFinder) const; |
|
248 void EnableDirectSnapshotL(CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters& aDirectSnapshotParameters); |
|
249 void DisableDirectSnapshot(); |
|
250 void GetDirectSnapshotStateL(CCamera::CCameraDirectSnapshot::TDirectSnapshotState& aDirectSnapshotState) const; |
|
251 void GetDirectSnapshotParametersL(CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters& aDirectSnapshotParameters) const; |
|
252 void SetDirectSnapshotParametersL(const CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters& aDirectSnapshotParameters); |
|
253 |
|
254 private: |
|
255 CCamDirectSnapshot(); |
|
256 |
|
257 private: |
|
258 const CCamera::CCameraV2DirectViewFinder* iCameraV2DirectVF; |
|
259 CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters iDirectSnapshotParameters; |
|
260 CCamera::CCameraDirectSnapshot::TDirectSnapshotState iDirectSnapshotState; |
|
261 }; |
|
262 |
|
263 // |
|
264 //V2 direct viewfinder impl |
|
265 class CCamV2DirectViewFinder: public CBase, public MCameraViewFinder, public MCameraV2DirectViewFinder |
|
266 { |
|
267 public: |
|
268 static CCamV2DirectViewFinder* NewL(CCamUnitTestPlugin& aOwner); |
|
269 ~CCamV2DirectViewFinder(); |
|
270 |
|
271 void Release(CCamera::CCameraV2DirectViewFinder* aDirectViewFinderHandle); |
|
272 void Release(); |
|
273 void GetViewFinderFadingCapabilitiesL(CCameraViewFinder::TViewFinderFadingCapabilities& aVFFadingCapabilities) const; |
|
274 void GetViewFinderFadingEffectL(CCameraViewFinder::TViewFinderFadingEffect& aCurrentVFFadingEffect) const; |
|
275 void SetViewFinderFadingEffect(const CCameraViewFinder::TViewFinderFadingEffect& aVFFadingEffect); |
|
276 void GetViewFinderHandleL(TInt& aVFHandle) const; |
|
277 |
|
278 void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
279 void GetImageProcessingImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
280 void SetDirectViewFinderObserver(MDirectViewFinderObserver& aDirectViewFinderObserver); |
|
281 void SetDirectViewFinderHandle(CCamera::CCameraV2DirectViewFinder* aDirectViewFinderHandle); |
|
282 void StartViewFinderDirectL(RWsSession& aWs, CWsScreenDevice& aScreenDevice, RWindowBase& aWindow, TRect& aScreenRect); |
|
283 void StartViewFinderDirectL(RWsSession& aWs, CWsScreenDevice& aScreenDevice, RWindowBase& aWindow, TRect& aScreenRect, TRect& aClipRect); |
|
284 void GetDirectViewFinderPropertiesL(TInt& aScreenNumber, TRect& aScreenRect, TRect& aClipRect) const; |
|
285 void PauseViewFinderDirect(); |
|
286 void ResumeViewFinderDirect(); |
|
287 void GetViewFinderStateL(CCamera::CCameraV2DirectViewFinder::TViewFinderState& aViewFinderState) const; |
|
288 void StopDirectViewFinder(); |
|
289 TAny* GetDirectSnapshotImpl(TUid aInterface) const; |
|
290 |
|
291 inline MDirectViewFinderObserver* DirectViewFinderObserver() {return iDirectViewFinderObserver;} |
|
292 inline CCamera::CCameraV2DirectViewFinder& DirectViewFinderHandle() {return *iDirectViewFinderHandle;} |
|
293 inline CCamUnitTestPlugin& Owner() {return iOwner;} |
|
294 |
|
295 private: |
|
296 CCamV2DirectViewFinder(CCamUnitTestPlugin& aOwner); |
|
297 |
|
298 public: |
|
299 TInt iRefCount; |
|
300 |
|
301 private: |
|
302 CCamUnitTestPlugin& iOwner; |
|
303 MDirectViewFinderObserver* iDirectViewFinderObserver; |
|
304 CCamera::CCameraV2DirectViewFinder* iDirectViewFinderHandle; |
|
305 TInt iVFHandle; |
|
306 mutable CCamDirectSnapshot* iDirectSnapshot; |
|
307 }; |
|
308 |
|
309 // |
|
310 //client viewfinder impl |
|
311 class CCamClientViewFinder: public CBase, public MCameraViewFinder, public MCameraClientViewFinder |
|
312 { |
|
313 public: |
|
314 static CCamClientViewFinder* NewL(CCamUnitTestPlugin& aOwner); |
|
315 ~CCamClientViewFinder(); |
|
316 |
|
317 void Release(CCamera::CCameraClientViewFinder* aClientViewFinderHandle); |
|
318 void Release(); |
|
319 void GetViewFinderFadingCapabilitiesL(CCameraViewFinder::TViewFinderFadingCapabilities& aVFFadingCapabilities) const; |
|
320 void GetViewFinderFadingEffectL(CCameraViewFinder::TViewFinderFadingEffect& aCurrentVFFadingEffect) const; |
|
321 void SetViewFinderFadingEffect(const CCameraViewFinder::TViewFinderFadingEffect& aVFFadingEffect); |
|
322 void GetViewFinderHandleL(TInt& aVFHandle) const; |
|
323 |
|
324 void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
325 void GetImageProcessingImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
326 void SetClientViewFinderObserver(MClientViewFinderObserver& aClientViewFinderObserver); |
|
327 void SetClientViewFinderHandle(CCamera::CCameraClientViewFinder* aClientViewFinderHandle); |
|
328 |
|
329 void StartClientViewFinderL(TInt aScreenNumber, CCamera::TFormat aImageFormat, TSize& aSize); |
|
330 void StartClientViewFinderL(TInt aScreenNumber, CCamera::TFormat aImageFormat, TSize& aSize, TRect& aClipRect); |
|
331 void GetClientViewFinderStateL(TBool& aIsActive) const; |
|
332 void GetClientViewFinderPropertiesL(TInt& aScreenNumber, CCamera::TFormat& aImageFormat, TSize& aSize, TRect& aClipRect) const; |
|
333 void StopClientViewFinder(); |
|
334 void GetViewFinderBufferL(MCameraBuffer2& aClientViewFinderBuffer) const; |
|
335 |
|
336 inline MClientViewFinderObserver* ClientViewFinderObserver() {return iClientViewFinderObserver;} |
|
337 inline CCamera::CCameraClientViewFinder& ClientViewFinderHandle() {return *iClientViewFinderHandle;} |
|
338 inline CCamUnitTestPlugin& Owner() {return iOwner;} |
|
339 |
|
340 private: |
|
341 CCamClientViewFinder(CCamUnitTestPlugin& aOwner); |
|
342 |
|
343 public: |
|
344 TInt iRefCount; |
|
345 |
|
346 private: |
|
347 CCamUnitTestPlugin& iOwner; |
|
348 MClientViewFinderObserver* iClientViewFinderObserver; |
|
349 CCamera::CCameraClientViewFinder* iClientViewFinderHandle; |
|
350 TInt iVFHandle; |
|
351 }; |
|
352 |
|
353 // |
|
354 //snapshot impl for image |
|
355 class CCamSnapshotForImage : public CBase, public MCameraSnapshot, public MCameraSnapshot2 |
|
356 { |
|
357 friend class CHistogramImpForImageSnapshot; |
|
358 |
|
359 public: |
|
360 static CCamSnapshotForImage* NewL(CCamUnitTestPlugin& aOwner, CCamImageCapture& aCamImageCaptureImpl); |
|
361 ~CCamSnapshotForImage(); |
|
362 |
|
363 TUint32 SupportedFormats(); |
|
364 void PrepareSnapshotL(CCamera::TFormat aFormat, const TPoint& aPosition, const TSize& aSize, const TRgb& aBgColor, TBool aMaintainAspectRatio); |
|
365 void PrepareSnapshotL(CCamera::TFormat aFormat, const TSize& aSize, TBool aMaintainAspectRatio); |
|
366 |
|
367 void SetBgColorL(const TRgb& aBgColor); |
|
368 void SetPositionL(const TPoint& aPosition); |
|
369 |
|
370 TBool IsSnapshotActive() const; |
|
371 void StartSnapshot(); |
|
372 void StopSnapshot(); |
|
373 MCameraBuffer& SnapshotDataL(RArray<TInt>& aFrameIndexOrder); |
|
374 |
|
375 void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
376 void PrepareSnapshotL(const CCamera::CCameraSnapshot::TSnapshotParameters& aSnapshotParameters); |
|
377 void GetSnapshotParametersL(CCamera::CCameraSnapshot::TSnapshotParameters& aSnapshotParameters); |
|
378 void SetSnapshotParametersL(const CCamera::CCameraSnapshot::TSnapshotParameters& aSnapshotParameters); |
|
379 void GetSnapshotStatusL(CCamera::CCameraSnapshot::TSnapshotState& aSnapshotState) const; |
|
380 void SelectSnapshotVideoFramesL(CCamera::CCameraSnapshot::TSnapshotVideoFrames aSnapshotVideoFrames); |
|
381 void EnableSnapshot(); |
|
382 void DisableSnapshot(); |
|
383 void SetClientViewFinderId(TInt aClientViewFinderId); |
|
384 |
|
385 void Release(); |
|
386 |
|
387 inline CCamImageCapture& CamImageCaptureImpl() {return iCamImageCaptureImpl;} |
|
388 inline CCamera::CCameraImageCapture& CameraImageCapture() {return *(CamImageCaptureImpl().CameraImageCapture());} |
|
389 inline CCamUnitTestPlugin& Owner() {return iOwner;} |
|
390 private: |
|
391 CCamSnapshotForImage(CCamUnitTestPlugin& aOwner, CCamImageCapture& aCamImageCaptureImpl); |
|
392 void ConstructL(); |
|
393 |
|
394 private: |
|
395 CCamUnitTestPlugin& iOwner; |
|
396 CCamImageCapture& iCamImageCaptureImpl; |
|
397 CFbsBitmap* iBitmap; |
|
398 RCamBuffer2 iSnapshotbuffer; |
|
399 CCamera::CCameraSnapshot::TSnapshotParameters iSnapshotParameters; |
|
400 |
|
401 TInt iRefCount; |
|
402 }; |
|
403 |
|
404 // |
|
405 //snapshot factory for image |
|
406 class CSnapshotFactoryForImage : public CBase, public MImplementationFactory |
|
407 { |
|
408 public: |
|
409 static CSnapshotFactoryForImage* NewL(CCamImageCapture& aCamImageCaptureImpl, CCamSnapshotForImage* aSnapshotImpForImage); |
|
410 ~CSnapshotFactoryForImage(); |
|
411 |
|
412 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
413 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
414 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
415 void Release(); |
|
416 |
|
417 private: |
|
418 CSnapshotFactoryForImage(); |
|
419 void ConstructL(CCamImageCapture& aCamImageCaptureImpl, CCamSnapshotForImage* aSnapshotImpForImage); |
|
420 |
|
421 private: |
|
422 CCamSnapshotForImage* iSnapshotImpForImage; |
|
423 mutable TBool iIsSnapshotImpPassed; |
|
424 }; |
|
425 |
|
426 // |
|
427 //snapshot impl for video |
|
428 class CCamSnapshotForVideo : public CBase, public MCameraSnapshot, public MCameraSnapshot2 |
|
429 { |
|
430 public: |
|
431 static CCamSnapshotForVideo* NewL(CCamUnitTestPlugin& aOwner, CCamVideoCaptureControl& aCamVideoCaptureControlImpl); |
|
432 ~CCamSnapshotForVideo(); |
|
433 |
|
434 TUint32 SupportedFormats(); |
|
435 void PrepareSnapshotL(CCamera::TFormat aFormat, const TPoint& aPosition, const TSize& aSize, const TRgb& aBgColor, TBool aMaintainAspectRatio); |
|
436 void PrepareSnapshotL(CCamera::TFormat aFormat, const TSize& aSize, TBool aMaintainAspectRatio); |
|
437 |
|
438 void SetBgColorL(const TRgb& aBgColor); |
|
439 void SetPositionL(const TPoint& aPosition); |
|
440 |
|
441 TBool IsSnapshotActive() const; |
|
442 void StartSnapshot(); |
|
443 void StopSnapshot(); |
|
444 MCameraBuffer& SnapshotDataL(RArray<TInt>& aFrameIndexOrder); |
|
445 |
|
446 void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const; |
|
447 void PrepareSnapshotL(const CCamera::CCameraSnapshot::TSnapshotParameters& aSnapshotParameters); |
|
448 void GetSnapshotParametersL(CCamera::CCameraSnapshot::TSnapshotParameters& aSnapshotParameters); |
|
449 void SetSnapshotParametersL(const CCamera::CCameraSnapshot::TSnapshotParameters& aSnapshotParameters); |
|
450 void GetSnapshotStatusL(CCamera::CCameraSnapshot::TSnapshotState& aSnapshotState) const; |
|
451 void SelectSnapshotVideoFramesL(CCamera::CCameraSnapshot::TSnapshotVideoFrames aSnapshotVideoFrames); |
|
452 void EnableSnapshot(); |
|
453 void DisableSnapshot(); |
|
454 void SetClientViewFinderId(TInt aClientViewFinderId); |
|
455 |
|
456 void Release(); |
|
457 |
|
458 inline CCamVideoCaptureControl& CamVideoCaptureControlImpl() {return iCamVideoCaptureControlImpl;} |
|
459 |
|
460 private: |
|
461 CCamSnapshotForVideo(CCamUnitTestPlugin& aOwner, CCamVideoCaptureControl& aCamVideoCaptureControlImpl); |
|
462 void ConstructL(); |
|
463 |
|
464 private: |
|
465 CCamUnitTestPlugin& iOwner; |
|
466 CCamVideoCaptureControl& iCamVideoCaptureControlImpl; |
|
467 CFbsBitmap* iBitmap; |
|
468 RCamBuffer2 iSnapshotbuffer; |
|
469 CCamera::CCameraSnapshot::TSnapshotParameters iSnapshotParameters; |
|
470 |
|
471 TInt iRefCount; |
|
472 }; |
|
473 |
|
474 // |
|
475 //snapshot factory for video |
|
476 class CSnapshotFactoryForVideo : public CBase, public MImplementationFactory |
|
477 { |
|
478 public: |
|
479 static CSnapshotFactoryForVideo* NewL(CCamVideoCaptureControl& aCamVideoCaptureControlImpl, CCamSnapshotForVideo* aSnapshotImpForVideo); |
|
480 ~CSnapshotFactoryForVideo(); |
|
481 |
|
482 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
483 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
484 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
485 void Release(); |
|
486 |
|
487 private: |
|
488 CSnapshotFactoryForVideo(); |
|
489 void ConstructL(CCamVideoCaptureControl& aCamVideoCaptureControlImpl, CCamSnapshotForVideo* aSnapshotImpForVideo); |
|
490 |
|
491 private: |
|
492 CCamSnapshotForVideo* iSnapshotImpForVideo; |
|
493 mutable TBool iIsSnapshotImpPassed; |
|
494 }; |
|
495 |
|
496 // |
|
497 // V2 buffer for histogram: MHistogramV2Buffer |
|
498 class RCamHistogramV2Buffer : public MHistogramV2Buffer |
|
499 { |
|
500 |
|
501 public: |
|
502 RCamHistogramV2Buffer(): iAvailable(ETrue) {} |
|
503 CCamera::CCameraV2Histogram::THistogramType Type() {return CCamera::CCameraV2Histogram::EHistNone;} |
|
504 TInt ElementSize() {return -5;} |
|
505 TInt NumOfElements() {return -5;} |
|
506 TDesC8* DataL() {User::Leave(KErrNotSupported); return NULL;} |
|
507 RChunk& ChunkL() {User::Leave(KErrNotSupported); return iChunk;} |
|
508 TInt ChunkOffsetL() {User::Leave(KErrNotSupported); return -5;} |
|
509 void Release() {iAvailable = EFalse;} |
|
510 |
|
511 public: |
|
512 |
|
513 TBool iAvailable; |
|
514 RChunk iChunk; |
|
515 }; |
|
516 |
|
517 // |
|
518 //histogram impl for video |
|
519 class CHistogramImpForVideo : public CBase, public MCameraV2Histogram |
|
520 { |
|
521 |
|
522 public: |
|
523 static CHistogramImpForVideo* NewL(CCamUnitTestPlugin& aOwner, CCamVideoCaptureControl& aCamVideoCaptureControlImpl); |
|
524 ~CHistogramImpForVideo(); |
|
525 |
|
526 void Release(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
527 void SetHistogramHandle(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
528 void GetSupportedHistogramsL(TUint& aSupportedHistogramType) const; |
|
529 void GetDirectHistogramSupportInfoL(TBool& aIsDirectHistogramSupported) const; |
|
530 void PrepareClientHistogramL(CCamera::CCameraV2Histogram::THistogramType aType); |
|
531 void PrepareDirectHistogramL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
532 void UpdateDirectHistogramPropertiesL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
533 void GetDirectHistogramPropertiesL(CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters) const; |
|
534 void StartHistogram(); |
|
535 void StopHistogram(); |
|
536 void GetHistogramStateL(TBool& aIsHistogramActive) const; |
|
537 |
|
538 inline CCamVideoCaptureControl& CamVideoCaptureControlImpl() {return iCamVideoCaptureControlImpl;} |
|
539 |
|
540 private: |
|
541 CHistogramImpForVideo(CCamUnitTestPlugin& aOwner, CCamVideoCaptureControl& aCamVideoCaptureControlImpl); |
|
542 |
|
543 private: |
|
544 CCamUnitTestPlugin& iOwner; |
|
545 CCamVideoCaptureControl& iCamVideoCaptureControlImpl; |
|
546 }; |
|
547 |
|
548 // |
|
549 //histogram factory for video |
|
550 class CHistogramFactoryForVideo : public CBase, public MImplementationFactory |
|
551 { |
|
552 public: |
|
553 static CHistogramFactoryForVideo* NewL(CCamVideoCaptureControl& aCamVideoCaptureControlImpl); |
|
554 ~CHistogramFactoryForVideo(); |
|
555 |
|
556 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
557 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
558 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
559 void Release(); |
|
560 |
|
561 private: |
|
562 CHistogramFactoryForVideo(); |
|
563 void ConstructL(CCamVideoCaptureControl& aCamVideoCaptureControlImpl); |
|
564 |
|
565 private: |
|
566 CHistogramImpForVideo* iHistogramImpForVideo; |
|
567 mutable TBool iIsHistogramImpPassed; |
|
568 }; |
|
569 |
|
570 // |
|
571 //histogram impl for image |
|
572 class CHistogramImpForImage : public CBase, public MCameraV2Histogram |
|
573 { |
|
574 |
|
575 public: |
|
576 static CHistogramImpForImage* NewL(CCamUnitTestPlugin& aOwner, CCamImageCapture& aCamImageCaptureImpl); |
|
577 ~CHistogramImpForImage(); |
|
578 |
|
579 void Release(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
580 void SetHistogramHandle(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
581 void GetSupportedHistogramsL(TUint& aSupportedHistogramType) const; |
|
582 void GetDirectHistogramSupportInfoL(TBool& aIsDirectHistogramSupported) const; |
|
583 void PrepareClientHistogramL(CCamera::CCameraV2Histogram::THistogramType aType); |
|
584 void PrepareDirectHistogramL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
585 void UpdateDirectHistogramPropertiesL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
586 void GetDirectHistogramPropertiesL(CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters) const; |
|
587 void StartHistogram(); |
|
588 void StopHistogram(); |
|
589 void GetHistogramStateL(TBool& aIsHistogramActive) const; |
|
590 |
|
591 inline CCamImageCapture& CamImageCaptureImpl() {return iCamImageCaptureImpl;} |
|
592 inline CCamera::CCameraImageCapture& CameraImageCapture() {return *(CamImageCaptureImpl().CameraImageCapture());} |
|
593 |
|
594 private: |
|
595 CHistogramImpForImage(CCamUnitTestPlugin& aOwner, CCamImageCapture& aCamImageCaptureImpl); |
|
596 |
|
597 private: |
|
598 CCamUnitTestPlugin& iOwner; |
|
599 CCamImageCapture& iCamImageCaptureImpl; |
|
600 CCamera::CCameraV2Histogram* iHistogramHandle; |
|
601 }; |
|
602 |
|
603 // |
|
604 //histogram factory for image |
|
605 class CHistogramFactoryForImage : public CBase, public MImplementationFactory |
|
606 { |
|
607 public: |
|
608 static CHistogramFactoryForImage* NewL(CCamImageCapture& aCamImageCaptureImpl); |
|
609 ~CHistogramFactoryForImage(); |
|
610 |
|
611 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
612 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
613 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
614 void Release(); |
|
615 |
|
616 private: |
|
617 CHistogramFactoryForImage(); |
|
618 void ConstructL(CCamImageCapture& aCamImageCaptureImpl); |
|
619 |
|
620 private: |
|
621 CHistogramImpForImage* iHistogramImpForImage; |
|
622 mutable TBool iIsHistogramImpPassed; |
|
623 }; |
|
624 |
|
625 // |
|
626 //histogram impl for DirectViewFinder |
|
627 class CHistogramImpForDirectViewFinder : public CBase, public MCameraV2Histogram |
|
628 { |
|
629 |
|
630 public: |
|
631 static CHistogramImpForDirectViewFinder* NewL(CCamUnitTestPlugin& aOwner, CCamV2DirectViewFinder& aCamV2DirectViewFinderImpl); |
|
632 ~CHistogramImpForDirectViewFinder(); |
|
633 |
|
634 void Release(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
635 void SetHistogramHandle(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
636 void GetSupportedHistogramsL(TUint& aSupportedHistogramType) const; |
|
637 void GetDirectHistogramSupportInfoL(TBool& aIsDirectHistogramSupported) const; |
|
638 void PrepareClientHistogramL(CCamera::CCameraV2Histogram::THistogramType aType); |
|
639 void PrepareDirectHistogramL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
640 void UpdateDirectHistogramPropertiesL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
641 void GetDirectHistogramPropertiesL(CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters) const; |
|
642 void StartHistogram(); |
|
643 void StopHistogram(); |
|
644 void GetHistogramStateL(TBool& aIsHistogramActive) const; |
|
645 |
|
646 inline CCamV2DirectViewFinder& DirectViewFinderImpl() {return iCamV2DirectViewFinderImpl;} |
|
647 |
|
648 private: |
|
649 CHistogramImpForDirectViewFinder(CCamUnitTestPlugin& aOwner, CCamV2DirectViewFinder& aCamV2DirectViewFinderImpl); |
|
650 |
|
651 private: |
|
652 CCamUnitTestPlugin& iOwner; |
|
653 CCamV2DirectViewFinder& iCamV2DirectViewFinderImpl; |
|
654 CCamera::CCameraV2Histogram* iHistogramHandle; |
|
655 }; |
|
656 |
|
657 // |
|
658 //histogram factory for DirectViewFinder |
|
659 class CHistogramFactoryForDirectViewFinder : public CBase, public MImplementationFactory |
|
660 { |
|
661 public: |
|
662 static CHistogramFactoryForDirectViewFinder* NewL(CCamV2DirectViewFinder& aCamV2DirectViewFinderImpl); |
|
663 ~CHistogramFactoryForDirectViewFinder(); |
|
664 |
|
665 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
666 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
667 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
668 void Release(); |
|
669 |
|
670 private: |
|
671 CHistogramFactoryForDirectViewFinder(); |
|
672 void ConstructL(CCamV2DirectViewFinder& aCamV2DirectViewFinderImpl); |
|
673 |
|
674 private: |
|
675 CHistogramImpForDirectViewFinder* iHistogramImpForDirectViewFinder; |
|
676 mutable TBool iIsHistogramImpPassed; |
|
677 }; |
|
678 |
|
679 // |
|
680 //histogram impl for ClientViewFinder |
|
681 class CHistogramImpForClientViewFinder : public CBase, public MCameraV2Histogram |
|
682 { |
|
683 |
|
684 public: |
|
685 static CHistogramImpForClientViewFinder* NewL(CCamUnitTestPlugin& aOwner, CCamClientViewFinder& aCamClientViewFinderImpl); |
|
686 ~CHistogramImpForClientViewFinder(); |
|
687 |
|
688 void Release(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
689 void SetHistogramHandle(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
690 void GetSupportedHistogramsL(TUint& aSupportedHistogramType) const; |
|
691 void GetDirectHistogramSupportInfoL(TBool& aIsDirectHistogramSupported) const; |
|
692 void PrepareClientHistogramL(CCamera::CCameraV2Histogram::THistogramType aType); |
|
693 void PrepareDirectHistogramL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
694 void UpdateDirectHistogramPropertiesL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
695 void GetDirectHistogramPropertiesL(CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters) const; |
|
696 void StartHistogram(); |
|
697 void StopHistogram(); |
|
698 void GetHistogramStateL(TBool& aIsHistogramActive) const; |
|
699 |
|
700 inline CCamClientViewFinder& ClientViewFinderImpl() {return iCamClientViewFinderImpl;} |
|
701 inline CCamera::CCameraClientViewFinder& ClientViewFinderHandle() {return ClientViewFinderImpl().ClientViewFinderHandle();} |
|
702 |
|
703 private: |
|
704 CHistogramImpForClientViewFinder(CCamUnitTestPlugin& aOwner, CCamClientViewFinder& aCamClientViewFinderImpl); |
|
705 |
|
706 private: |
|
707 CCamUnitTestPlugin& iOwner; |
|
708 CCamClientViewFinder& iCamClientViewFinderImpl; |
|
709 CCamera::CCameraV2Histogram* iHistogramHandle; |
|
710 }; |
|
711 |
|
712 // |
|
713 //histogram factory for ClientViewFinder |
|
714 class CHistogramFactoryForClientViewFinder : public CBase, public MImplementationFactory |
|
715 { |
|
716 public: |
|
717 static CHistogramFactoryForClientViewFinder* NewL(CCamClientViewFinder& aCamClientViewFinderImpl); |
|
718 ~CHistogramFactoryForClientViewFinder(); |
|
719 |
|
720 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
721 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
722 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
723 void Release(); |
|
724 |
|
725 private: |
|
726 CHistogramFactoryForClientViewFinder(); |
|
727 void ConstructL(CCamClientViewFinder& aCamClientViewFinderImpl); |
|
728 |
|
729 private: |
|
730 CHistogramImpForClientViewFinder* iHistogramImpForClientViewFinder; |
|
731 mutable TBool iIsHistogramImpPassed; |
|
732 }; |
|
733 |
|
734 // |
|
735 //histogram impl for image snapshot |
|
736 class CHistogramImpForImageSnapshot : public CBase, public MCameraV2Histogram |
|
737 { |
|
738 |
|
739 public: |
|
740 static CHistogramImpForImageSnapshot* NewL(CCamUnitTestPlugin& aOwner, CCamSnapshotForImage& aCamSnapshotForImageImpl); |
|
741 ~CHistogramImpForImageSnapshot(); |
|
742 |
|
743 void Release(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
744 void SetHistogramHandle(CCamera::CCameraV2Histogram* aHistogramHandle); |
|
745 void GetSupportedHistogramsL(TUint& aSupportedHistogramType) const; |
|
746 void GetDirectHistogramSupportInfoL(TBool& aIsDirectHistogramSupported) const; |
|
747 void PrepareClientHistogramL(CCamera::CCameraV2Histogram::THistogramType aType); |
|
748 void PrepareDirectHistogramL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
749 void UpdateDirectHistogramPropertiesL(const CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters); |
|
750 void GetDirectHistogramPropertiesL(CCamera::CCameraV2Histogram::TDirectHistogramParameters& aDirectHistogramParameters) const; |
|
751 void StartHistogram(); |
|
752 void StopHistogram(); |
|
753 void GetHistogramStateL(TBool& aIsHistogramActive) const; |
|
754 |
|
755 inline CCamSnapshotForImage& CamSnapshotForImageImpl() {return iCamSnapshotForImageImpl;} |
|
756 inline CCamera::CCameraV2Histogram* HistogramHandle() {return iHistogramHandle;} |
|
757 inline CCamImageCapture& CamImageCaptureImpl() {return CamSnapshotForImageImpl().CamImageCaptureImpl();} |
|
758 inline CCamera::CCameraImageCapture& CameraImageCapture() {return *(CamImageCaptureImpl().CameraImageCapture());} |
|
759 |
|
760 private: |
|
761 CHistogramImpForImageSnapshot(CCamUnitTestPlugin& aOwner, CCamSnapshotForImage& aCamSnapshotForImageImpl); |
|
762 |
|
763 private: |
|
764 CCamUnitTestPlugin& iOwner; |
|
765 CCamSnapshotForImage& iCamSnapshotForImageImpl; |
|
766 CCamera::CCameraV2Histogram* iHistogramHandle; |
|
767 }; |
|
768 |
|
769 // |
|
770 //histogram factory for image snapshot |
|
771 class CHistogramFactoryForImageSnapshot : public CBase, public MImplementationFactory |
|
772 { |
|
773 public: |
|
774 static CHistogramFactoryForImageSnapshot* NewL(CCamSnapshotForImage& aCamSnapshotForImageImpl); |
|
775 ~CHistogramFactoryForImageSnapshot(); |
|
776 |
|
777 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
778 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
779 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
780 void Release(); |
|
781 |
|
782 private: |
|
783 CHistogramFactoryForImageSnapshot(); |
|
784 void ConstructL(CCamSnapshotForImage& aCamSnapshotForImageImpl); |
|
785 |
|
786 private: |
|
787 CHistogramImpForImageSnapshot* iHistogramImpForImageSnapshot; |
|
788 mutable TBool iIsHistogramImpPassed; |
|
789 }; |
|
790 |
|
791 // |
|
792 //img proc impl for still images. |
|
793 class CCamImgProcImpForImage : public CBase, public MCameraImageProcessing |
|
794 { |
|
795 public: |
|
796 static CCamImgProcImpForImage* NewL(CCamUnitTestPlugin& aOwner); |
|
797 ~CCamImgProcImpForImage(); |
|
798 |
|
799 void Release(); |
|
800 void GetSupportedTransformationsL(RArray<TUid>& aTransformations) const; |
|
801 void GetActiveTransformationsL(RArray<TUid>& aTransformations) const; |
|
802 void GetTransformationSupportedValuesL(TUid aTransformation, RArray<TInt>& aValues, TValueInfo& aInfo) const; |
|
803 TInt TransformationValue(TUid aTransformation) const; |
|
804 TInt GetTransformationValue(TUid aTransformation, TInt& aTransformationValue) const; |
|
805 void SetTransformationValue(TUid aTransformation, TInt aValue); |
|
806 void GetActiveTransformSequenceL(RArray<TUid>& aTransformSequence) const; |
|
807 void SetActiveTransformSequenceL(RArray<TUid>& aTransformSequence); |
|
808 void SetSourceRect(const TRect& aRect); |
|
809 void GetSourceRect(TRect& aRect) const; |
|
810 |
|
811 private: |
|
812 CCamImgProcImpForImage(CCamUnitTestPlugin& aOwner); |
|
813 |
|
814 private: |
|
815 CCamUnitTestPlugin& iOwner; |
|
816 }; |
|
817 |
|
818 // |
|
819 //img proc factory for still images. |
|
820 class CImgProcFactoryForImage : public CBase, public MImplementationFactory |
|
821 { |
|
822 public: |
|
823 static CImgProcFactoryForImage* NewL(CCamImageCapture& aCamImageCaptureImpl, CCamImgProcImpForImage* aCamImgProcImpForImage); |
|
824 ~CImgProcFactoryForImage(); |
|
825 |
|
826 TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const; |
|
827 TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const; |
|
828 TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const; |
|
829 void Release(); |
|
830 |
|
831 private: |
|
832 CImgProcFactoryForImage(); |
|
833 void ConstructL(CCamImageCapture& aCamImageCaptureImpl, CCamImgProcImpForImage* aCamImgProcImpForImage); |
|
834 |
|
835 private: |
|
836 CCamImgProcImpForImage* iCamImgProcImpForImage; |
|
837 mutable TBool iIsImgProcImpPassed; |
|
838 }; |
|
839 |
|
840 #endif // EXTENDEDFUNCTIONALITY_H |