Original Symbian headers
Selected EUSER, Window Server, networking, graphics and device declarations
Loading...
Searching...
No Matches
ecam.h
Go to the documentation of this file.
1// Copyright (c) 2002-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//
15
21#ifndef ECAM_H
22#define ECAM_H
23
24#include <e32base.h>
25#include <ecamuids.hrh>
26#include <e32property.h>
27
28#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
29#include <ecamdef.h>
30#endif
31
32class MFrameBuffer;
33class RWsSession;
34class CWsScreenDevice;
35class RWindowBase;
36class CFbsBitmap;
37
38typedef TInt TPostCaptureControlId;
39
60class TCameraInfo
61 {
62public:
66 {
78 };
79
82 enum TOptions
83 {
128 TUint32 iFlashModesSupported;
133
149
155 TInt iMinZoom;
161 TInt iMaxZoom;
168 TInt iMaxDigitalZoom;
169
174 TReal32 iMinZoomFactor;
179 TReal32 iMaxZoomFactor;
186 TReal32 iMaxDigitalZoomFactor;
187
197
226 };
227
242class MCameraObserver
243 {
244public:
252 virtual void ReserveComplete(TInt aError)=0;
253
262 virtual void PowerOnComplete(TInt aError)=0;
263
271 virtual void ViewFinderFrameReady(CFbsBitmap& aFrame)=0;
272
286 virtual void ImageReady(CFbsBitmap* aBitmap,HBufC8* aData,TInt aError)=0;
287
299 virtual void FrameBufferReady(MFrameBuffer* aFrameBuffer,TInt aError)=0;
300 };
301
302
318class MCameraBuffer
319 {
320public:
329 virtual TInt NumFrames()=0;
342 virtual TDesC8* DataL(TInt aFrameIndex)=0;
343
355 virtual CFbsBitmap& BitmapL(TInt aFrameIndex)=0;
356
370 virtual RChunk& ChunkL()=0;
371
385 virtual TInt ChunkOffsetL(TInt aFrameIndex)=0;
386
398 virtual TInt FrameSize(TInt aFrameIndex)=0;
399
405 virtual void Release()=0;
406public:
407
414
420 };
421
425static const TUid KUidECamEventReserveComplete = {0x101F7D3B};
426
430static const TUid KUidECamEventPowerOnComplete = {0x101F7D3C};
431
436static const TUid KUidECamEventCameraNoLongerReserved = {0x101F7D3D};
437
448static const TUid KUidECamEventNewReserveComplete = {KUidECamEventNewReserveCompleteUidValue};
449
460class TECAMEvent
461 {
462public:
463
473 IMPORT_C TECAMEvent(TUid aEventType, TInt aErrorCode);
474
480 IMPORT_C TECAMEvent();
481
490 TInt iErrorCode;
491 };
492
497static const TUid KUidECamEventClass2 = {KUidECamEventClass2UidValue};
498
505static const TUid KUidECamEventCIPSetColorSwapEntry = {KUidECamEventCIPSetColorSwapEntryUidValue};
506static const TUid KUidECamEvent2CIPSetColorSwapEntry = {KUidECamEventCIPSetColorSwapEntryUidValue};
507
514static const TUid KUidECamEventCIPRemoveColorSwapEntry = {KUidECamEventCIPRemoveColorSwapEntryUidValue};
515static const TUid KUidECamEvent2CIPRemoveColorSwapEntry = {KUidECamEventCIPRemoveColorSwapEntryUidValue};
516
523static const TUid KUidECamEventCIPSetColorAccentEntry = {KUidECamEventCIPSetColorAccentEntryUidValue};
524static const TUid KUidECamEvent2CIPSetColorAccentEntry = {KUidECamEventCIPSetColorAccentEntryUidValue};
525
532static const TUid KUidECamEventCIPRemoveColorAccentEntry = {KUidECamEventCIPRemoveColorAccentEntryUidValue};
533static const TUid KUidECamEvent2CIPRemoveColorAccentEntry = {KUidECamEventCIPRemoveColorAccentEntryUidValue};
534
547static const TUid KUidECamEventCameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue};
548static const TUid KUidECamEvent2CameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue};
549
556class TECAMEvent2 : public TECAMEvent
557 {
558public:
559
560 IMPORT_C static TBool IsEventEncapsulationValid(const TECAMEvent& aECAMEvent);
561
562 IMPORT_C TECAMEvent2(TUid aEventType, TInt aErrorCode, TInt aParam);
564 IMPORT_C const TUid& EventClassUsed() const;
565
566private:
570 TUid iEventClassUsed;
580 TInt iReserved2;
581
582
583public:
590 TInt iParam1;
591
597 TInt iParam;
598 };
599
612 {
613public:
632 virtual void HandleEvent(const TECAMEvent& aEvent)=0;
633
644 virtual void ViewFinderReady(MCameraBuffer& aCameraBuffer,TInt aError)=0;
645
658 virtual void ImageBufferReady(MCameraBuffer& aCameraBuffer,TInt aError)=0;
659
671 virtual void VideoBufferReady(MCameraBuffer& aCameraBuffer,TInt aError)=0;
672 };
673
674
685class CCamera : public CBase
686
687 {
688
689 friend class CCameraPlugin;
690
691public:
692 class CCameraPresets;
693 class CCameraAdvancedSettings;
694 class CCameraImageProcessing;
695 class CCameraHistogram;
696 class CCameraV2Histogram;
697 class CCameraOverlay;
698 class CCameraSnapshot;
699 class CCameraDirectViewFinder;
700 class CCameraV2DirectViewFinder;
701 class CCameraClientViewFinder;
702 class CCameraPreImageCaptureControl;
703 class CCameraImageCapture;
704 class CCameraPostImageCaptureControl;
705 class CCameraVideoCaptureControl;
706 class CCameraDirectSnapshot;
707 class CCameraContinuousZoom;
708
709public:
714 enum TFormat
715 {
717 EFormatMonochrome = 0x0001,
720 EFormat16bitRGB444 = 0x0002,
728 EFormatJpeg = 0x0010,
730 EFormatExif = 0x0020,
738 EFormatUserDefined = 0x0200,
742 EFormatYUV420Planar = 0x0800,
744 EFormatYUV422 = 0x1000,
746 EFormatYUV422Reversed = 0x2000,
748 EFormatYUV444 = 0x4000,
752 EFormatFbsBitmapColor16MU = 0x00010000,
757 EFormatMJPEG = 0x00020000,
758
764 EFormatEncodedH264 = 0x00040000,
765
771 EFormatYUV222ReversedV2 = 0x00080000
772 };
773
775 enum TContrast
776 {
778 EContrastAuto = KMinTInt
779 };
781 enum TBrightness
782 {
784 EBrightnessAuto = KMinTInt
785 };
788 {
790 EFlashNone = 0x0000,
792 EFlashAuto = 0x0001,
794 EFlashForced = 0x0002,
796 EFlashFillIn = 0x0004,
798 EFlashRedEyeReduce = 0x0008,
804 EFlashManual = 0x0040,
808 EFlashVideoLight = 0x0080
809 };
812 {
821 EExposureCenter = 0x0004,
823 EExposureSport = 0x0008,
825 EExposureVeryLong = 0x0010,
827 EExposureSnow = 0x0020,
829 EExposureBeach = 0x0040,
831 EExposureProgram = 0x0080,
843 };
847 {
849 EWBAuto = 0x0000,
851 EWBDaylight = 0x0001,
853 EWBCloudy = 0x0002,
855 EWBTungsten = 0x0004,
857 EWBFluorescent = 0x0008,
859 EWBFlash = 0x0010,
861 EWBSnow = 0x0020,
863 EWBBeach = 0x0040,
865 EWBManual = 0x0080,
867 EWBShade = 0x0100,
874 EWBAutoSkin = 0x0200,
881 EWBHorizon = 0x0400,
888 EWBDaylightUnderWater = 0x0800
889 };
890
891public:
897 IMPORT_C static TInt CamerasAvailable();
898
934 IMPORT_C static CCamera* NewL(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority);
935
969 IMPORT_C static CCamera* New2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority);
970
997 IMPORT_C static CCamera* NewL(MCameraObserver& aObserver,TInt aCameraIndex);
998
1025 IMPORT_C static CCamera* NewDuplicateL(MCameraObserver2& aObserver,TInt aCameraHandle);
1026
1051 IMPORT_C static CCamera* NewDuplicate2L(MCameraObserver2& aObserver,TInt aCameraHandle);
1052
1075 IMPORT_C static CCamera* NewDuplicateL(MCameraObserver& aObserver,TInt aCameraHandle);
1083 virtual void CameraInfo(TCameraInfo& aInfo) const=0;
1084
1091 virtual void Reserve()=0;
1092
1096 virtual void Release()=0;
1097
1105 virtual void PowerOn()=0;
1106
1110 virtual void PowerOff()=0;
1111
1117 virtual TInt Handle()=0;
1129 virtual void SetZoomFactorL(TInt aZoomFactor = 0)=0;
1130
1136 virtual TInt ZoomFactor() const=0;
1148 virtual void SetDigitalZoomFactorL(TInt aDigitalZoomFactor = 0)=0;
1149
1155 virtual TInt DigitalZoomFactor() const=0;
1166 virtual void SetContrastL(TInt aContrast)=0;
1167
1173 virtual TInt Contrast() const=0;
1174
1186 virtual void SetBrightnessL(TInt aBrightness)=0;
1187
1193 virtual TInt Brightness() const=0;
1194
1205 virtual void SetFlashL(TFlash aFlash = EFlashNone)=0;
1206
1220 virtual TFlash Flash() const=0;
1221
1232 virtual void SetExposureL(TExposure aExposure = EExposureAuto)=0;
1233
1239 virtual TExposure Exposure() const=0;
1240
1252 virtual void SetWhiteBalanceL(TWhiteBalance aWhiteBalance = EWBAuto)=0;
1253
1269 virtual TWhiteBalance WhiteBalance() const=0;
1270
1297 virtual void StartViewFinderDirectL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWindow,TRect& aScreenRect)=0;
1298
1327 virtual void StartViewFinderDirectL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWindow,TRect& aScreenRect,TRect& aClipRect)=0;
1328
1342 virtual void StartViewFinderBitmapsL(TSize& aSize)=0;
1343
1364 virtual void StartViewFinderBitmapsL(TSize& aSize,TRect& aClipRect)=0;
1365
1384 virtual void StartViewFinderL(TFormat aImageFormat,TSize& aSize)=0;
1385
1409 virtual void StartViewFinderL(TFormat aImageFormat,TSize& aSize,TRect& aClipRect)=0;
1410
1420 virtual void StopViewFinder()=0;
1421
1434 virtual TBool ViewFinderActive() const=0;
1435
1453 virtual void SetViewFinderMirrorL(TBool aMirror)=0;
1454
1466 virtual TBool ViewFinderMirror() const=0;
1467
1498 virtual void PrepareImageCaptureL(TFormat aImageFormat,TInt aSizeIndex)=0;
1499
1533 virtual void PrepareImageCaptureL(TFormat aImageFormat,TInt aSizeIndex,const TRect& aClipRect)=0;
1534
1543 virtual void CaptureImage()=0;
1544
1550 virtual void CancelCaptureImage()=0;
1551
1566 virtual void EnumerateCaptureSizes(TSize& aSize,TInt aSizeIndex,TFormat aFormat) const=0;
1567
1601 virtual void PrepareVideoCaptureL(TFormat aFormat,TInt aSizeIndex,TInt aRateIndex,TInt aBuffersToUse,TInt aFramesPerBuffer)=0;
1602
1639 virtual void PrepareVideoCaptureL(TFormat aFormat,TInt aSizeIndex,TInt aRateIndex,TInt aBuffersToUse,TInt aFramesPerBuffer,const TRect& aClipRect)=0;
1640
1647 virtual void StartVideoCapture()=0;
1648
1652 virtual void StopVideoCapture()=0;
1653
1659 virtual TBool VideoCaptureActive() const=0;
1660
1674 virtual void EnumerateVideoFrameSizes(TSize& aSize,TInt aSizeIndex,TFormat aFormat) const=0;
1675
1695 virtual void EnumerateVideoFrameRates(TReal32& aRate,TInt aRateIndex,TFormat aFormat,TInt aSizeIndex,TExposure aExposure = EExposureAuto) const=0;
1696
1703 virtual void GetFrameSize(TSize& aSize) const=0;
1704
1710 virtual TReal32 FrameRate() const=0;
1711
1717 virtual TInt BuffersInUse() const=0;
1718
1724 virtual TInt FramesPerBuffer() const=0;
1725
1736 virtual void SetJpegQuality(TInt aQuality)=0;
1747 virtual TInt JpegQuality() const=0;
1748
1758 virtual TAny* CustomInterface(TUid aInterface)=0;
1759
1764 IMPORT_C TInt CameraVersion();
1765
1766private:
1767
1774 IMPORT_C CCamera();
1775 };
1776
1786 {
1787public:
1798 virtual TDesC8* DataL(TInt aIndex)=0;
1799
1811 virtual CFbsBitmap* FrameL(TInt aIndex)=0;
1812
1820 virtual void Release()=0;
1821
1822public:
1823
1830
1836 };
1837
1838#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1839#include <ecamconst.h>
1840#endif
1842class MReserveObserver;
1843
1844
1852class CCameraStatusWatch : public CActive
1853 {
1854public:
1855 IMPORT_C ~CCameraStatusWatch();
1856 static CCameraStatusWatch* NewL(MReserveObserver& aReserveObserver, TInt aCameraIndex, TInt aSecureId);
1857private:
1858
1859 CCameraStatusWatch(MReserveObserver& aReserveObserver, TInt aCameraIndex, TInt aSecureId);
1860 void ConstructL();
1861 void RunL();
1862 void DoCancel();
1863
1864private:
1865 RProperty iProperty;
1866 MReserveObserver& iReserveObserver;
1867 TInt iCameraIndex;
1868 TInt iSecureId;
1869 };
1870
1871
1872#endif // ECAM_H
The core class of the active object abstraction.
Definition e32base.h:1638
Container Base Class.
Definition e32base.h:60
An active object class implemented by Symbian and used to subscribe for the updates in the Properties...
Definition ecam.h:1883
static CCameraStatusWatch * NewL(MReserveObserver &aReserveObserver, TInt aCameraIndex, TInt aSecureId)
Used to create the CCameraStatusWatch class object.
IMPORT_C ~CCameraStatusWatch()
Destructor.
Base class for camera devices.
Definition ecam.h:696
static IMPORT_C CCamera * NewDuplicate2L(MCameraObserver2 &aObserver, TInt aCameraHandle)
TWhiteBalance
Specifies how the white balance is set.
Definition ecam.h:862
@ EWBShade
Shade.
Definition ecam.h:882
@ EWBSnow
High contrast daylight primarily snowy.
Definition ecam.h:876
@ EWBTungsten
Tungsten filament lighting.
Definition ecam.h:870
@ EWBManual
User configurable mode.
Definition ecam.h:880
@ EWBAutoSkin
auto skin
Definition ecam.h:889
@ EWBDaylight
Normal daylight.
Definition ecam.h:866
@ EWBFluorescent
Fluorescent tube lighting.
Definition ecam.h:872
@ EWBCloudy
Overcast daylight.
Definition ecam.h:868
@ EWBFlash
Flash lighting.
Definition ecam.h:874
@ EWBHorizon
horizon
Definition ecam.h:896
@ EWBBeach
High contrast daylight primarily near the sea.
Definition ecam.h:878
@ EWBDaylightUnderWater
Daylight Under Water.
Definition ecam.h:903
@ EWBAuto
Set white balance automatically.
Definition ecam.h:864
virtual TInt JpegQuality() const =0
Gets the currently set jpeg quality value.
virtual void PrepareImageCaptureL(TFormat aImageFormat, TInt aSizeIndex)=0
Performs setup and allocation of memory.
virtual void SetJpegQuality(TInt aQuality)=0
Sets the quality value to use if jpeg is a supported image for video format.
virtual void SetExposureL(TExposure aExposure=EExposureAuto)=0
Sets the exposure adjustment of the device.
virtual TReal32 FrameRate() const =0
Gets the frame rate currently in use.
virtual void CameraInfo(TCameraInfo &aInfo) const =0
Gets information about the camera device.
friend class CCameraPlugin
Definition ecam.h:698
virtual void SetZoomFactorL(TInt aZoomFactor=0)=0
Sets the zoom factor.
TContrast
Specifies whether contrast is set automatically.
Definition ecam.h:791
@ EContrastAuto
Sets the contrast automatically.
Definition ecam.h:793
virtual void PowerOn()=0
Asynchronous method to switch on camera power.
virtual void StartViewFinderL(TFormat aImageFormat, TSize &aSize)=0
Starts transfer of view finder data.
virtual void PrepareVideoCaptureL(TFormat aFormat, TInt aSizeIndex, TInt aRateIndex, TInt aBuffersToUse, TInt aFramesPerBuffer)=0
Prepares for video capture.
virtual TInt Brightness() const =0
Gets the currently set brightness adjustment value.
virtual void StopVideoCapture()=0
Stops video capture.
virtual void SetFlashL(TFlash aFlash=EFlashNone)=0
Sets the flash mode.
static IMPORT_C TInt CamerasAvailable()
Determines the number of cameras on the device.
virtual void SetWhiteBalanceL(TWhiteBalance aWhiteBalance=EWBAuto)=0
Sets the white balance adjustment of the device.
virtual void CancelCaptureImage()=0
Cancels the asynchronous still image capture.
static IMPORT_C CCamera * NewL(MCameraObserver2 &aObserver, TInt aCameraIndex, TInt aPriority)
virtual void EnumerateVideoFrameRates(TReal32 &aRate, TInt aRateIndex, TFormat aFormat, TInt aSizeIndex, TExposure aExposure=EExposureAuto) const =0
Enumerates through the available video frame rates, based on the specified rate index,...
virtual void StartViewFinderBitmapsL(TSize &aSize)=0
Starts transfer of view finder data.
IMPORT_C TInt CameraVersion()
TBrightness
Specifies whether brightness is set automatically.
Definition ecam.h:797
@ EBrightnessAuto
Sets the brightness automatically.
Definition ecam.h:799
virtual TBool ViewFinderActive() const =0
Queries whether the view finder is active.
virtual void SetContrastL(TInt aContrast)=0
Sets the contrast adjustment of the device.
virtual void EnumerateVideoFrameSizes(TSize &aSize, TInt aSizeIndex, TFormat aFormat) const =0
Enumerates through the available video frame sizes, based on the specified size index and format.
TFormat
Possible still image and video frame formats.
Definition ecam.h:724
@ EFormatYUV444
4:4:4 format, 8 bits per sample, Y00U00V00 Y01U01V01...
Definition ecam.h:757
@ EFormatMJPEG
Motion JPEG for video.
Definition ecam.h:768
@ EFormat16BitRGB565
Packed RGB triplets, 5 bits per pixel for red and blue and 6 bits for green, with red in the least si...
Definition ecam.h:732
@ EFormat16bitRGB444
Packed RGB triplets, 4 bits per pixel with red in the least significant bits and the 4 most significa...
Definition ecam.h:729
@ EFormat32BitRGB888
Packed RGB triplets, 8 bits per pixel with red in the least significant bits and the 8 most significa...
Definition ecam.h:735
@ EFormatFbsBitmapColor16MU
CFbsBitmap object with display mode EColor16MU.
Definition ecam.h:761
@ EFormatYUV420Interleaved
4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV.
Definition ecam.h:749
@ EFormatUserDefined
Implementation dependent.
Definition ecam.h:747
@ EFormatFbsBitmapColor4K
CFbsBitmap object with display mode EColor4K.
Definition ecam.h:741
@ EFormatMonochrome
8 bit greyscale values, 0=black, 255=white.
Definition ecam.h:726
@ EFormatFbsBitmapColor16M
CFbsBitmap object with display mode EColor16M.
Definition ecam.h:745
@ EFormatYUV420SemiPlanar
4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0...
Definition ecam.h:759
@ EFormatExif
EXIF JPEG.
Definition ecam.h:739
@ EFormatFbsBitmapColor64K
CFbsBitmap object with display mode EColor64K.
Definition ecam.h:743
@ EFormatYUV422Reversed
4:2:2 format, 8 bits per sample, Y1VY0U.
Definition ecam.h:755
@ EFormatYUV222ReversedV2
Definition ecam.h:786
@ EFormatYUV420Planar
4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0...
Definition ecam.h:751
@ EFormatJpeg
JFIF JPEG.
Definition ecam.h:737
@ EFormatEncodedH264
Definition ecam.h:777
@ EFormatYUV422
4:2:2 format, 8 bits per sample, UY0VY1.
Definition ecam.h:753
virtual void Reserve()=0
Asynchronous function that performs any required initialisation and reserves the camera for exclusive...
TFlash
Specifies the type of flash.
Definition ecam.h:803
@ EFlashAuto
Flash will automatically fire when required.
Definition ecam.h:807
@ EFlashFillIn
Reduced flash for general lighting.
Definition ecam.h:811
@ EFlashForced
Flash will always fire.
Definition ecam.h:809
@ EFlashSlowRearSync
Flash at the moment when shutter closes.
Definition ecam.h:817
@ EFlashManual
User configurable setting.
Definition ecam.h:819
@ EFlashNone
No flash, always supported.
Definition ecam.h:805
@ EFlashRedEyeReduce
Red-eye reduction mode.
Definition ecam.h:813
@ EFlashVideoLight
Constant emission of light during video mode
Definition ecam.h:823
@ EFlashSlowFrontSync
Flash at the moment when shutter opens.
Definition ecam.h:815
virtual TInt Contrast() const =0
Gets the currently set contrast value.
virtual TInt DigitalZoomFactor() const =0
Gets the currently set digital zoom factor.
virtual void PowerOff()=0
Synchronous function for switching off camera power.
static IMPORT_C CCamera * NewDuplicateL(MCameraObserver2 &aObserver, TInt aCameraHandle)
static IMPORT_C CCamera * New2L(MCameraObserver2 &aObserver, TInt aCameraIndex, TInt aPriority)
virtual TAny * CustomInterface(TUid aInterface)=0
Gets a custom interface.
virtual void GetFrameSize(TSize &aSize) const =0
Gets the frame size currently in use.
virtual void EnumerateCaptureSizes(TSize &aSize, TInt aSizeIndex, TFormat aFormat) const =0
Enumerates through the available image capture sizes, based on the specified size index and format.
virtual void StartViewFinderDirectL(RWsSession &aWs, CWsScreenDevice &aScreenDevice, RWindowBase &aWindow, TRect &aScreenRect)=0
Starts transfer of view finder data to the given portion of the screen using direct screen access.
virtual TInt FramesPerBuffer() const =0
Gets the number of frames per buffer currently in use.
TExposure
Specifies the type of exposure.
Definition ecam.h:827
@ EExposureManual
User selectable exposure value setting.
Definition ecam.h:853
@ EExposureNight
Night-time setting for long exposures.
Definition ecam.h:832
@ EExposureSnow
Snow setting for daylight exposure.
Definition ecam.h:842
@ EExposureBeach
Beach setting for daylight exposure with reflective glare.
Definition ecam.h:844
@ EExposureSuperNight
Exposure night setting with colour removed to get rid of colour noise.
Definition ecam.h:855
@ EExposureSport
Sport setting for very short exposures.
Definition ecam.h:838
@ EExposureProgram
Programmed exposure setting.
Definition ecam.h:846
@ EExposureBacklight
Backlight setting for bright backgrounds.
Definition ecam.h:834
@ EExposureVeryLong
Generalised setting for very long exposures.
Definition ecam.h:840
@ EExposureAuto
Set exposure automatically.
Definition ecam.h:830
@ EExposureInfra
Exposure for infra-red sensor on the camera.
Definition ecam.h:857
@ EExposureShutterPriority
Shutter speed setting is given priority.
Definition ecam.h:851
@ EExposureAperturePriority
Aperture setting is given priority.
Definition ecam.h:848
@ EExposureCenter
Centered mode for ignoring surroundings.
Definition ecam.h:836
virtual void StopViewFinder()=0
Stops transfer of view finder data to the screen.
virtual TWhiteBalance WhiteBalance() const =0
Gets the currently set white balance adjustment value.
virtual TInt BuffersInUse() const =0
Gets the number of buffers currently in use.
virtual void SetViewFinderMirrorL(TBool aMirror)=0
Sets whether view finder mirroring is on.
virtual TInt ZoomFactor() const =0
Gets the currently set zoom factor.
virtual TBool ViewFinderMirror() const =0
Gets whether view finder mirroring is active.
virtual void CaptureImage()=0
Asynchronously performs still image capture.
virtual void StartVideoCapture()=0
Starts capturing video.
virtual TBool VideoCaptureActive() const =0
Tests whether video capture is active.
virtual void Release()=0
De-initialises the camera, allowing it to be used by other clients.
virtual TInt Handle()=0
Gets the device-unique handle of this camera object.
virtual TFlash Flash() const =0
Gets the currently set flash mode.
virtual void SetDigitalZoomFactorL(TInt aDigitalZoomFactor=0)=0
Sets the digital zoom factor.
virtual void SetBrightnessL(TInt aBrightness)=0
Sets the brightness adjustment of the device.
virtual TExposure Exposure() const =0
Gets the currently set exposure setting value.
Software device screen.
Definition w32std.h:2328
Class used for passing camera picture data between camera and client in the V2 observer.
Definition ecam.h:324
TTimeIntervalMicroSeconds iElapsedTime
Time elapsed from when CCamera::StartVideoCapture() was called until the first frame in the buffer wa...
Definition ecam.h:424
virtual TInt ChunkOffsetL(TInt aFrameIndex)=0
Returns the offset into the chunk that contains the frame specified by aFrameIndex.
virtual TDesC8 * DataL(TInt aFrameIndex)=0
Returns a pointer to a descriptor containing a frame of camera data.
virtual TInt FrameSize(TInt aFrameIndex)=0
Returns the size of the data in bytes that comprises the frame specified by aIndex.
virtual CFbsBitmap & BitmapL(TInt aFrameIndex)=0
Returns a reference to a FBS bitmap containing a frame of image data.
virtual RChunk & ChunkL()=0
Returns a handle for the chunk that contains the camera data.
virtual TInt NumFrames()=0
Returns the number of frames of image data contained within the buffer.
TInt iIndexOfFirstFrameInBuffer
Sequential frame number of the first frame in the buffer, counting from when CCamera::StartVideoCaptu...
Definition ecam.h:418
virtual void Release()=0
Releases the buffer.
Mixin base class V2 for camera clients.
Definition ecam.h:620
virtual void ImageBufferReady(MCameraBuffer &aCameraBuffer, TInt aError)=0
Notifies the client of a new captured camera image.
virtual void ViewFinderReady(MCameraBuffer &aCameraBuffer, TInt aError)=0
Notifies client of new view finder data.
virtual void HandleEvent(const TECAMEvent &aEvent)=0
A camera event has completed.
virtual void VideoBufferReady(MCameraBuffer &aCameraBuffer, TInt aError)=0
Notifies the client of new captured video.
Mixin base class for camera clients.
Definition ecam.h:247
virtual void ImageReady(CFbsBitmap *aBitmap, HBufC8 *aData, TInt aError)=0
Transfers the current image from the camera to the client.
virtual void FrameBufferReady(MFrameBuffer *aFrameBuffer, TInt aError)=0
Passes a filled frame buffer to the client.
virtual void ViewFinderFrameReady(CFbsBitmap &aFrame)=0
Tests whether transfer of view finder data has completed.
virtual void ReserveComplete(TInt aError)=0
Camera reservation is complete.
virtual void PowerOnComplete(TInt aError)=0
Indicates camera power on is complete.
Buffer class for passing video frames between camera and client.
Definition ecam.h:1816
virtual void Release()=0
Releases the buffer for re-use by the camera once the client has processed the frame data.
TInt iIndexOfFirstFrameInBuffer
Sequential frame number of the first frame in the buffer, counting from when CCamera::StartVideoCaptu...
Definition ecam.h:1859
TTimeIntervalMicroSeconds iElapsedTime
Time elapsed from when CCamera::StartVideoCapture() was called until the first frame in the buffer wa...
Definition ecam.h:1865
virtual TDesC8 * DataL(TInt aIndex)=0
Gets a non-bitmap frame in the buffer.
virtual CFbsBitmap * FrameL(TInt aIndex)=0
Gets a bitmap frame in the buffer.
A handle to a chunk.
Definition e32std.h:3564
Client-side handle to a server-side window.
Definition w32std.h:1744
Window server session.
Definition w32std.h:1380
Specifies camera device information.
Definition ecam.h:64
TUint32 iVideoFrameFormatsSupported
The supported video frame formats.
Definition ecam.h:224
TInt iMaxFramesPerBufferSupported
Maximum number of frames per buffer that may be requested.
Definition ecam.h:226
TUint32 iExposureModesSupported
The supported exposure modes.
Definition ecam.h:135
TInt iMaxZoom
Maximum zoom value allowed.
Definition ecam.h:164
TOptions
Various flags describing the features available for a particular implementation.
Definition ecam.h:86
@ EContrastSupported
Contrast setting flag.
Definition ecam.h:98
@ EViewFinderClippingSupported
View finder clipping flag.
Definition ecam.h:102
@ EImageCaptureSupported
Still image capture flag.
Definition ecam.h:92
@ EViewFinderDirectSupported
View finder display direct-to-screen flag.
Definition ecam.h:88
@ EViewFinderMirrorSupported
View finder display mirroring flag.
Definition ecam.h:96
@ EVideoCaptureSupported
Video capture flag.
Definition ecam.h:94
@ EBrightnessSupported
Brightness setting flag.
Definition ecam.h:100
@ EVideoClippingSupported
Video capture clipping flag.
Definition ecam.h:106
@ EImageClippingSupported
Still image capture clipping flag.
Definition ecam.h:104
@ EViewFinderBitmapsSupported
View finder bitmap generation flag.
Definition ecam.h:90
TInt iNumVideoFrameRatesSupported
Count of video frame rates allowed.
Definition ecam.h:212
TInt iNumVideoFrameSizesSupported
Count of video frame sizes allowed.
Definition ecam.h:206
TReal32 iMaxZoomFactor
Image size multiplier corresponding to maximum zoom value.
Definition ecam.h:182
TReal32 iMaxDigitalZoomFactor
Image size multiplier corresponding to maximum digital zoom value.
Definition ecam.h:189
TInt iMaxDigitalZoom
Maximum digital zoom value allowed.
Definition ecam.h:171
TCameraOrientation iOrientation
Orientation of this particular camera device.
Definition ecam.h:114
TInt iNumImageSizesSupported
Count of still image capture sizes allowed.
Definition ecam.h:195
TVersion iHardwareVersion
Version number and name of camera hardware.
Definition ecam.h:110
TReal32 iMinZoomFactor
Image size multiplier corresponding to minimum zoom value.
Definition ecam.h:177
TUint32 iWhiteBalanceModesSupported
The supported white balance settings.
Definition ecam.h:151
TInt iMinZoom
Minimum zoom value allowed.
Definition ecam.h:158
TUint32 iImageFormatsSupported
The supported still image formats.
Definition ecam.h:199
TUint32 iOptionsSupported
Bitfield of TOptions available.
Definition ecam.h:117
TVersion iSoftwareVersion
Version number and name of camera software (device driver).
Definition ecam.h:112
TInt iMaxBuffersSupported
Maximum number of buffers allowed.
Definition ecam.h:228
TUint32 iFlashModesSupported
The supported flash modes.
Definition ecam.h:131
TCameraOrientation
Possible directions in which the camera may point.
Definition ecam.h:69
@ EOrientationInwards
Inward pointing camera for conferencing.
Definition ecam.h:75
@ EOrientationOutwards
Outward pointing camera for taking pictures.
Definition ecam.h:72
@ EOrientationUnknown
Camera orientation is not known.
Definition ecam.h:80
@ EOrientationMobile
Mobile camera capable of multiple orientations.
Definition ecam.h:78
Special type of TECAMEvent class used to retrieve some extra information from particular events recei...
Definition ecam.h:564
static IMPORT_C TBool IsEventEncapsulationValid(const TECAMEvent &aECAMEvent)
This method may be used by MCameraObserver2::HandleEvent to know whether a particular event received ...
IMPORT_C const TUid & EventClassUsed() const
Gives the uid representing this version of TECAMEvent base class.
TInt iParam
This signifies different things for different valid events.
Definition ecam.h:604
TInt iParam1
iParam1 will be used to provide extra information if iParam is not sufficient.
Definition ecam.h:597
General purpose class to describe an ECam event.
Definition ecam.h:467
TUid iEventType
A UID to define the event type.
Definition ecam.h:491
IMPORT_C TECAMEvent()
Default constructor.
TInt iErrorCode
The error code associated with the event.
Definition ecam.h:496
Geometric rectangle.
Definition e32std.h:2670
Stores a two-dimensional size as a width and a height value.
Definition e32cmn.h:2442
Represents a time interval of a millionth of a second stored as a 64-bit integer.
Definition e32std.h:1607
A globally unique 32-bit number.
Definition e32cmn.h:1959
Contains version information.
Definition e32cmn.h:2200
TInt TPostCaptureControlId
Definition ecam.h:40