CCamera::CCameraImageProcessing Class Reference

class CCamera::CCameraImageProcessing : public CBase

This class is used to perform image processing operations on the camera. These include brightness, contrast, gamma, hue, sharpness and saturation adjustments. The client is also able to perform simple image transformations like cropping, rotation, mirroring, scaling, noise reduction and glare reduction. . When an operation selection is complete, all clients are notified with the respective event UID.

As often cameras may support only a subset of discrete values of the allowed range, the API allows the client to retrieve those and use them explicitly.

Note:

This class is not intended for sub-classing and used to standardise existing varieties of implementations.

it is assumed that setting a new value for a transformations(transform, adjust, effect) effectively activates the transformations. Whilst for effects and adjustments there is always a value, transforms may have a dependency on other parameters and crop - requires setting of source rectangle. scale - will use setting of source rectangle, and the magnification factor is determined by the source rectangle and the output size. This is always magnification. if a value is set, it is assumed to be a scaling factor multiplied by KECamFineResolutionFactor and set to integer. mirror - values of TMirror type. rotation - the angle in degrees. noise reduction - TNoiseReduction. glare removal - TGlareReduction.

Example
        // Lets assume that an application would need to check whether gamma correction is 
		// supported on a particular platform. After obtaining a valid pointer to the interface, 
		// it would call GetSupportedTransformationsL() to obtain the list of the supported 
		// transformations and check whether KUidECamEventImageProcessingAdjustGamma
		// is in the list. If it is then call SetTranformationValue(KUidECamEventImageProcessingAdjustGamma, 200);
		// to set the new value. A notification will be generated to the client to indicate success.

		RArray<TUid> suppTransforms; // array of supported transformations
		CleanupClosePushL(suppTransforms);

		imageProcess->GetSupportedTransformationsL(suppTransfUids);
		 ...
		// if the gamma is supported 
		TInt gammaCorrection = 200; // gamma correction of 2.0
		imageProcess->SetTranformationValue(KUidECamEventImageProcessingAdjustGamma, gammaCorrection);
		...
		// pop stack to close the RArray
       
Note:

If the class methods leave, the output type parameter value is not guaranteed to be valid.

Inherits from

  • CCamera::CCameraImageProcessing
Public Member Functions
~CCameraImageProcessing ()
IMPORT_C void CancelColorAccentL ()
IMPORT_C void CancelColorSwappingL ()
IMPORT_C CCameraImageProcessing * CreateL ( CCamera &, MImplementationFactory &)
IMPORT_C void GetActiveTransformSequenceL ( RArray < TUid > &)
IMPORT_C void GetActiveTransformationsL ( RArray < TUid > &)
IMPORT_C void GetColorAccentCapabilitiesL ( TInt , TColorOperationCapabilities &)
IMPORT_C void GetColorAccentEntryL ( TInt , TColorOperationEntry &)
IMPORT_C void GetColorSwapCapabilitiesL ( TInt , TColorOperationCapabilities &)
IMPORT_C void GetColorSwapEntryL ( TInt , TColorOperationEntry &)
IMPORT_C void GetConcurrentColorAccentSupportedL ( TInt &)
IMPORT_C void GetConcurrentColorSwappingsSupportedL ( TInt &)
IMPORT_C void GetCurrentRelativeOrientationOptionsL ( TOrientationReference &, TRelativeRotation &, TRelativeMirror &, TRelativeFlipping &)
IMPORT_C void GetSourceRect ( TRect &)
IMPORT_C void GetSupportedRelativeOrientationOptionsL ( TOrientationReference , TUint &, TUint &, TUint &)
IMPORT_C void GetSupportedTransformationsL ( RArray < TUid > &)
IMPORT_C void GetTransformationSupportedValuesL ( TUid , RArray < TInt > &, TValueInfo &)
IMPORT_C TInt GetTransformationValue ( TUid , TInt &)
IMPORT_C CCameraImageProcessing * NewL ( CCamera &)
IMPORT_C void RemoveColorAccentEntryL ( TInt )
IMPORT_C void RemoveColorSwapEntryL ( TInt )
IMPORT_C void SetActiveTransformSequenceL ( RArray < TUid > &)
IMPORT_C void SetColorAccentEntryL ( TInt , const TColorOperationEntry &)
IMPORT_C void SetColorSwapEntryL ( TInt , const TColorOperationEntry &)
IMPORT_C void SetRelativeOrientationOptionsL ( TOrientationReference , TRelativeRotation , TRelativeMirror , TRelativeFlipping )
IMPORT_C void SetSourceRect (const TRect &)
IMPORT_C void SetTransformationValue ( TUid , TInt )
IMPORT_C void StartColorAccentL ()
IMPORT_C void StartColorSwappingL ()
IMPORT_C TInt TransformationValue ( TUid )
Private Member Functions
CCameraImageProcessing ( CCamera &)
void ConstructL ()
void ConstructL (const MImplementationFactory &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Public Member Enumerations
enum TColorOperationRepresentation { ERepresentationNone  = 0x00, ERepresentationSingle  = 0x01, ERepresentationMultiple  = 0x02 }
enum TColorOperationRgbGroupingMode { ERgbGroupingNone  = 0x00, ERgbGroupingFixed  = 0x01, ERgbGroupingAutomatic  = 0x02, ERgbGroupingSignificantBits  = 0x04, ERgbGroupingUniform  = 0x08 }
enum TContrastEnhancement { EContrastEnhancementNone  = 0x00, EContrastEnhancementSwitchOff  = 0x01, EContrastEnhancementManualSwitchOn  = 0x02, EContrastEnhancementSwitchAuto  = 0x04 }
enum TEffect {
EEffectNone  = 0x00000000, EEffectNegative  = 0x00000001, EEffectMonochrome  = 0x00000002, EEffectSolarize  = 0x00000004, EEffectSepia  = 0x00000008, EEffectEmboss  = 0x00000010, EEffectRedEyeReduction  = 0x00000020, EEffectVivid  = 0x00000040, EEffectNeutral  = 0x00000080, EEffectLowSharpening  = 0x00000100, EEffectNatural  = 0x00000200, EEffectCine  = 0x00000400, EEffectOldFilm  = 0x00000800, EEffectColorSwap  = 0x00001000, EEffectColorAccent  = 0x00002000
}
enum TGamma { EGammaAuto  = KMinTInt }
enum TGlareReduction { EGlareReductionNone  = 0x0000, EGlareReductionBasic  = 0x0001 }
enum THue { EHueAuto  = KMinTInt }
enum TMirror { EMirrorNone  = 0x00000000, EMirrorHorizontal  = 0x00000001, EMirrorVertical  = 0x00000002, EMirrorBoth  = 0x00000003 }
enum TNoiseReduction { ENoiseReductionNone  = 0x0000, ENoiseReductionBasic  = 0x0001 }
enum TOrientationReference { EOrientationReferenceCameraSensorOrientation , EOrientationReferenceTiltOrientation }
enum TRedEyeReduction { ERedEyeReductionNone  = 0x00, ERedEyeReductionSwitchOff  = 0x01, ERedEyeReductionManualSwitchOn  = 0x02, ERedEyeReductionSwitchAuto  = 0x04 }
enum TRelativeFlipping { ERelativeFlippingNone  = 0x00, ERelativeFlippingHorizontal  = 0x10, ERelativeFlippingVertical  = 0x20 }
enum TRelativeMirror { ERelativeMirrorNone  = 0x00, ERelativeMirrorHorizontalAxis  = 0x10, ERelativeMirrorVerticalAxis  = 0x20 }
enum TRelativeRotation { ERelativeRotation0Degrees  = 0x00, ERelativeRotation90DegreesClockwise  = 0x01, ERelativeRotation180DegreesClockwise  = 0x02, ERelativeRotation270DegreesClockwise  = 0x04 }
enum TSaturation { ESaturationAuto  = KMinTInt }
enum TSharpness { ESharpnessAuto  = KMinTInt }
Private Attributes
MCameraImageProcessing * iImpl
MCameraImageProcessing2 * iImpl2
MCameraImageProcessing3 * iImpl3
CCamera & iOwner

Constructor & Destructor Documentation

CCameraImageProcessing(CCamera &)

CCameraImageProcessing ( CCamera & aOwner ) [private]

Parameters

CCamera & aOwner a reference to a CCamera object providing the settings.

~CCameraImageProcessing()

IMPORT_C ~CCameraImageProcessing ( )

Destructor

Member Functions Documentation

CancelColorAccentL()

IMPORT_C void CancelColorAccentL ( )

Cancel the color accent process.

leave
May leave as a result of some error.
Note:

Used to cancel the color accent process which might have been just started. If the issued StartColorAccentL() gets cancelled, its event should report KErrCancel.

CancelColorSwappingL()

IMPORT_C void CancelColorSwappingL ( )

Cancel the color swapping process.

leave
May leave as a result of some error.
Note:

Used to cancel the color swapping process which might have been just started. If the issued StartColorSwappingL() gets cancelled, its event should report KErrCancel.

ConstructL()

void ConstructL ( ) [private]

CCameraImageProcessing second phase constructor Function used to initialise internal state of the object. Uses reference to the camera to retrieve Camera image processing interface pointer.

leave
KErrNoMemory Out of memory.

ConstructL(const MImplementationFactory &)

void ConstructL ( const MImplementationFactory & aImplFactory ) [private]

CCameraImageProcessing second phase constructor

Function used to initialise internal state of the object specifically for any one of the following:- VideoCapture and Viewfinder. This may be used in other possible cases as well.

leave
KErrNoMemory Out of memory; or any other error code as well.
Note:

This method is supposed to be used by this class only.

Parameters

const MImplementationFactory & aImplFactory A constant reference to the MImplementationFactory derived object.

CreateL(CCamera &, MImplementationFactory &)

IMPORT_C CCameraImageProcessing * CreateL ( CCamera & aCamera,
MImplementationFactory & aImplFactory
) [static]

Factory function for creating the CCameraImageProcessing object specifically for any one of the following:- VideoCapture and Viewfinder. This may be used in other possible cases as well.

The other factory method CCamera::CCameraImageProcessing::NewL is assumed for being operated on image captures only.

leave
KErrNoMemory Out of memory.
leave
KErrExtensionNotSupported When NewL/NewDuplicateL used instead of New2L/NewDuplicate2L.
Note:

This method is supposed to be used by internal ECAM components only.

Parameters

CCamera & aCamera A reference to a CCamera object providing the settings.
MImplementationFactory & aImplFactory A reference to the MImplementationFactory derived object.

GetActiveTransformSequenceL(RArray< TUid > &)

IMPORT_C void GetActiveTransformSequenceL ( RArray < TUid > & aTransformSequence ) const

Get the sequence of all active transforms, ordered in order of execution.

leave
KErrNoMemory Out of memory.

Parameters

RArray < TUid > & aTransformSequence an empty array to be populated with sequence of transform UIDs, where transform entries with smaller index are executed earlier.

GetActiveTransformationsL(RArray< TUid > &)

IMPORT_C void GetActiveTransformationsL ( RArray < TUid > & aTransformations ) const

Get currently active transformations on the camera.

leave
KErrNoMemory Out of memory.

Parameters

RArray < TUid > & aTransformations An empty RArray of TUids to store the UIDs of the supported transformations.

GetColorAccentCapabilitiesL(TInt, TColorOperationCapabilities &)

IMPORT_C void GetColorAccentCapabilitiesL ( TInt aIndex,
TColorOperationCapabilities & aColorAccentCapabilities
) const

Retrieves the color accent capabilites per entry, if different entries have different capabilities otherwise the same capabilities retrieved for a particular entry can be assumed to be valid for every entry

leave
May leave as a result of some error.

Parameters

TInt aIndex This is a value from 0 to numOfSimultaneousColorAccent -1. Color accent capabilities specific to a particular entry are retrieved. If uniform capability exists for every entry, then this method need not be called per entry.
TColorOperationCapabilities & aColorAccentCapabilities This retrieves the color accent capabilities.

GetColorAccentEntryL(TInt, TColorOperationEntry &)

IMPORT_C void GetColorAccentEntryL ( TInt aIndex,
TColorOperationEntry & aColorAccentParameters
) const

Get the details of the color accent entry corresponding to the given index

leave
May leave as a result of some error.

Parameters

TInt aIndex This gives the color accent entry whose information has to be retrieved.
TColorOperationEntry & aColorAccentParameters This contains the parameters currently being used by the color accent operation for the given entry. The parameters defined for target colors in TColorOperationEntry are redundant for color accent.

GetColorSwapCapabilitiesL(TInt, TColorOperationCapabilities &)

IMPORT_C void GetColorSwapCapabilitiesL ( TInt aIndex,
TColorOperationCapabilities & aColorSwapCapabilities
) const

Retrieves the color swapping capabilites per entry, if different entries have different capabilities otherwise the same capabilities retrieved for a particular entry can be assumed to be valid for every entry

leave
May leave as a result of some error.

Parameters

TInt aIndex This is a value from 0 to numOfSimultaneousColorSwappings -1. Color swapping capabilities specific to a particular entry are retrieved. If uniform capability exists for every entry, then this method need not be called per entry.
TColorOperationCapabilities & aColorSwapCapabilities This retrieves the color swap capabilities.

GetColorSwapEntryL(TInt, TColorOperationEntry &)

IMPORT_C void GetColorSwapEntryL ( TInt aIndex,
TColorOperationEntry & aColorSwapParameters
) const

Get the details of the color swap entry corresponding to the given index

leave
May leave as a result of some error.

Parameters

TInt aIndex This gives the color swapping entry whose information has to be retrieved.
TColorOperationEntry & aColorSwapParameters This contains the parameters currently being used by the color swapping operation for the given entry.

GetConcurrentColorAccentSupportedL(TInt &)

IMPORT_C void GetConcurrentColorAccentSupportedL ( TInt & aConcurrentColorAccentSupported ) const

Retrieves the maximum number of color entries on which simultaneous color accent process is possible.

leave
May leave as a result of some error.

Parameters

TInt & aConcurrentColorAccentSupported Retrieves the number of color entries on which simultaneous color accent process is possible. Retrieves 0 when color accent process is not supported.

GetConcurrentColorSwappingsSupportedL(TInt &)

IMPORT_C void GetConcurrentColorSwappingsSupportedL ( TInt & aConcurrentColorSwappingSupported ) const

Retrieves the maximum number of simultaneous color swapping possible.

leave
May leave as a result of some error.

Parameters

TInt & aConcurrentColorSwappingSupported Retrieves the number of simultaneous color swapping supported. Retrieves 0 when swapping feature is not supported.

GetCurrentRelativeOrientationOptionsL(TOrientationReference &, TRelativeRotation &, TRelativeMirror &, TRelativeFlipping &)

IMPORT_C void GetCurrentRelativeOrientationOptionsL ( TOrientationReference & aOrientationReference,
TRelativeRotation & aRelativeRotation,
TRelativeMirror & aRelativeMirror,
TRelativeFlipping & aRelativeFlipping
) const

Retrieves the options which is being used for the current orientation reference.

leave
May leave with any error code.

Parameters

TOrientationReference & aOrientationReference A TOrientationReference which is the current orientation reference being used.
TRelativeRotation & aRelativeRotation A TRelativeRotation which is the current relative rotation being used with aOrientationReference.
TRelativeMirror & aRelativeMirror A TRelativeMirror which is the current relative mirroring being used with aOrientationReference.
TRelativeFlipping & aRelativeFlipping A TRelativeFlipping which is the current relative flipping being used with aOrientationReference.

GetSourceRect(TRect &)

IMPORT_C void GetSourceRect ( TRect & aRect ) const

Get the source rectangle for KUidECamEventImageProcessingTransformScale or KUidECamEventImageProcessingTransformCrop. The coordinates should fall within the current image rectangle. The result is always a logical AND operation between the two rectangles.

Parameters

TRect & aRect a reference to TRect object to hold the current source rectangle coordinates. If it has not been set, the coordinates match these of the whole image.

GetSupportedRelativeOrientationOptionsL(TOrientationReference, TUint &, TUint &, TUint &)

IMPORT_C void GetSupportedRelativeOrientationOptionsL ( TOrientationReference aOrientationReference,
TUint & aSupportedRelativeRotation,
TUint & aSupportedRelativeMirroring,
TUint & aSupportedRelativeFlipping
) const

Retrieves the supported options for a particular orientation reference.

leave
May leave with any error code.

Parameters

TOrientationReference aOrientationReference A TOrientationReference for which supported relative custom orientation have to retrieved.
TUint & aSupportedRelativeRotation A bitfield which retrieves the supported TRelativeRotation for 'aOrientationReference'
TUint & aSupportedRelativeMirroring A bitfield which retrieves the supported TRelativeMirror for 'aOrientationReference'
TUint & aSupportedRelativeFlipping A bitfield which retrieves the supported TRelativeFlipping for 'aOrientationReference'

GetSupportedTransformationsL(RArray< TUid > &)

IMPORT_C void GetSupportedTransformationsL ( RArray < TUid > & aTransformations ) const

Get all transformations supported on the camera.

leave
KErrNoMemory Out of memory.

Parameters

RArray < TUid > & aTransformations An empty RArray of TUids to store the UIDs of the supported transformations.

GetTransformationSupportedValuesL(TUid, RArray< TInt > &, TValueInfo &)

IMPORT_C void GetTransformationSupportedValuesL ( TUid aTransformation,
RArray < TInt > & aValues,
TValueInfo & aInfo
) const

Get all values supported by an active transformation.

Note:

Depending on the value of aInfo parameter, same array of values may describe different set of values. When camera device doesn't support this, empty array may be returned and TValueInfo may be ENotActive; corresponding getter/setters for this feature should not be used in such a case.

If CCamera::New2L() or CCamera::NewDuplicate2L() is not used to create CCamera object, it is assumed that application is not prepared to receive extra added enum values for Effects. So, any extra enum value(unrecognised) passed from the implementation will be filtered at this point. To receive extra added enum values, application should rather use CCamera::New2L() or CCamera::NewDuplicate2L() to create camera object. In this case, application is assumed to be prepared to receive unrecognised enum values

leave
KErrNoMemory Out of memory.

Parameters

TUid aTransformation The UID of active transform for which values are requested.
RArray < TInt > & aValues An array of integers to represent the values for the requested transformation.
TValueInfo & aInfo Additional information describing the returned array of values.

GetTransformationValue(TUid, TInt &)

IMPORT_C TInt GetTransformationValue ( TUid aTransformation,
TInt & aTransformationValue
) const

Get the current value of a transformation

Note:

If CCamera::New2L() or CCamera::NewDuplicate2L() is not used to create CCamera object, it is assumed that application is not prepared to receive extra added enum values for Effects. So, any extra enum value (unrecognised) received from the implementation will be dropped and EEffectNone would be passed instead. To receive extra added enum values, application should rather use CCamera::New2L() or CCamera::NewDuplicate2L() to create camera object. In this case, application is assumed to be prepared to receive unrecognised enum values

Use this method instead of deprecated TInt TransformationValue(TUid aTransformation)

Parameters

TUid aTransformation The UID of the transformation
TInt & aTransformationValue Reference to the integer value of the tranformation.

NewL(CCamera &)

IMPORT_C CCameraImageProcessing * NewL ( CCamera & aCamera ) [static]

Factory function for creating the CCameraImageProcessing object. The created object is supposed to be meant for image captures only.

leave
KErrNoMemory Out of memory Or any other system-wide error code.
Note:

Clients using MCameraObserver are not recommended to use this extension class since they cannot handle events.

Parameters

CCamera & aCamera a reference to a CCamera object providing the settings.

RemoveColorAccentEntryL(TInt)

IMPORT_C void RemoveColorAccentEntryL ( TInt aIndex )

Removes the color accent entry corresponding to the given index

leave
KErrNotSupported if implementation is not present.
Note:

Triggers KUidECamEventCIPRemoveColorAccentEntry to all MCameraObserver2 clients of the camera. HandleEvent is used to report the result or any possible error. TECAMEvent2 class should be used in order to provide the entry no. of the color being removed.

Parameters

TInt aIndex This gives the color accent entry to be removed.

RemoveColorSwapEntryL(TInt)

IMPORT_C void RemoveColorSwapEntryL ( TInt aIndex )

Removes the color swap entry corresponding to the given index

leave
KErrNotSupported if implementation is not present.
Note:

Triggers KUidECamEventCIPRemoveColorSwapEntry to all MCameraObserver2 clients of the camera. HandleEvent is used to report the result or any possible error. TECAMEvent2 class should be used in order to provide the entry no. of the color being removed.

Parameters

TInt aIndex This gives the color swapping entry to be removed.

SetActiveTransformSequenceL(RArray< TUid > &)

IMPORT_C void SetActiveTransformSequenceL ( RArray < TUid > & aTransformSequence )

Set the order of all active transform in terms of execution. The transforms with smaller index are executed earlier.

leave
KErrNoMemory Out of memory.

Parameters

RArray < TUid > & aTransformSequence The list of ordered transforms, where transforms with smaller index are executed earlier.

SetColorAccentEntryL(TInt, const TColorOperationEntry &)

IMPORT_C void SetColorAccentEntryL ( TInt aIndex,
const TColorOperationEntry & aColorAccentParameters
)

Set the color accent entries

leave
KErrNotSupported if implementation is not present.
Note:

Triggers KUidECamEventCIPSetColorAccentEntry to all MCameraObserver2 clients of the camera. HandleEvent is used to report the result or any possible error. TECAMEvent2 class should be used in order to provide the entry no. of the color being set.

Parameters

TInt aIndex This is a value from 0 to numOfSimultaneousColorAccent -1. This helps in managing the limited no. of simultaneous color accent. If parameters are already set for the given entry, then it's up to the implementation to replace the existing one or discard it.
const TColorOperationEntry & aColorAccentParameters The parameters necessary to define clearly the color accent operation for the given entry. iEntryStatus has to be updated by the implementation as per the result of the setting operation. So, iEntryStatus value is redundant at this point. The parameters defined for target colors in TColorOperationEntry are redundant for color accent.

SetColorSwapEntryL(TInt, const TColorOperationEntry &)

IMPORT_C void SetColorSwapEntryL ( TInt aIndex,
const TColorOperationEntry & aColorSwapParameters
)

Set the color swap entries

leave
KErrNotSupported if implementation is not present.
Note:

Triggers KUidECamEventCIPSetColorSwapEntry to all MCameraObserver2 clients of the camera. HandleEvent is used to report the result or any possible error. TECAMEvent2 class should be used in order to provide the entry no. of the color being set.

Parameters

TInt aIndex This is a value from 0 to numOfSimultaneousColorSwappings -1. This helps in managing the limited no. of simultaneous color swaps. If parameters are already set for the given entry, then it's up to the implementation to replace the existing one or discard it.
const TColorOperationEntry & aColorSwapParameters The parameters necessary to define clearly the color swapping operation for the given entry. iEntryStatus has to be updated by the implementation as per the result of the setting operation. So, iEntryStatus value is redundant at this point.

SetRelativeOrientationOptionsL(TOrientationReference, TRelativeRotation, TRelativeMirror, TRelativeFlipping)

IMPORT_C void SetRelativeOrientationOptionsL ( TOrientationReference aOrientationReference,
TRelativeRotation aRelativeRotation,
TRelativeMirror aRelativeMirror,
TRelativeFlipping aRelativeFlipping
)

Sets the options which would be used with the desired orientation reference.

leave
KErrNotSupported if the implementation of this method is not present.
Note:

Event KUidECamEventImageProcessingTransformRelativeOrientation is used to notify clients about relative custom orientation setting operation.

If the current picture orientation (Refer CCamera::CCameraAdvancedSettings::TPictureOrientation ) is not possible to be achieved with the relative custom orientation, event KUidECamEventPictureOrientationUnachievable will be notified to the client.

If the dimension of the image gets changed by the desired relative orientation options, notification KUidECamEventCameraSettingImageSize will be notified to the client.

Parameters

TOrientationReference aOrientationReference The desired TOrientationReference.
TRelativeRotation aRelativeRotation The desired TRelativeRotation which would be used with 'aOrientationReference'.
TRelativeMirror aRelativeMirror
TRelativeFlipping aRelativeFlipping

SetSourceRect(const TRect &)

IMPORT_C void SetSourceRect ( const TRect & aRect )

Set the source rectangle for KUidECamEventImageProcessingTransformScale or KUidECamEventImageProcessingTransformCrop. The coordinates should fall within the current image rectangle. The result is always a logical AND operation between the two rectangles.

Parameters

const TRect & aRect a reference to TRect object which describes the coordinates of the area of interest.

SetTransformationValue(TUid, TInt)

IMPORT_C void SetTransformationValue ( TUid aTransformation,
TInt aValue
)

Set new value for a transformation. A notification event with the transformation UID is sent to all clients. UIDs are in the form KUidECamEventImageProcessingXXXX.

Parameters

TUid aTransformation The UID of the transformation
TInt aValue The integer value of the tranformation.

StartColorAccentL()

IMPORT_C void StartColorAccentL ( )

Starts the color accent process after taking into account the color accent entries updated up to this point.

leave
KErrNotSupported if implementation is not present.
Note:

Triggers KUidECamEventCIPStartColorAccent to all MCameraObserver2 clients of the camera. HandleEvent is used to report the result or any possible error.

StartColorSwappingL()

IMPORT_C void StartColorSwappingL ( )

Starts the color swapping process after taking into account the color swap entries updated up to this point.

leave
KErrNotSupported if implementation is not present.
Note:

Triggers KUidECamEventCIPStartColorSwap to all MCameraObserver2 clients of the camera. HandleEvent is used to report the result or any possible error. One possible error case is when more than one entry describe the same color source. New ecam error KErrECamColorOperationConflict used in such a case.

TransformationValue(TUid)

IMPORT_C TInt TransformationValue ( TUid aTransformation ) const

Use TInt GetTransformationValue(TUid aTransformation, TInt& aTransformationValue);

Get the current value of a transformation

Note:

If CCamera::New2L() or CCamera::NewDuplicate2L() is not used to create CCamera object, it is assumed that application is not prepared to receive extra added enum values for Effects. So, any extra enum value (unrecognised) received from the implementation will be dropped and EEffectNone would be passed instead. To receive extra added enum values, application should rather use CCamera::New2L() or CCamera::NewDuplicate2L() to create camera object. In this case, application is assumed to be prepared to receive unrecognised enum values

Parameters

TUid aTransformation The UID of the transformation

Member Enumerations Documentation

Enum TColorOperationRepresentation

Used for color swap and color accent feature in TEffect. It describes whether the given source or target color represents itself or a group of color.

Enumerators

ERepresentationNone = 0x00

Feature is not supported

ERepresentationSingle = 0x01

The given color is uniquely represented

ERepresentationMultiple = 0x02

The given color represents a group of colors

Enum TColorOperationRgbGroupingMode

Used for color swap and color accent feature in TEffect. It describes the type of grouping for source and target colors when they represent a group of color.

Enumerators

ERgbGroupingNone = 0x00

Feature is not supported

ERgbGroupingFixed = 0x01

This means no neighbourhood colors are considered

ERgbGroupingAutomatic = 0x02

This means neighbourhood colors are to be automatically decided by the implementation or hardware

ERgbGroupingSignificantBits = 0x04

This means neighbourhood colors for source have to be decided by ignoring few starting bits. Used for source only

ERgbGroupingUniform = 0x08

This means colors in target are obtained as some uniform proportion using source. Used for target only

Enum TContrastEnhancement

Different types of contrast enhancement options. The enumeration list may be extended in future.

Enumerators

EContrastEnhancementNone = 0x00

Not Supported.

EContrastEnhancementSwitchOff = 0x01

Contrast Enhancement switched off.

EContrastEnhancementManualSwitchOn = 0x02

Contrast Enhacement switched On manually.

EContrastEnhancementSwitchAuto = 0x04

Contrast Enhancement in auto mode.

Enum TEffect

Settings for the supported effects

Enumerators

EEffectNone = 0x00000000

Effects off is default, always supported

EEffectNegative = 0x00000001

Negative visual effect.

EEffectMonochrome = 0x00000002

Black and white visual effect.

EEffectSolarize = 0x00000004

Solarization visual effect.

EEffectSepia = 0x00000008

Sepia visual effect.

EEffectEmboss = 0x00000010

Emboss visual effect.

EEffectRedEyeReduction = 0x00000020

Red eye glare reduction visual effect.

EEffectVivid = 0x00000040

Vivid colour visual effect.

EEffectNeutral = 0x00000080

Neutral colour visual effect.

EEffectLowSharpening = 0x00000100

Selective sharpening visual effect.

EEffectNatural = 0x00000200

Natural visual effect.

This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() .

EEffectCine = 0x00000400

Cine visual effect.

This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() .

EEffectOldFilm = 0x00000800

Old film visual effect.

This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() .

EEffectColorSwap = 0x00001000

Color swap visual effect.

This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() .

EEffectColorAccent = 0x00002000

Where a list of color can be kept as they are and the rest converted to gray.

This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() .

Enum TGamma

Gamma settings

Enumerators

EGammaAuto = KMinTInt

Sets the gamma adjustment automatically.

Enum TGlareReduction

Glare reduction settings

Enumerators

EGlareReductionNone = 0x0000

Default value. Glare reduction disabled.

EGlareReductionBasic = 0x0001

most basic glare reduction.

Enum THue

Hue Settings

Enumerators

EHueAuto = KMinTInt

Sets the hue adjustment automatically.

Enum TMirror

Mirror settings

Enumerators

EMirrorNone = 0x00000000

Default value. Mirroring is disabled.

EMirrorHorizontal = 0x00000001

Mirror along horizontal axis.

EMirrorVertical = 0x00000002

Mirror along vertical axis.

EMirrorBoth = 0x00000003

Mirror along horizontal and vertical axis.

Enum TNoiseReduction

Noise filter settings

Enumerators

ENoiseReductionNone = 0x0000

Default value. Noise reduction disabled.

ENoiseReductionBasic = 0x0001

most basic noise reduction.

Enum TOrientationReference

Used to provide different types of references for orientation of images retrieved. These references are the various means by the orientation of an image can be defined. Client needs to choose a particular TOrientationReference and specify any relative rotation, mirroring and flipping on top of it.

This enumeration has nothing to do with absolute rotation. Uid KUidECamEventImageProcessingTransformRotate is used for absolute rotation purposes.

The enumeration list may be extended in future.

Enumerators

EOrientationReferenceCameraSensorOrientation

The retrieved images will follow the camera sensor orientation. This orientation would be relative to the current screen mode as given by the reference screen.

EOrientationReferenceTiltOrientation

The retrieved images will get oriented as per the tilt sensor information. So,the orientation would be relative to the current screen mode as given by the reference screen.

Enum TRedEyeReduction

Different types of software-based red eye reduction options. The enumeration list may be extended in future.

Enumerators

ERedEyeReductionNone = 0x00

Not Supported.

ERedEyeReductionSwitchOff = 0x01

Software based Red Eye Reduction can be switched off(disabled).

ERedEyeReductionManualSwitchOn = 0x02

Software based Red Eye Reduction can be switched on (enabled).

ERedEyeReductionSwitchAuto = 0x04

Software based Red Eye Reduction can be put to auto mode.

Enum TRelativeFlipping

Used to describe the various relative flipping. The term 'relative' means that the flipping is applied after the image undergoes orientation as given by TOrientationReference.

The enumeration list may be extended in future.

Enumerators

ERelativeFlippingNone = 0x00

No flipping.

ERelativeFlippingHorizontal = 0x10

Used to flip an image horizontally. This is applied on top of orientation reference and is relative to current reference screen.

ERelativeFlippingVertical = 0x20

Used to flip an image vertically. This is applied on top of orientation reference and is relative to current reference screen.

Enum TRelativeMirror

Used to describe the various relative mirroring. The term 'relative' means that the mirroring is applied after the image undergoes orientation as given by TOrientationReference.

The enumeration list may be extended in future.

Enumerators

ERelativeMirrorNone = 0x00

No mirroring.

ERelativeMirrorHorizontalAxis = 0x10

Used to mirror an image about the horizontal axis. This is applied on top of orientation reference and is relative to current reference screen.

ERelativeMirrorVerticalAxis = 0x20

Used to mirror an image about the vertical axis. This is applied on top of orientation reference and is relative to current reference screen.

Enum TRelativeRotation

Used to describe the various relative rotation. The term 'relative' means that the rotation is applied after the image undergoes orientation as given by TOrientationReference.

The enumeration list may be extended in future.

Enumerators

ERelativeRotation0Degrees = 0x00

Zero degree Rotation applied on top of orientation reference and is relative to current reference screen.

ERelativeRotation90DegreesClockwise = 0x01

90 degree clockwise Rotation applied on top of orientation reference and is relative to current reference screen.

ERelativeRotation180DegreesClockwise = 0x02

180 degree clockwise Rotation applied on top of orientation reference and is relative to current reference screen.

ERelativeRotation270DegreesClockwise = 0x04

270 degree clockwise Rotation applied on top of orientation reference and is relative to current reference screen.

Enum TSaturation

Saturation Settings

Enumerators

ESaturationAuto = KMinTInt

Sets the saturation adjustment automatically.

Enum TSharpness

Sharpness Settings

Enumerators

ESharpnessAuto = KMinTInt

Sets the sharpness adjustment automatically.

Member Data Documentation

MCameraImageProcessing * iImpl

MCameraImageProcessing * iImpl [private]

MCameraImageProcessing2 * iImpl2

MCameraImageProcessing2 * iImpl2 [private]

MCameraImageProcessing3 * iImpl3

MCameraImageProcessing3 * iImpl3 [private]

CCamera & iOwner

CCamera & iOwner [private]