`
`CCamera in Multimedia ECam
`
`SYMBIAN OS SDK V8.1A
`
`
`
`
`
`
`
` » Symbian OS SDK v8.1a » Symbian OS reference » C++ component reference » Multimedia ECam » CCamera
`
`Location: ECam.h
`
`Class CCamera
`
`class CCamera : public CBase;
`
`Description
`
`Base class for camera devices.
`
`Provides the interface that an application uses to control, and acquire images from, the camera.
`An application must supply an implementation of MCameraObserver2 (or MCameraObserver).
`
`Derivation
`
`CBase - Base class for all classes to be instantiated on the heap
`CCamera - Base class for camera devices
`
`Members
`Defined in CCamera:
`Brightness(), BuffersInUse(), CameraInfo(), CamerasAvailable(), CancelCaptureImage(),
`
`CaptureImage(), Contrast(), CustomInterface(), DigitalZoomFactor(), EBrightnessAuto,
`EContrastAuto, EExposureAuto, EExposureBacklight, EExposureCenter, EExposureNight,
`EFlashAuto, EFlashFillIn, EFlashForced, EFlashNone, EFlashRedEyeReduce,
`EFormat16BitRGB565, EFormat16bitRGB444, EFormat32BitRGB888, EFormatExif,
`EFormatFbsBitmapColor16M, EFormatFbsBitmapColor4K, EFormatFbsBitmapColor64K,
`EFormatJpeg, EFormatMonochrome, EFormatUserDefined, EFormatYUV420Interleaved,
`EFormatYUV420Planar, EFormatYUV420SemiPlanar, EFormatYUV422, EFormatYUV422Reversed,
`EFormatYUV444, EWBAuto, EWBCloudy, EWBDaylight, EWBFlash, EWBFluorescent, EWBTungsten,
`EnumerateCaptureSizes(), EnumerateVideoFrameRates(), EnumerateVideoFrameSizes(),
`Exposure(), Flash(), FrameRate(), FramesPerBuffer(), GetFrameSize(), Handle(),
`JpegQuality(), NewDuplicateL(), NewL(), PowerOff(), PowerOn(), PrepareImageCaptureL(),
`PrepareImageCaptureL(), PrepareVideoCaptureL(), PrepareVideoCaptureL(), Release(),
`Reserve(), SetBrightnessL(), SetContrastL(), SetDigitalZoomFactorL(), SetExposureL(),
`SetFlashL(), SetJpegQuality(), SetViewFinderMirrorL(), SetWhiteBalanceL(),
`SetZoomFactorL(), StartVideoCapture(), StartViewFinderBitmapsL(),
`StartViewFinderBitmapsL(), StartViewFinderDirectL(), StartViewFinderDirectL(),
`StopVideoCapture(), StopViewFinder(), TBrightness, TContrast, TExposure, TFlash,
`TFormat, TWhiteBalance, VideoCaptureActive(), ViewFinderActive(), ViewFinderMirror(),
`WhiteBalance(), ZoomFactor()
`Inherited from CBase:
`operator new()
`
`
`Construction and destruction
`NewL()
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 1/24
`
`Page 1 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`static IMPORT_C CCamera *NewL(MCameraObserver &aObserver, TInt aCameraIndex);
`
`Description
`
`Creates an object representing a camera.
`
`Parameters
`
`MCameraObserver
`&aObserver
`
`TInt aCameraIndex
`
`Reference to class derived from MCameraObserver designed to receive
`notification of asynchronous event completion.
`
`Index from 0 to CamerasAvailable()-1 inclusive specifying the camera device
`to use.
`
`Return value
`
`CCamera *
`
`Leave codes
`
`Pointer to a fully constructed CCamera object. Ownership is passed to the caller.
`
`May
`
`leave with KErrNoMemory or KErrNotSupported if aCameraIndex is out of range.
`
`Member functions
`CamerasAvailable()
`static IMPORT_C TInt CamerasAvailable();
`
`Description
`
`Determines the number of cameras on the device.
`
`Return value
`
`TInt
`
`Count of cameras present on the device.
`
`NewDuplicateL()
`static IMPORT_C CCamera *NewDuplicateL(MCameraObserver &aObserver, TInt
`aCameraHandle);
`
`Description
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 2/24
`
`Page 2 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`Duplicates the original camera object for use by, for example, multimedia systems.
`
`May leave with KErrNoMemory or KErrNotFound if aCameraHandle is not valid.
`
`Parameters
`
`MCameraObserver &aObserver
`
`TInt aCameraHandle
`
`Reference to an observer.
`
`Handle of an existing camera object.
`
`Return value
`
`CCamera *
`
`Duplicate of the original camera object.
`
`CameraInfo()
`virtual void CameraInfo(TCameraInfo &aInfo) const=0;
`
`Description
`
`Gets information about the camera device.
`
`Parameters
`
`TCameraInfo &aInfo
`
`On return, information about the camera device. See TCameraInfo.
`
`Return value
`
`void
`Reserve()
`virtual void Reserve()=0;
`
`Description
`
`Asynchronous function that performs any required initialisation and reserves the camera for exclusive use.
`Calls MCameraObserver:: ReserveComplete() when complete.
`
`Return value
`
`void
`Release()
`virtual void Release()=0;
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 3/24
`
`Page 3 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`
`Description
`
`De-initialises the camera, allowing it to be used by other clients.
`
`Return value
`
`void
`PowerOn()
`virtual void PowerOn()=0;
`
`Description
`
`Asynchronous method to switch on camera power.
`User must have successfully called Reserve() prior to calling this function.
`Calls MCameraObserver::PowerOnComplete() when power on is complete.
`
`Return value
`
`void
`PowerOff()
`virtual void PowerOff()=0;
`
`Description
`
`Synchronous function for switching off camera power.
`
`Return value
`
`void
`Handle()
`virtual TInt Handle()=0;
`
`Description
`
`Gets the device-unique handle of this camera object.
`
`Return value
`
`TInt
`
`The device-unique handle of this camera object.
`
`SetZoomFactorL()
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 4/24
`
`Page 4 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`virtual void SetZoomFactorL(TInt aZoomFactor=0)=0;
`
`Description
`
`Sets the zoom factor.
`This must be in the range of TCameraInfo::iMinZoom to TCameraInfo::iMaxZoom inclusive. May
`leave with KErrNotSupported if the specified zoom factor is out of range.
`
`Parameters
`
`TInt aZoomFactor
`
`Return value
`
`Required zoom factor.
`
`void
`ZoomFactor()
`virtual TInt ZoomFactor() const=0;
`
`Description
`
`Gets the currently set zoom factor.
`
`Return value
`
`TInt
`
`The currently set zoom factor.
`
`SetDigitalZoomFactorL()
`virtual void SetDigitalZoomFactorL(TInt aDigitalZoomFactor=0)=0;
`
`Description
`
`Sets the digital zoom factor.
`This must be in the range of 0 to TCameraInfo::iMaxDigitalZoom inclusive.
`May leave with KErrNotSupported if the zoom factor is out of range.
`
`Parameters
`
`TInt aDigitalZoomFactor
`
`The required digital zoom factor.
`
`Return value
`
`void
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 5/24
`
`Page 5 of 24
`
`
`
`8/2/2018
`
`DigitalZoomFactor()
`virtual TInt DigitalZoomFactor() const=0;
`
`CCamera in Multimedia ECam
`
`Description
`
`Gets the currently set digital zoom factor.
`
`Return value
`
`TInt
`
`The currently set digital zoom factor.
`
`SetContrastL()
`virtual void SetContrastL(TInt aContrast)=0;
`
`Description
`
`Sets the contrast adjustment of the device.
`
`This must be in the range of -100 to +100 or EContrastAuto. May leave with KErrNotSupported if the
`specified contrast value is out of range.
`
`Parameters
`
`TInt aContrast
`
`Return value
`
`Required contrast value. See TCameraInfo::iContrastSupported
`
`void
`Contrast()
`virtual TInt Contrast() const=0;
`
`Description
`
`Gets the currently set contrast value.
`
`Return value
`
`TInt
`
`The currently set contrast value.
`
`SetBrightnessL()
`virtual void SetBrightnessL(TInt aBrightness)=0;
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 6/24
`
`Page 6 of 24
`
`
`
`8/2/2018
`
`Description
`
`CCamera in Multimedia ECam
`
`Sets the brightness adjustment of the device.
`
`No effect if this is not supported, see TCameraInfo::iBrightnessSupported.
`
`This must be in the range of -100 to +100 or EBrightnessAuto. May leave with KErrNotSupported if the
`brightness adjustment is out of range.
`
`Parameters
`
`TInt aBrightness
`
`Return value
`
`The required brightness adjustment.
`
`void
`Brightness()
`virtual TInt Brightness() const=0;
`
`Description
`
`Gets the currently set brightness adjustment value.
`
`Return value
`
`TInt
`
`The currently set brightness adjustment value.
`
`SetFlashL()
`virtual void SetFlashL(TFlash aFlash=EFlashNone)=0;
`
`Description
`
`Sets the flash mode.
`No effect if this is not supported, see TCameraInfo::iFlashModesSupported.
`May leave with KErrNotSupported if the specified flash mode is invalid.
`
`Parameters
`
`TFlash aFlash
`
`Return value
`
`void
`
`The required flash mode.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 7/24
`
`Page 7 of 24
`
`
`
`8/2/2018
`
`Flash()
`virtual TFlash Flash() const=0;
`
`CCamera in Multimedia ECam
`
`Description
`
`Gets the currently set flash mode.
`
`Return value
`
`TFlash
`
`The currently set flash mode.
`
`SetExposureL()
`virtual void SetExposureL(TExposure aExposure=EExposureAuto)=0;
`
`Description
`
`Sets the exposure adjustment of the device.
`
`No effect if this is not supported, see CameraInfo::iExposureModesSupported.
`
`May leave with KErrNotSupported if the specified exposure adjustment is invalid.
`
`Parameters
`
`TExposure aExposure
`
`Return value
`
`The required exposure adjustment.
`
`void
`Exposure()
`virtual TExposure Exposure() const=0;
`
`Description
`
`Gets the currently set exposure setting value.
`
`Return value
`
`TExposure
`
`The currently set exposure setting value.
`
`SetWhiteBalanceL()
`virtual void SetWhiteBalanceL(TWhiteBalance aWhiteBalance=EWBAuto)=0;
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 8/24
`
`Page 8 of 24
`
`
`
`8/2/2018
`
`Description
`
`CCamera in Multimedia ECam
`
`Sets the white balance adjustment of the device.
`No effect if this is not supported, see TCameraInfo::iWhiteBalanceModesSupported.
`
`Parameters
`
`TWhiteBalance aWhiteBalance
`
`The required white balance adjustment.
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotSupported if the specified white balance adjustment is invalid.
`
`WhiteBalance()
`virtual TWhiteBalance WhiteBalance() const=0;
`
`Description
`
`Gets the currently set white balance adjustment value.
`
`Return value
`
`TWhiteBalance
`
`The currently set white balance adjustment value.
`
`StartViewFinderDirectL()
`virtual void StartViewFinderDirectL(RWsSession &aWs, CWsScreenDevice
`&aScreenDevice, RWindowBase &aWindow, TRect &aScreenRect)=0;
`
`Description
`
`Starts transfer of view finder data to the given portion of the screen using direct screen access.
`
`The aScreenRect parameter is in screen co-ordinates and may be modified if, eg, the camera requires the
`destination to have a certain byte alignment, etc.
`
`Parameters
`
`RWsSession &aWs
`
`Window server session.
`
`CWsScreenDevice
`&aScreenDevice
`
`Screen device.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/… 9/24
`
`Page 9 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`
`Displayable window.
`
`Portion of the screen to which view finder data is to be transferred. This is in screen
`co-ordinates and may be modified if, for example, the camera requires the
`destination to have a certain byte alignment.
`
`RWindowBase
`&aWindow
`
`TRect
`&aScreenRect
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotReady if PowerOn() has either not been called, or has not yet completed.
`
`StartViewFinderDirectL()
`virtual void StartViewFinderDirectL(RWsSession &aWs, CWsScreenDevice
`&aScreenDevice, RWindowBase &aWindow, TRect &aScreenRect, TRect &aClipRect)=0;
`
`Description
`
`Starts transfer of view finder data to the given portion of the screen using direct screen access and also clips
`to the specified portion of the screen.
`
`The view finder has the same size and position as aScreenRect but is only visible in the intersection of
`aScreenRect and aClipRect. May leave with KErrNotSupported or KErrNotReady if Reserve() has not
`been called, or has not yet completed.
`
`Parameters
`
`RWsSession &aWs
`
`Window server session.
`
`CWsScreenDevice
`&aScreenDevice
`
`Screen device.
`
`RWindowBase
`&aWindow
`
`TRect
`&aScreenRect
`
`TRect
`&aClipRect
`
`Return value
`
`Displayable window.
`
`Portion of the screen to which view finder data is to be transferred. This is in screen
`co-ordinates and may be modified if, for example, the camera requires the
`destination to have a certain byte alignment.
`
`The rectangle to which the screen will be clipped.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 10/24
`
`Page 10 of 24
`
`
`
`8/2/2018
`
`void
`
`Leave codes
`
`CCamera in Multimedia ECam
`
`May
`
`leave with KErrNotReady if PowerOn() hasn't been called successfully.
`
`StartViewFinderBitmapsL()
`virtual void StartViewFinderBitmapsL(TSize &aSize)=0;
`
`Description
`
`Starts transfer of view finder data.
`Bitmaps are returned by MCameraObserver::ViewFinderFrameReady().
`
`On return, the size used.
`
`Parameters
`
`TSize &aSize
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotReady if PowerOn() has not been called, or has not yet completed.
`
`StartViewFinderBitmapsL()
`virtual void StartViewFinderBitmapsL(TSize &aSize, TRect &aClipRect)=0;
`
`Description
`
`Starts transfer of view finder data and clips the bitmap to the specified clip rectangle.
`
`The bitmap is the size of the intersection of aSize and aClipRect, not simply aSize padded with white space.
`
`Parameters
`
`TSize &aSize
`
`TRect
`&aClipRect
`
`On return, the size used.
`
`Required clip rectangle. May be modified if, for example, the camera only supports
`certain byte alignments.
`
`Return value
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 11/24
`
`Page 11 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`
`void
`
`Leave codes
`
`May
`
`leave with KErrInUse if Reserve() hasn't been called successfully, or KErrNotReady if PowerOn()
`hasn't been called successfully.
`
`StopViewFinder()
`virtual void StopViewFinder()=0;
`
`Description
`
`Stops transfer of view finder data to the screen.
`
`Return value
`
`void
`ViewFinderActive()
`virtual TBool ViewFinderActive() const=0;
`
`Description
`
`Queries whether the view finder is active.
`
`Return value
`
`TBool
`
`ETrue if the view finder is active. EFalse if the view finder is not active.
`
`SetViewFinderMirrorL()
`virtual void SetViewFinderMirrorL(TBool aMirror)=0;
`
`Description
`
`Sets whether view finder mirroring is on.
`
`Used to switch between what the camera sees and what you would see if the device were a mirror.
`
`Parameters
`
`TBool aMirror
`
`Return value
`
`ETrue to set mirroring on, EFalse to set mirroring off.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 12/24
`
`Page 12 of 24
`
`
`
`8/2/2018
`
`void
`
`CCamera in Multimedia ECam
`
`Leave codes
`
`May
`
`leave with KErrNotSupported.
`
`ViewFinderMirror()
`virtual TBool ViewFinderMirror() const=0;
`
`Description
`
`Gets whether view finder mirroring is active.
`
`Return value
`
`TBool
`
`ETrue if mirroring is set, EFalse if mirroring is not set.
`
`PrepareImageCaptureL()
`virtual void PrepareImageCaptureL(TFormat aImageFormat, TInt aSizeIndex)=0;
`
`Description
`
`Performs setup and allocation of memory.
`Called prior to calling CaptureImage() to keep the latency of that function to a minimum.
`Needs to be called only once for multiple CaptureImage() calls. May leave with KErrNotSupported or
`KErrNoMemory or KErrInUse or KErrNotReady.
`
`The specified image format must be one of the formats supported (see
`TCameraInfo::iImageFormatsSupported).
`The specified size index must be in the range of 0 to TCameraInfo::iNumImageSizesSupported-1
`inclusive.
`
`Parameters
`
`TFormat aImageFormat
`
`TInt aSizeIndex
`
`The image format.
`
`Size index.
`
`Return value
`
`void
`
`Leave codes
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 13/24
`
`Page 13 of 24
`
`
`
`8/2/2018
`
`May
`
`CCamera in Multimedia ECam
`
`leave with KErrNotSupported, KErrNoMemory, or KErrNotReady if PowerOn() hasn't been called
`successfully.
`
`PrepareImageCaptureL()
`virtual void PrepareImageCaptureL(TFormat aImageFormat, TInt aSizeIndex, const
`TRect &aClipRect)=0;
`
`Description
`
`Performs setup and allocation of memory and clips the image to the specified rectangle.
`
`No effect unless TCameraInfo::iImageClippingSupported is set to ETrue. The image captured is the
`intersection of aClipRect and the rectangle from (0,0) to aSize. Needs to be called only once for multiple
`CaptureImage() calls. May leave with KErrNotSupported or KErrNoMemory.
`The specified image format must be one of the formats supported (see
`TCameraInfo::iImageFormatsSupported).
`The specified size index must be in the range of 0 to TCameraInfo::iNumImageSizesSupported-1
`inclusive.
`
`The image format.
`
`Size index.
`
`The rectangle to which the image is to be clipped.
`
`Parameters
`
`TFormat aImageFormat
`
`TInt aSizeIndex
`
`const TRect &aClipRect
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotSupported, KErrNoMemory, KErrInUse if Reserve() hasn't been called
`successfully, or KErrNotReady if PowerOn() hasn't been called successfully.
`
`CaptureImage()
`virtual void CaptureImage()=0;
`
`Description
`
`Asynchronously performs still image capture.
`Calls MCameraObserver::ImageReady() when complete.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 14/24
`
`Page 14 of 24
`
`
`
`8/2/2018
`
`Return value
`
`CCamera in Multimedia ECam
`
`void
`CancelCaptureImage()
`virtual void CancelCaptureImage()=0;
`
`Description
`
`Cancels the asynchronous still image capture.
`
`Return value
`
`void
`EnumerateCaptureSizes()
`virtual void EnumerateCaptureSizes(TSize &aSize, TInt aSizeIndex, TFormat
`aFormat) const=0;
`
`Description
`
`Enumerates through the available image capture sizes, based on the specified size index and format
`The size index must be in the range 0 to TCameraInfo::iNumImageSizesSupported-1 inclusive.
`
`Parameters
`
`TSize &aSize
`
`TInt aSizeIndex
`
`TFormat aFormat
`
`Return value
`
`Image size.
`
`Size index.
`
`The image format.
`
`void
`PrepareVideoCaptureL()
`virtual void PrepareVideoCaptureL(TFormat aFormat, TInt aSizeIndex, TInt
`aRateIndex, TInt aBuffersToUse, TInt aFramesPerBuffer)=0;
`
`Description
`
`Prepares for video capture.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 15/24
`
`Page 15 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`Performs setup and allocation of memory prior to calling StartVideoCapture() to keep the latency of that
`function to a minimum.
`
`May leave with KErrNotSupported or KErrNoMemory.
`
`Parameters
`
`TFormat aFormat
`
`TInt aSizeIndex
`
`TInt aRateIndex
`
`Format must be one of the video frame formats supported (see
`TCameraInfo::iVideoFrameFormatsSupported).
`
`Size index must be in the range 0 to
`TCameraInfo::iNumVideoFrameSizesSupported-1 inclusive.
`
`The rate must be in the range 0 to
`TCameraInfo::iNumVideoFrameRatesSupported-1 inclusive.
`
`TInt
`aBuffersToUse
`
`The number of discrete buffers to use.
`
`TInt
`aFramesPerBuffer How large the buffers are to be. Must be less than or equal to
`TCameraInfo::iMaxFramesPerBufferSupported. One buffer is returned to
`MCameraObserver::FrameBufferReady() at a time.
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotSupported, KErrNoMemory, or KErrNotReady if PowerOn() hasn't been called
`successfully.
`
`PrepareVideoCaptureL()
`virtual void PrepareVideoCaptureL(TFormat aFormat, TInt aSizeIndex, TInt
`aRateIndex, TInt aBuffersToUse, TInt aFramesPerBuffer, const TRect
`&aClipRect)=0;
`
`Description
`
`Prepares for video capture and clips the frames to the given rectangle.
`Performs setup and allocation of memory prior to calling StartVideoCapture() to keep the latency of that
`function to a minimum.
`
`May leave with KErrNotSupported or KErrNoMemory.
`
`Parameters
`
`TFormat aFormat
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 16/24
`
`Page 16 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`Format must be one of the video frame formats supported (see
`TCameraInfo::iVideoFrameFormatsSupported).
`
`TInt aSizeIndex
`
`TInt aRateIndex
`
`Size index must be in the range 0 to
`TCameraInfo::iNumVideoFrameSizesSupported-1 inclusive.
`
`The rate must be in the range 0 to
`TCameraInfo::iNumVideoFrameRatesSupported-1 inclusive.
`
`TInt
`aBuffersToUse
`
`The number of discrete buffers to use.
`
`TInt
`aFramesPerBuffer How large the buffers are to be. Must be less than or equal to
`TCameraInfo::iMaxFramesPerBufferSupported. One buffer is returned to
`MCameraObserver::FrameBufferReady() at a time.
`
`The rectangle to which the image is to be clipped.
`
`const TRect
`&aClipRect
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotSupported, KErrNoMemory, KErrInUse if Reserve() hasn't been called
`successfully, or KErrNotReady if PowerOn() hasn't been called successfully.
`
`StartVideoCapture()
`virtual void StartVideoCapture()=0;
`
`Description
`
`Starts capturing video.
`Calls MCameraObserver::FrameBufferReady() when each buffer has been filled with the required
`number of frames, as set by PrepareVideoCaptureL().
`
`Return value
`
`void
`StopVideoCapture()
`virtual void StopVideoCapture()=0;
`
`Description
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 17/24
`
`Page 17 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`
`Stops video capture.
`
`Return value
`
`void
`VideoCaptureActive()
`virtual TBool VideoCaptureActive() const=0;
`
`Description
`
`Tests whether video capture is active.
`
`Return value
`
`TBool
`
`ETrue if video capture is active. EFalse if video capture is not active
`
`EnumerateVideoFrameSizes()
`virtual void EnumerateVideoFrameSizes(TSize &aSize, TInt aSizeIndex, TFormat
`aFormat) const=0;
`
`Description
`
`Enumerates through the available video frame sizes, based on the specified size index and format.
`
`Parameters
`
`TSize
`&aSize
`
`On return the available video frame sizes. Sizes should be returned in order, largest first, so
`clients do not have to iterate through every one.
`
`TInt
`aSizeIndex Size index. Must be in the range 0 to
`TCameraInfo::iNumVideoFrameSizesSupported-1 inclusive
`
`TFormat
`aFormat
`
`Image format.
`
`Return value
`
`void
`EnumerateVideoFrameRates()
`virtual void EnumerateVideoFrameRates(TReal32 &aRate, TInt aRateIndex, TFormat
`aFormat, TInt aSizeIndex, TExposure aExposure=EExposureAuto) const=0;
`
`Description
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 18/24
`
`Page 18 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`Enumerates through the available video frame rates, based on the specified rate index, video frame format,
`size index and exposure mode.
`
`Parameters
`
`TReal32
`&aRate
`
`On return, the available video frame rates. Some rates may not be available due to, for
`example, current flash mode setting. In those cases a rate of 0 will be returned. Rates
`should be returned in order, highest first, so clients do not have to iterate through every
`one.
`
`TInt
`aRateIndex The rate index. Must be in the range 0 to
`TCameraInfo::iNumVideoFrameRatesSupported-1 inclusive.
`
`TFormat
`aFormat
`
`The format.
`
`TInt
`aSizeIndex The size index.
`
`TExposure
`aExposure
`
`Return value
`
`The exposure mode.
`
`void
`GetFrameSize()
`virtual void GetFrameSize(TSize &aSize) const=0;
`
`Description
`
`Gets the frame size currently in use.
`
`Parameters
`
`TSize &aSize
`
`Return value
`
`The frame size currently in use.
`
`void
`FrameRate()
`virtual TReal32 FrameRate() const=0;
`
`Description
`
`Gets the frame rate currently in use.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 19/24
`
`Page 19 of 24
`
`
`
`8/2/2018
`
`Return value
`
`CCamera in Multimedia ECam
`
`TReal32
`
`The frame rate currently in use.
`
`BuffersInUse()
`virtual TInt BuffersInUse() const=0;
`
`Description
`
`Gets the number of buffers currently in use.
`
`Return value
`
`TInt
`
`The number of buffers currently in use.
`
`FramesPerBuffer()
`virtual TInt FramesPerBuffer() const=0;
`
`Description
`
`Gets the number of frames per buffer currently in use.
`
`Return value
`
`TInt
`
`The number of frames per buffer currently in use.
`
`SetJpegQuality()
`virtual void SetJpegQuality(TInt aQuality)=0;
`
`Description
`
`Sets the quality value to use if jpeg is a supported image for video format.
`
`Ignored if jpeg is not a supported image for video format.
`
`Parameters
`
`TInt aQuality
`
`Return value
`
`void
`
`The quality value to use, clamped to the range 1 to 100.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 20/24
`
`Page 20 of 24
`
`
`
`8/2/2018
`
`JpegQuality()
`virtual TInt JpegQuality() const=0;
`
`CCamera in Multimedia ECam
`
`Description
`
`Gets the currently set jpeg quality value.
`
`Returns 0 if not supported.
`
`Return value
`
`TInt
`
`The currently set jpeg quality value.
`
`CustomInterface()
`virtual TAny *CustomInterface(TUid aInterface)=0;
`
`Description
`
`Gets a custom interface. The client has to cast the returned pointer to the appropriate type.
`
`Parameters
`
`TUid aInterface
`
`Return value
`
`The Uid of the particular interface function required.
`
`TAny *
`
`Custom interface pointer. NULL if the requested interface is not supported.
`
`Member enumerations
`Enum TFormat
`TFormat
`
`Description
`
`Possible still image and video frame formats
`
`Formats are read from left to right, starting at the top of the image. YUV format is as defined by ITU-R
`BT.601-4.
`EFormatMonochrome
`
`8 bit greyscale values, 0=black, 255=white.
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 21/24
`
`Page 21 of 24
`
`
`
`8/2/2018
`
`EFormat16bitRGB444
`
`CCamera in Multimedia ECam
`
`Packed RGB triplets, 4 bits per pixel with red in the least significant bits
`and the 4 most significant bits unused.
`
`Packed RGB triplets, 5 bits per pixel for red and blue and 6 bits for
`green, with red in the least significant bits.
`
`Packed RGB triplets, 8 bits per pixel with red in the least significant bits
`and the 8 most significant bits unused.
`
`JFIF JPEG.
`
`EXIF JPEG
`
`CFbsBitmap object with display mode EColor4K.
`
`CFbsBitmap object with display mode EColor64K.
`
`CFbsBitmap object with display mode EColor16M.
`
`Implementation dependent.
`
`4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV.
`
`4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0...
`
`4:2:2 format, 8 bits per sample, UY0VY1.
`
`4:2:2 format, 8 bits per sample, Y1VY0U.
`
`4:4:4 format, 8 bits per sample, Y00U00V00 Y01U01V01...
`
`4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0...
`
`EFormat16BitRGB565
`
`EFormat32BitRGB888
`
`EFormatJpeg
`
`EFormatExif
`
`EFormatFbsBitmapColor4K
`
`EFormatFbsBitmapColor64K
`
`EFormatFbsBitmapColor16M
`
`EFormatUserDefined
`
`EFormatYUV420Interleaved
`
`EFormatYUV420Planar
`
`EFormatYUV422
`
`EFormatYUV422Reversed
`
`EFormatYUV444
`
`EFormatYUV420SemiPlanar
`
`Enum TContrast
`TContrast
`
`Description
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 22/24
`
`Page 22 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`Specifies whether contrast is set automatically.
`EContrastAuto
`
`Sets the contrast automatically.
`
`Enum TBrightness
`TBrightness
`
`Description
`
`Specifies whether brightness is set automatically.
`EBrightnessAuto
`
`Sets the brightness automatically.
`
`Enum TFlash
`TFlash
`
`Description
`
`Specifies the type of flash.
`EFlashNone
`
`EFlashAuto
`
`EFlashForced
`
`EFlashFillIn
`
`No flash, always supported.
`
`Flash will automatically fire when required.
`
`Flash will always fire.
`
`Reduced flash for general lighting
`
`EFlashRedEyeReduce
`
`Red-eye reduction mode.
`
`Enum TExposure
`TExposure
`
`Description
`
`Specifies the type of exposure. - EExposureAuto is the default value.
`EExposureAuto
`
`Set exposure automatically. Default, always supported.
`
`EExposureNight
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 23/24
`
`Page 23 of 24
`
`
`
`8/2/2018
`
`CCamera in Multimedia ECam
`Night-time setting for long exposures.
`
`EExposureBacklight
`
`EExposureCenter
`
`Backlight setting for bright backgrounds.
`
`Centered mode for ignoring surroundings.
`
`Enum TWhiteBalance
`TWhiteBalance
`
`Description
`
`Specifies how the white balance is set.
`EWBAuto
`
`Set white balance automatically. Default, always supported.
`
`EWBDaylight
`
`EWBCloudy
`
`EWBTungsten
`
`EWBFluorescent
`
`EWBFlash
`
`Normal daylight.
`
`Overcast daylight.
`
`Tungsten filament lighting.
`
`Fluorescent tube lighting
`
`Flash lighting.
`
`Copyright ©2005 Symbian Ltd. unknown-build-id
`
`https://web.archive.org/web/20060917034627/http://www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N1025… 24/24
`
`Page 24 of 24
`
`