25#include <ecamuids.hrh>
26#include <e32property.h>
28#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
286 virtual void ImageReady(CFbsBitmap* aBitmap,HBufC8* aData,TInt aError)=0;
342 virtual TDesC8*
DataL(TInt aFrameIndex)=0;
355 virtual CFbsBitmap&
BitmapL(TInt aFrameIndex)=0;
398 virtual TInt
FrameSize(TInt aFrameIndex)=0;
425static const TUid KUidECamEventReserveComplete = {0x101F7D3B};
430static const TUid KUidECamEventPowerOnComplete = {0x101F7D3C};
436static const TUid KUidECamEventCameraNoLongerReserved = {0x101F7D3D};
448static const TUid KUidECamEventNewReserveComplete = {KUidECamEventNewReserveCompleteUidValue};
497static const TUid KUidECamEventClass2 = {KUidECamEventClass2UidValue};
505static const TUid KUidECamEventCIPSetColorSwapEntry = {KUidECamEventCIPSetColorSwapEntryUidValue};
506static const TUid KUidECamEvent2CIPSetColorSwapEntry = {KUidECamEventCIPSetColorSwapEntryUidValue};
514static const TUid KUidECamEventCIPRemoveColorSwapEntry = {KUidECamEventCIPRemoveColorSwapEntryUidValue};
515static const TUid KUidECamEvent2CIPRemoveColorSwapEntry = {KUidECamEventCIPRemoveColorSwapEntryUidValue};
523static const TUid KUidECamEventCIPSetColorAccentEntry = {KUidECamEventCIPSetColorAccentEntryUidValue};
524static const TUid KUidECamEvent2CIPSetColorAccentEntry = {KUidECamEventCIPSetColorAccentEntryUidValue};
532static const TUid KUidECamEventCIPRemoveColorAccentEntry = {KUidECamEventCIPRemoveColorAccentEntryUidValue};
533static const TUid KUidECamEvent2CIPRemoveColorAccentEntry = {KUidECamEventCIPRemoveColorAccentEntryUidValue};
547static const TUid KUidECamEventCameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue};
548static const TUid KUidECamEvent2CameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue};
570 TUid iEventClassUsed;
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;
1798 virtual TDesC8*
DataL(TInt aIndex)=0;
1811 virtual CFbsBitmap*
FrameL(TInt aIndex)=0;
1838#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1839#include <ecamconst.h>
1842class MReserveObserver;
1865 RProperty iProperty;
1866 MReserveObserver& iReserveObserver;
The core class of the active object abstraction.
An active object class implemented by Symbian and used to subscribe for the updates in the Properties...
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.
static IMPORT_C CCamera * NewDuplicate2L(MCameraObserver2 &aObserver, TInt aCameraHandle)
TWhiteBalance
Specifies how the white balance is set.
@ EWBSnow
High contrast daylight primarily snowy.
@ EWBTungsten
Tungsten filament lighting.
@ EWBManual
User configurable mode.
@ EWBDaylight
Normal daylight.
@ EWBFluorescent
Fluorescent tube lighting.
@ EWBCloudy
Overcast daylight.
@ EWBFlash
Flash lighting.
@ EWBBeach
High contrast daylight primarily near the sea.
@ EWBDaylightUnderWater
Daylight Under Water.
@ EWBAuto
Set white balance automatically.
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
virtual void SetZoomFactorL(TInt aZoomFactor=0)=0
Sets the zoom factor.
TContrast
Specifies whether contrast is set automatically.
@ EContrastAuto
Sets the contrast automatically.
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.
@ EBrightnessAuto
Sets the brightness automatically.
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.
@ EFormatYUV444
4:4:4 format, 8 bits per sample, Y00U00V00 Y01U01V01...
@ EFormatMJPEG
Motion JPEG for video.
@ EFormat16BitRGB565
Packed RGB triplets, 5 bits per pixel for red and blue and 6 bits for green, with red in the least si...
@ EFormat16bitRGB444
Packed RGB triplets, 4 bits per pixel with red in the least significant bits and the 4 most significa...
@ EFormat32BitRGB888
Packed RGB triplets, 8 bits per pixel with red in the least significant bits and the 8 most significa...
@ EFormatFbsBitmapColor16MU
CFbsBitmap object with display mode EColor16MU.
@ EFormatYUV420Interleaved
4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV.
@ EFormatUserDefined
Implementation dependent.
@ EFormatFbsBitmapColor4K
CFbsBitmap object with display mode EColor4K.
@ EFormatMonochrome
8 bit greyscale values, 0=black, 255=white.
@ EFormatFbsBitmapColor16M
CFbsBitmap object with display mode EColor16M.
@ EFormatYUV420SemiPlanar
4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0...
@ EFormatFbsBitmapColor64K
CFbsBitmap object with display mode EColor64K.
@ EFormatYUV422Reversed
4:2:2 format, 8 bits per sample, Y1VY0U.
@ EFormatYUV222ReversedV2
@ EFormatYUV420Planar
4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0...
@ EFormatYUV422
4:2:2 format, 8 bits per sample, UY0VY1.
virtual void Reserve()=0
Asynchronous function that performs any required initialisation and reserves the camera for exclusive...
TFlash
Specifies the type of flash.
@ EFlashAuto
Flash will automatically fire when required.
@ EFlashFillIn
Reduced flash for general lighting.
@ EFlashForced
Flash will always fire.
@ EFlashSlowRearSync
Flash at the moment when shutter closes.
@ EFlashManual
User configurable setting.
@ EFlashNone
No flash, always supported.
@ EFlashRedEyeReduce
Red-eye reduction mode.
@ EFlashVideoLight
Constant emission of light during video mode
@ EFlashSlowFrontSync
Flash at the moment when shutter opens.
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.
@ EExposureManual
User selectable exposure value setting.
@ EExposureNight
Night-time setting for long exposures.
@ EExposureSnow
Snow setting for daylight exposure.
@ EExposureBeach
Beach setting for daylight exposure with reflective glare.
@ EExposureSuperNight
Exposure night setting with colour removed to get rid of colour noise.
@ EExposureSport
Sport setting for very short exposures.
@ EExposureProgram
Programmed exposure setting.
@ EExposureBacklight
Backlight setting for bright backgrounds.
@ EExposureVeryLong
Generalised setting for very long exposures.
@ EExposureAuto
Set exposure automatically.
@ EExposureInfra
Exposure for infra-red sensor on the camera.
@ EExposureShutterPriority
Shutter speed setting is given priority.
@ EExposureAperturePriority
Aperture setting is given priority.
@ EExposureCenter
Centered mode for ignoring surroundings.
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.
Class used for passing camera picture data between camera and client in the V2 observer.
TTimeIntervalMicroSeconds iElapsedTime
Time elapsed from when CCamera::StartVideoCapture() was called until the first frame in the buffer wa...
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...
virtual void Release()=0
Releases the buffer.
Mixin base class V2 for camera clients.
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.
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.
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...
TTimeIntervalMicroSeconds iElapsedTime
Time elapsed from when CCamera::StartVideoCapture() was called until the first frame in the buffer wa...
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.
Client-side handle to a server-side window.
Specifies camera device information.
TUint32 iVideoFrameFormatsSupported
The supported video frame formats.
TInt iMaxFramesPerBufferSupported
Maximum number of frames per buffer that may be requested.
TUint32 iExposureModesSupported
The supported exposure modes.
TInt iMaxZoom
Maximum zoom value allowed.
TOptions
Various flags describing the features available for a particular implementation.
@ EContrastSupported
Contrast setting flag.
@ EViewFinderClippingSupported
View finder clipping flag.
@ EImageCaptureSupported
Still image capture flag.
@ EViewFinderDirectSupported
View finder display direct-to-screen flag.
@ EViewFinderMirrorSupported
View finder display mirroring flag.
@ EVideoCaptureSupported
Video capture flag.
@ EBrightnessSupported
Brightness setting flag.
@ EVideoClippingSupported
Video capture clipping flag.
@ EImageClippingSupported
Still image capture clipping flag.
@ EViewFinderBitmapsSupported
View finder bitmap generation flag.
TInt iNumVideoFrameRatesSupported
Count of video frame rates allowed.
TInt iNumVideoFrameSizesSupported
Count of video frame sizes allowed.
TReal32 iMaxZoomFactor
Image size multiplier corresponding to maximum zoom value.
TReal32 iMaxDigitalZoomFactor
Image size multiplier corresponding to maximum digital zoom value.
TInt iMaxDigitalZoom
Maximum digital zoom value allowed.
TCameraOrientation iOrientation
Orientation of this particular camera device.
TInt iNumImageSizesSupported
Count of still image capture sizes allowed.
TVersion iHardwareVersion
Version number and name of camera hardware.
TReal32 iMinZoomFactor
Image size multiplier corresponding to minimum zoom value.
TUint32 iWhiteBalanceModesSupported
The supported white balance settings.
TInt iMinZoom
Minimum zoom value allowed.
TUint32 iImageFormatsSupported
The supported still image formats.
TUint32 iOptionsSupported
Bitfield of TOptions available.
TVersion iSoftwareVersion
Version number and name of camera software (device driver).
TInt iMaxBuffersSupported
Maximum number of buffers allowed.
TUint32 iFlashModesSupported
The supported flash modes.
TCameraOrientation
Possible directions in which the camera may point.
@ EOrientationInwards
Inward pointing camera for conferencing.
@ EOrientationOutwards
Outward pointing camera for taking pictures.
@ EOrientationUnknown
Camera orientation is not known.
@ EOrientationMobile
Mobile camera capable of multiple orientations.
Special type of TECAMEvent class used to retrieve some extra information from particular events recei...
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.
TInt iParam1
iParam1 will be used to provide extra information if iParam is not sufficient.
General purpose class to describe an ECam event.
TUid iEventType
A UID to define the event type.
IMPORT_C TECAMEvent()
Default constructor.
TInt iErrorCode
The error code associated with the event.
Stores a two-dimensional size as a width and a height value.
Represents a time interval of a millionth of a second stored as a 64-bit integer.
A globally unique 32-bit number.
Contains version information.
TInt TPostCaptureControlId