`
`symbian
`
`S MBIA OS C::DK V
`
`A
`
`CCamera in Multimedia ECam
`
`Symbian Developer Library
`
`INDEX
`
`PREVIOUS
`
`NEXT
`
`§ymbian OS SOK v8.1 a §ymbian OS reference C++ comP-onent reference Multimedia ECam CCamera
`
`Location: EC am . h
`
`Class CCamera
`
`class CCarnera
`
`public CBase ;
`
`Description
`
`Base class for camera devices.
`
`EXH1a1r
`
`Provides the interface that an application uses to control, and acquire images from, the camera .
`
`An application must supply an implementation of MCamera0bserver2 (or MCarneraObserver).
`
`Derivation
`
`o CBase - Base class for all classes to be instantiated on the heap
`• CCarnera - Base class for camera devices
`
`Members
`
`Defined in CCarnera:
`Brightness(.)_, BuffersinUse (.)_,Camera Info(.)_, CarnerasAvailable (.)_, CancelCaP.turelrnag~(.J_,
`.C .. ~U:'.!tureirnag~(.)_, Contrast(.)_, Custornlnterface (.)_, DigitalzoornFactor (.)_, EBrightnessAuto,
`EContrastAuto, EExP.osureAuto , EExP.osureBacklig.!lt., EExP.osureCenter, EExP.osureNigb..t.,
`EFlashAuto, EFlashFillin, EFlashForced, EFlashNone, EFlashRedEY.eReduce,
`EForrnatl6BitRGB565, EForrnatl6bitRGB444 , EForrnat32BitRGB888, EForrnatExif,
`EForrnatFbsBitrnaP.Color16M, EForrnatFbsBitrnapColor4K, EForrnatFbsBitrnaP.COlor64K,
`EForrnatJp~g , EFormatMonochrorne , EForrnatUserDefined, EForrnatYUV420Interleaved,
`EForrnatYUV420Planar, EForrnatYUV420SemiPlanar, EForrnatYUV422, EForrnatYUV422Reversed,
`EFormatYUV444 , EWBAuto, EWBCloudY., EWBDaY.light, EWBFlash, EWBFluorescent, EWBTungsten,
`EnurnerateCaP.tu reSizes (.)_, EnurnerateVideoFrarneRates (.)_, EnurnerateVideoFrarneSizes (.)_,
`ExP.osure (.)_,Flash(.)_, FrarneRate (.)_, FrarnesPerBuffer (.)_, GetFrarneSize (.)_,Handle(.)_,
`JP.eg.Quali ty_(_)_, NewDuP.lica teL (.)_, NewL (.)_, PowerOff (.)_, PowerOn (.)_, PreP.arelrnag~P.tureL (.)_,
`PreP.areirnageCaP.tureL (.)_, PreP.areVideoCaP.tureL (.)_, PreP.areVideoCaP.tureL (.)_, Re l ease(.)_,
`Reserve(.)_, SetBri ghtnessL (.)_, SetContrastL (.)_, SetDigi ta lZoornFactorL (.)_, SetExP.osureL (.)_,
`SetFl ashL (.)_, S e tJp~g.QJJ.£1i.ty_(.J_, SetViewFinderMirrorL (.)_, SetWhiteBalanceL (.)_,
`SetZoornFactorL (.)_, StartVideoCaP.ture (.)_, StartViewFinderBitrnaP.SL (.)_,
`StartViewFinderBi trnaP.sL (.)_, StartViewFinderDirectL (.)_, StartViewFinderDirectL (.)_,
`StoP.VideoCaP.ture (.)_, StoP.ViewFinder (.)_, TBrightness , TContrast, TExP.osure, TFlash,
`TForrna t , TWhi teBalance, VideoCaP.tureActi ve (.)_, ViewFinderActi ve (.)_, ViewFinderMirror (.)_,
`Whi teBalance (.)_, ZoornFactor (.J_
`
`Inherited from CBase:
`QP.erator new(.)_
`
`Construction and destruction
`
`NewL ()
`
`https://web.archive.org/web/20080208053134/http:/www.symbian.com :BO/developer/tech lib/vB.1 adocs/doc _ source/reference/reference-cpp/N 10256/. . .
`
`1 /24
`
`Page 1 of 24
`
`
`
`7/19/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 (J_-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 aCameralndex is out of range.
`
`Member functions
`
`CamerasAvailable()
`
`static I MPORT C Tint CamerasAvailable();
`
`Description
`
`Determines the number of cameras on the device.
`
`Return value
`
`Count of cameras present on the device.
`
`NewDuplicateL ()
`
`static IMPORT C CCamera *NewDuplicateL (MCameraObserver &aObserver, Tint
`aCameraHandle);
`
`Description
`
`https://web.archive.org/web/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1 adocs/doc _ source/reference/reference-cpp/N 10256/...
`
`2/24
`
`Page 2 of 24
`
`
`
`7/19/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
`
`Reference to an observer.
`
`Tlnt aCameraHandle
`
`Handle of an existing camera object.
`
`Return value
`
`CCamera *
`
`Duplicate of the original camera object.
`
`Camerainf o ()
`
`virtual void Cameralnfo(TCameralnfo &alnfo ) const=O ;
`
`Description
`
`Gets information about the camera device.
`
`Parameters
`
`TCameralnfo &alnfo
`
`On return, information about the camera device. See TCamerainfo.
`
`Return value
`
`void
`
`Reserve()
`
`virtual void Reserve()=O;
`
`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() =O ;
`
`https ://web .archive.org/web/20080208053134/http:/www.symbian.com:80/developer/techlib/v8. 1adocs/doc_source/reference/reference-cpp/N10256/
`
`3/24
`
`Page 3 of 24
`
`
`
`7/19/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()=O ;
`
`Description
`
`Asynchronous method to switch on camera power.
`
`~ must have successfully called Reserve (.)_ prior to calling this function.
`
`Calls MCameraObserver:: PowerOnComp~O- when power on is complete.
`
`Return value
`
`void
`
`PowerOff ()
`
`virtual void PowerOff()=O;
`
`Description
`
`Synchronous function for switching off camera power.
`
`Return value
`
`void
`
`Handle()
`
`virtual Tint Handle()=O;
`
`Description
`
`Gets the device-unique handle of this camera object.
`
`Return value
`
`The device-unique handle of this camera object.
`
`SetZoomFactorL()
`
`https://web.archive.org/web/20080208053134/http:/www.symbian.com:80/developer/techl ib/v8.1 adocs/doc_ source/reference/reference-cpp/N 10256/...
`
`4/24
`
`Page 4 of 24
`
`
`
`7/19/2018
`
`CCamera in Multimedia ECam
`
`virtual void SetZoomFactorL(Tint aZoomFactor=O)=O ;
`
`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
`
`Required zoom factor.
`
`Return value
`
`voi d
`
`ZoomFactor ()
`
`virtual Ti n t ZoomFactor() const=O ;
`
`Description
`
`Gets the currently set zoom factor.
`
`Return value
`
`The currently set zoom factor.
`
`SetDigitalZoomFactorL()
`
`v irtua l void SetDi gi t alZoomFactorL (Tint aDigi talZoomFactor=O ) =O ;
`
`Description
`
`Sets the digital zoom factor.
`
`This must be in the range of 0 to TCamerainfo: : iMaxDigital Zoom inclusive.
`
`May leave with KErrNotSupported if the zoom fa ctor is out of range .
`
`Parameters
`
`Tint aDigita lZoomFactor
`
`The required digital zoom factor.
`
`Return value
`
`v o id
`
`https://web.a rchive.org/web/20080208053134/http:/www. symbian.com :80/developer/tech lib/v8.1 adocs/doc_ source/reference/reference-cpp/N 10256/. . .
`
`5/24
`
`Page 5 of 24
`
`
`
`7/19/2018
`DigitalZoomFactor()
`
`CCamera in Multimedia ECam
`
`virtual Tint DigitalZoomFactor() const=O;
`
`Description
`
`Gets the currently set digital zoom factor.
`
`Return value
`
`The currently set digital zoom factor.
`
`SetContrastL ()
`
`virtual void setContrastL(Tint aContrast)=O;
`
`Description
`
`Sets the contrast adjustment of the device.
`
`This must be in the range of-100 to +100 or EContrastAuto. May leave with KErrNotSupported ifthe
`specified contrast value is out of range.
`
`Required contrast value. See TCameralnfo::iContrastSupported
`
`Parameters
`
`Tint aContrast
`
`Return value
`
`void
`
`Contrast()
`
`virtual Tint Contrast() const=O;
`
`Description
`
`Gets the currently set contrast value.
`
`Return value
`
`The currently set contrast value.
`
`SetBrightnessL()
`
`virtual void SetBrightnessL(Tint aBrightness)=O;
`
`https:/lweb.a rchive .org/web/20080208053134/http:/www.symbian.com :SO/developer/tech lib/vB.1 adocs/doc _sou rce/reference/reference-cpp/N 1 0256/. . .
`
`6124
`
`Page 6 of 24
`
`
`
`7/19/2018
`
`Description
`
`CCamera in Multimedia ECam
`
`Sets the brightness adjustment of the device.
`
`No effect if this is not supported, see TCameralnfo::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 aBrigh tness
`
`The required brightness adjustment.
`
`Return value
`
`void
`
`Brightness()
`
`virtual Ti n t Brightness() const=O ;
`
`Description
`
`Gets the currently set brightness adjustment value.
`
`Return value
`
`The currently set brightness adjustment value.
`
`SetFlashL ()
`
`virtual void SetFlashL(TFlash aFlash=EFlashNone)=O;
`
`Description
`
`Sets the flash mode.
`
`No effect if this is not supported, see TCamerainfo: : iFlashModesSuP.P.Orted.
`
`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/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1adocs/doc_source/reference/reference-cpp/N10256/...
`
`7124
`
`Page 7 of 24
`
`
`
`7/19/2018
`Flash()
`
`CCamera in Multimedia ECam
`
`virtual TFlash Flash() const=O ;
`
`Description
`
`Gets the currently set flash mode.
`
`Retu rn value
`
`TFlash
`
`The currently set flash mode.
`
`SetExposureL ()
`
`virtual void SetExposureL(TExposure aExposure=EEx posureAuto)=O ;
`
`Description
`
`Sets the exposure adjustment of the device.
`
`No effect if this is not supported, see Cameralnfo: :iExposureModesSupported.
`
`May leave with KErrNotSupported if the specified exposure adjustment is invalid.
`
`Parameters
`
`TExP.osure aExposure
`
`The required exposure adjustment.
`
`Return value
`
`void
`
`Exposure( )
`
`virtual TExposure Exposure() const=O;
`
`Description
`
`Gets the currently set exposure setting value.
`
`Return value
`
`The currently set exposure setting value.
`
`SetWhiteBalanceL()
`
`virtual void SetWhiteBalanceL(TWhi t eBalance aWhiteBalance=EWBAuto) = O;
`
`https://web .archive.org/web/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1 adocs/doc _ source/reference/reference-cpp/N 10256/.. .
`
`8/24
`
`Page 8 of 24
`
`
`
`7/19/2018
`
`Description
`
`CCamera in Multimedia ECam
`
`Sets the white balance adjustment of the device.
`
`No effect if this is not supported , see TCamerainfo : : iWhiteBalanceModesSui:rn.Q~.tfil!.
`
`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=O ;
`
`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)=O;
`
`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/20080208053134/http:/www.symbian.com:BO/developer/techli b/v8 .1adocs/doc_source/reference/reference-cpp/N10256/...
`
`9/24
`
`Page 9 of 24
`
`
`
`7/1 9/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 &aWi ndow , TRect &aScreenRect, TRect &aCl ipRect)=O ;
`
`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.arch ive.org/web/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1 adocs/doc_ source/reference/reference-cpp/N10256/... 10/24
`
`Page 10 of 24
`
`
`
`7/19/20 18
`
`CCamera in Multimedia ECam
`
`v o id
`
`Leave codes
`
`May
`
`leave with KErrNotReady if PowerOn() hasn't been called successfully.
`
`St artViewFinderBitmapsL()
`
`virtual void StartViewFinderBitmapsL (TSize &aSize)=O;
`
`Description
`
`Starts transfer of view finder data.
`
`Bitmaps are returned by MCameraObserver: : ViewFinderFrameReadyJ,)_.
`
`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 , TRe ct &aClipRe ct)=O;
`
`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
`
`~ &aSize
`
`TRect
`&aClipRect
`
`Return value
`
`On return, the size used.
`
`Required clip rectangle. May be modified if, for example, the camera only supports
`certain byte alignments.
`
`https://web.archive.org/web/20080208053134/http:/www.symbian.com:80/developer/techl ib/v8.1 adocs/doc _ source/reference/reference-cpp/N 10256/...
`
`11 /24
`
`Page 11 of 24
`
`
`
`7/19/2018
`
`CCamera in Multimedia ECam
`
`void
`
`Leave codes
`
`May
`
`leave with KErrlnUse if Reserve() hasn't been called successfully, or KErrNotReady if PowerOn()
`hasn't been called successfully.
`
`StopViewFinder ()
`
`virtual void StopViewFinder()=O;
`
`Description
`
`Stops transfer of view finder data to the screen.
`
`Return value
`
`void
`
`ViewFinderActive()
`
`virtual TBool ViewFinderActive() const=O;
`
`Description
`
`Queries whether the view finder is active.
`
`Return value
`
`ET rue if the view finder is active. EFalse if the view finder is not active.
`
`SetViewFinderMirrorL()
`
`virtual void SetViewFinderMirrorL(TBool aMirror)=O;
`
`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:/lweb.archive.orgfweb/20080208053134/http :/www .symbian.com :BO/developer/tech lib/v8 .1 a doest doc_ sou reef reference/reference·cpp/N 1 0256/. . . 12/24
`
`Page 12 of 24
`
`
`
`7/19/2018
`
`CCamera in Multimedia ECam
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotSupported.
`
`ViewFinderMirror()
`
`v irtual TBool ViewFinderMirror() const=O;
`
`Description
`
`Gets whether view finder mirroring is active.
`
`Return value
`
`ETrue if mirroring is set, EFalse if mirroring is not set.
`
`PrepareimageCaptureL()
`
`virtual void PrepareimageCaptureL(TForrnat aimageFormat , Tint aSizeindex)=O;
`
`Description
`
`Performs setup and allocation of memory.
`
`Called prior to calling ~P.tureirnag~U- to keep the latency of that function to a minimum.
`
`Needs to be called only once for multiple CaP.tureimagg__(J_ calls. May leave with KErrNotSupported or
`KErrNoMemory or KErrlnUse or KErrNotReady.
`
`The specified image format must be one of the formats supported (see
`TCarnerainfo :: iirnageForrnatsSUP.P.Orted).
`
`The specified size index must be in the range of 0 to TCarnera i nfo :: iNurnirnageSizesSuP.p....Q..Il.fil!-1
`inclusive.
`
`Parameters
`
`TForrnat airnageForrnat
`
`The image format.
`
`Tint aSizeindex
`
`Size index.
`
`Return value
`
`void
`
`Leave codes
`
`https://web.archive.org/web/20060206053134/http:/www.symbian.com:80/developerltechlib/v6.1 adocsldoc_ source/reference/reference-cpp/N 102561. . . 13124
`
`Page 13 of 24
`
`
`
`7/19/2018
`
`May
`
`CCamera in Multimedia ECam
`
`leave with KErrNotSupported, KErrNoMemory, or KErrNotReady if PowerOn() hasn't been called
`successfully.
`
`PrepareimageCaptureL()
`
`virtual void PrepareimageCaptureL(TFormat almageFormat, Tlnt aSizeindex, const
`TRect &aClipRect)=O;
`
`Description
`
`Performs setup and allocation of memory and clips the image to the specified rectangle.
`
`No effect unless TCameralnfo::ilmageClippingSupported 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
`~Rtureimag~_J)_ calls. May leave with KErrNotSupported or KErrNoMemory.
`
`The specified image format must be one of the formats supported (see
`TCameralnfo : : iimageFormatsSuRROrted).
`
`The specified size index must be in the range of 0 to TCamerainfo: : iNumi mageSizesSuRROrted-1
`inclusive.
`
`Parameters
`
`TFormat almageFormat
`
`The image format.
`
`Tlnt aSizeindex
`
`Size index.
`
`const TRect &aClipRect
`
`The rectangle to which the image is to be clipped.
`
`Return value
`
`void
`
`Leave codes
`
`May
`
`leave with KErrNotSupported, KErrNoMemory, KErrlnUse if Reserve() hasn't been called
`successfully, or KErrNotReady if PowerOn() hasn't been called successfully.
`
`Capture Image ()
`
`virtual void Capturelmage()=O ;
`
`Description
`
`Asynchronously performs still image capture.
`
`Calls MCameraObserver : : Imag~y_()_ when complete.
`
`https://web.archive.org/web/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1 adocs/doc_ source/reference/reference-cpp/N 10256/... 14/24
`
`Page 14 of 24
`
`
`
`7/19/2018
`
`CCamera in Multimedia ECam
`
`Return value
`
`void
`
`CancelCaptureimage()
`
`virtual void CancelCaptureimage()=O;
`
`Description
`
`Cancels the asynchronous still image capture.
`
`Return value
`
`void
`
`EnumerateCaptureSizes()
`
`virtual void EnumerateCaptureSizes(TSize &aSize, Tint aSizeindex, TFormat
`aFormat) const=O;
`
`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 : : iNumimageSizesSuP.p~- 1 inclusive.
`
`Parameters
`
`~ &aSize
`
`Image size.
`
`Tint aSizeindex
`
`Size index.
`
`TFormat aFormat
`
`The image format.
`
`Return value
`
`void
`
`PrepareVideoCaptureL()
`
`virtual void PrepareVideoCaptureL(TFormat aFormat, Tint aSizeindex , Tint
`aRateindex , Tint aBuffersToUse , Tint aFramesPerBuffer) =O;
`
`Description
`
`Prepares for video capture.
`
`https://web.archive.org/web/20080208053134/http:/www.symbian.com :80/developer/techlib/v8.1 adocs/doc _ source/reference/reference-cpp/N 10256/... 15/24
`
`Page 15 of 24
`
`
`
`7/19/201 B
`
`CCamera in Multimedia ECam
`Performs setup and allocation of memory prior to calling StartVideoCaP.ture (.)_ 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: : i VideoFrameFormatsSUP.P.Orted).
`
`Size index must be in the range 0 to
`TCamerainfo: : iNumVideoFrameSizesSUP.P.Orted-1 inclusive.
`
`The rate must be in the range 0 to
`TCamerainfo: : iNumVideoFrameRatesSUP.P.Orted-1 inclusive.
`
`Tint
`aBuf fersToUse
`
`The number of discrete buffers to use.
`
`Tint
`aFramesPerBuffer How large the buffers are to be. Must be less than or eq ual to
`TCamerainfo: : iMaxFramesPerBufferSUP.P.Orted. One buffer is returned to
`MCameraObserver : : FrameBufferReady_(J_ 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
`aRateinde x, Tint aBuffersToUse , Tint aFramesPerBuffer , const TRect
`&aClipRect) =O ;
`
`Description
`
`Prepares for video capture and clips the frames to the given rectangle.
`
`Performs setup and allocation of memory prior to calling StartVideoCaP.ture (.)_ to keep the latency of that
`function to a minimum.
`
`May leave with KErrNotSupported or KErrNoMemory.
`
`Parameters
`
`TFormat aFormat
`
`https ://web.archive.org/web/200B020B053134/http:/www.symbian.com:BO/developer/techlib/vB.1 adocs/doc_ source/reference/reference-cpp/N 10256/.. . 16/24
`
`Page 16 of 24
`
`
`
`7/19/2018
`
`CCamera in Multimedia ECam
`Format must be one of the video frame formats supported (see
`TCamerainfo : : iVideoFrameFormatssui:rnorted).
`
`Tint aSizeindex
`
`Tint aRateindex
`
`Size index must be in the range 0 to
`TCamera in fo :: iNumVideoFrameSizesSU!?P.Q.tl~-1 inclusive.
`
`The rate must be in the range 0 to
`TCamerainfo : : iNumVideoFrameRatesSUP.P.Orted-1 inclusive.
`
`Tint
`aBuf f ersToUse
`
`The number of discrete buffers to use.
`
`Tint
`aFramesPerBuffer How large the buffers are to be. Must be less than or equal to
`TCamerai n fo :: iMaxFramesPerBufferSUP.P.Orted. 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, KErrlnUse if Reserve() hasn't been called
`successfully, or KErrNotReady if PowerOn() hasn't been called successfully.
`
`StartVideoCapture()
`
`virtual void StartVideoCapture () =O ;
`
`Description
`
`Starts capturing video.
`
`Calls MCameraObserver : : FrameBufferReady_(_)_ when each buffer has been filled with the required
`number of frames, as set by PreP.areVideoCaP.tureL (.)_.
`
`Return value
`
`void
`
`StopVideoCapture()
`
`virtual void StopVideoCapture() = O;
`
`Description
`
`https:l/web.archive.orglweb/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1 adocs/doc _source/reference/reference-cpp/N 10256/... 17 /24
`
`Page 17 of 24
`
`
`
`7/19/20 18
`
`CCamera in Multimedia ECam
`
`Stops video capture.
`
`Return value
`
`void
`
`VideoCaptureActive()
`
`virtual TBool VideoCaptureActive () const=O ;
`
`Description
`
`Tests whether video capture is active.
`
`Return value
`
`ETrue if video capture is active. EFalse if video capture is not active
`
`EnumerateVideoFrameSizes()
`
`virtual void EnumerateVideoFrameSizes(TSize &aSize, Tint aSizeindex, TFormat
`aFormat) const=O ;
`
`Description
`
`Enumerates through the available video frame sizes, based on the specified size index and format.
`
`Parameters
`
`~
`&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
`aSizei ndex Size index. Must be in the range 0 to
`TCamerainfo :: iNumVideoFrameSizesSugp~-1 inclusive
`
`TFormat
`a Format
`
`Image format.
`
`Return value
`
`void
`
`EnumerateVideoFrameRates()
`
`virtual void EnumerateVideoFrarneRates(TReal32 &aRate, Tint aRateindex, TFormat
`aFormat, Tint aSizeindex, TExposure aExp osure=EExposureAuto) const=O;
`
`Description
`
`https ://web.archive.org/web/20080208053134/http:/www.symbian.com :80/developer/techlib/vB.1adocs/doc_source/reference/reference-cpp/N10256/... 18/24
`
`Page 18 of 24
`
`
`
`7/19/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.
`
`Ti nt
`aRa te Index The rate index. Must be in the range 0 to
`TCamerainfo : : iNumVideoFrameRatesSum1orted-1 inclusive.
`
`TFormat
`a Format
`
`The format.
`
`Tint
`aSizeindex The size index.
`
`TE xp~
`a Exposure The exposure mode.
`
`Return value
`
`void
`
`GetFrameSize ()
`
`virtual void GetFrameSize(TSize &aSize) const=O;
`
`Description
`
`Gets the frame size currently in use.
`
`Parameters
`
`TSize &aSize
`
`The frame size currently in use.
`
`Return value
`
`vo i d
`
`FrameRa te ()
`
`virtual TReal32 FrameRate() const=O;
`
`Description
`
`Gets the frame rate currently in use.
`
`https ://web.archive.orglweb/20080208053134/http:/www.symbian.com:80/developer/techlib/v8.1 adocs/doc_ source/reference/reference-cpp/N 10256/... 19/24
`
`Page 19 of 24
`
`
`
`7/19/2018
`
`Return value
`
`CCamera in Multimedia ECam
`
`TReal32
`
`The frame rate currently in use.
`
`BuffersinUse ()
`
`virtual Tint BuffersinUse() const=O;
`
`Description
`
`Gets the number of buffers currently in use.
`
`Return value
`
`The number of buffers currently in use.
`
`FramesPerBuffer()
`
`virtual Tint FramesPerBuffer() const=O;
`
`Description
`
`Gets the number of frames per buffer currently in use.
`
`Return value
`
`The number of frames per buffer currently in use.
`
`SetJpegQuality()
`
`virtual void SetJpegQuality(Tint aQuality)~O;
`
`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:l/web.archive.org/web!20080208053134/http:/www.symbian.com:80/developer/techli b/v8. 1 adocs/doc _ source/reference/reference·cpplN 1 02561. . . 20/24
`
`Page 20 of 24
`
`
`
`7/19/2018
`JpegQuali ty ()
`
`CCamera in Multimedia ECam
`
`virtual Tint JpegQuality() const~O;
`
`Description
`
`Gets the currently set jpeg quality value.
`
`Returns 0 if not supported.
`
`Return value
`
`The currently set jpeg quality value.
`
`Custominterface()
`
`virtual TAny *Custominterface(TUid ainterface)=O;
`
`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
`
`En um TForma t
`
`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.
`
`EFormatMonochrorne
`
`8 bit grayscale values, O=black, 255=white.
`
`https:l/web.arch ive .org/web/20080208053134/http:/www.symbian.com:80/developer/tech liblvB. 1 adocs/doc _ source/reference/reference~cpp/N 1 0256/. . . 21 /24
`
`Page 21 of 24
`
`
`
`711912018
`
`CCamera in Multimedia ECam
`
`EFormatl6bitRGB444
`
`EFormat16BitRGB565
`
`EFormat32BitRGB888
`
`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.
`
`EFormatJpeg
`
`EFormatExif
`
`JFIF JPEG.
`
`EXIF JPEG
`
`EFormatFbsBitmapColor4K
`
`CFbsBitmap object with display mode EColor4K.
`
`EFormatFbsBitrnapColor64K
`
`CFbsBitmap object with display mode EColor64K.
`
`EFormatFbsBitmapColorl6M
`
`CFbsBitmap object with display mode EColor16M.
`
`EFormatUserDef ined
`
`Implementation dependent.
`
`EForrnatYUV420Interleaved
`
`4:2:0 format, 8 bits per sample, YOOY01Y1 OY11 UV.
`
`EFormatYUV420Planar
`
`EFormatYUV422
`
`4:2:0 format, 8 bits per sample, YOOY01Y02Y03 ... UO .. .VO ...
`
`4:2:2 format, 8 bits per sample, UYOVY1.
`
`EFormatYUV422Reversed
`
`4:2:2 format, 8 bits per sample, Y1VYOU.
`
`EFormatYUV444
`
`4:4:4 format, 8 bits per sample, YOOUOOVOO Y01 U01V01 ...
`
`EFormatYUV420SemiPlanar
`
`4:2:0 format, 8 bits per sample, YOOY01Y02Y03 ... UOVO ...
`
`Enum TContrast
`
`TContrast
`
`Description
`
`https ://web .archive .org/web/20080208053134/http:/www.symbia n. com :801 developer/tech I ibfvB. 1 adocs/doc _source/ref erence/reference-cpp/N 1 0256/. . . 22/24
`
`Page 22 of 24
`
`
`
`7/19/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
`
`EExposureNight
`
`Set exposure automatically. Default, always supported.
`
`https://web.archive. org/web/200802080531 34/http:/www. sym bia n.com: 80/d eveloper/tech I ib/vB. 1 adocs/doc _sou rce/reference/reference-cp p/N 1 0256/. . 23/24
`
`Page 23 of 24
`
`
`
`7/19/2018
`
`CCamera in Multimedia ECam
`Night-time selling for long exposures.
`
`EExposureBacklight
`
`Backlight setting for bright backgrounds.
`
`EExposureCenter
`
`Centered mode for ignoring surroundings.
`
`En um TWhi teBalance
`
`TWhiteBalance
`
`Description
`
`Specifies how the white balance is set.
`
`EWBAuto
`
`Set white balance automatically. Default, always supported.
`
`EWBDaylight
`
`Normal daylight.
`
`EWBCloudy
`
`Overcast daylight.
`
`EWBTungsten
`
`Tungsten filament lighting.
`
`EWBFluorescent
`
`Fluorescent tube lighting
`
`EWBFlash
`
`Flash lighting.
`
`Copyright ©2005 Symbian Ltd.
`
`unknown-build-id
`
`https ://web.archive.orglweb/20080208053134/http:/www.sym bian. com:BO/developer/techlib/vB. 1 adocs/doc _sou rce/reference/reference-cpp/N 1 0256/. . . 24/24
`
`Page 24 of 24
`
`