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 voidCancelColorAccentL()
IMPORT_C voidCancelColorSwappingL()
IMPORT_C CCameraImageProcessing *CreateL(CCamera &, MImplementationFactory &)
IMPORT_C voidGetActiveTransformSequenceL(RArray< TUid > &)
IMPORT_C voidGetActiveTransformationsL(RArray< TUid > &)
IMPORT_C voidGetColorAccentCapabilitiesL(TInt, TColorOperationCapabilities &)
IMPORT_C voidGetColorAccentEntryL(TInt, TColorOperationEntry &)
IMPORT_C voidGetColorSwapCapabilitiesL(TInt, TColorOperationCapabilities &)
IMPORT_C voidGetColorSwapEntryL(TInt, TColorOperationEntry &)
IMPORT_C voidGetConcurrentColorAccentSupportedL(TInt &)
IMPORT_C voidGetConcurrentColorSwappingsSupportedL(TInt &)
IMPORT_C voidGetCurrentRelativeOrientationOptionsL(TOrientationReference &, TRelativeRotation &, TRelativeMirror &, TRelativeFlipping &)
IMPORT_C voidGetSourceRect(TRect &)
IMPORT_C voidGetSupportedRelativeOrientationOptionsL(TOrientationReference, TUint &, TUint &, TUint &)
IMPORT_C voidGetSupportedTransformationsL(RArray< TUid > &)
IMPORT_C voidGetTransformationSupportedValuesL(TUid, RArray< TInt > &, TValueInfo &)
IMPORT_C TIntGetTransformationValue(TUid, TInt &)
IMPORT_C CCameraImageProcessing *NewL(CCamera &)
IMPORT_C voidRemoveColorAccentEntryL(TInt)
IMPORT_C voidRemoveColorSwapEntryL(TInt)
IMPORT_C voidSetActiveTransformSequenceL(RArray< TUid > &)
IMPORT_C voidSetColorAccentEntryL(TInt, const TColorOperationEntry &)
IMPORT_C voidSetColorSwapEntryL(TInt, const TColorOperationEntry &)
IMPORT_C voidSetRelativeOrientationOptionsL(TOrientationReference, TRelativeRotation, TRelativeMirror, TRelativeFlipping)
IMPORT_C voidSetSourceRect(const TRect &)
IMPORT_C voidSetTransformationValue(TUid, TInt)
IMPORT_C voidStartColorAccentL()
IMPORT_C voidStartColorSwappingL()
IMPORT_C TIntTransformationValue(TUid)
Private Member Functions
CCameraImageProcessing(CCamera &)
voidConstructL()
voidConstructL(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
enumTColorOperationRepresentation { ERepresentationNone = 0x00, ERepresentationSingle = 0x01, ERepresentationMultiple = 0x02 }
enumTColorOperationRgbGroupingMode { ERgbGroupingNone = 0x00, ERgbGroupingFixed = 0x01, ERgbGroupingAutomatic = 0x02, ERgbGroupingSignificantBits = 0x04, ERgbGroupingUniform = 0x08 }
enumTContrastEnhancement { EContrastEnhancementNone = 0x00, EContrastEnhancementSwitchOff = 0x01, EContrastEnhancementManualSwitchOn = 0x02, EContrastEnhancementSwitchAuto = 0x04 }
enumTEffect {
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
}
enumTGamma { EGammaAuto = KMinTInt }
enumTGlareReduction { EGlareReductionNone = 0x0000, EGlareReductionBasic = 0x0001 }
enumTHue { EHueAuto = KMinTInt }
enumTMirror { EMirrorNone = 0x00000000, EMirrorHorizontal = 0x00000001, EMirrorVertical = 0x00000002, EMirrorBoth = 0x00000003 }
enumTNoiseReduction { ENoiseReductionNone = 0x0000, ENoiseReductionBasic = 0x0001 }
enumTOrientationReference { EOrientationReferenceCameraSensorOrientation, EOrientationReferenceTiltOrientation }
enumTRedEyeReduction { ERedEyeReductionNone = 0x00, ERedEyeReductionSwitchOff = 0x01, ERedEyeReductionManualSwitchOn = 0x02, ERedEyeReductionSwitchAuto = 0x04 }
enumTRelativeFlipping { ERelativeFlippingNone = 0x00, ERelativeFlippingHorizontal = 0x10, ERelativeFlippingVertical = 0x20 }
enumTRelativeMirror { ERelativeMirrorNone = 0x00, ERelativeMirrorHorizontalAxis = 0x10, ERelativeMirrorVerticalAxis = 0x20 }
enumTRelativeRotation { ERelativeRotation0Degrees = 0x00, ERelativeRotation90DegreesClockwise = 0x01, ERelativeRotation180DegreesClockwise = 0x02, ERelativeRotation270DegreesClockwise = 0x04 }
enumTSaturation { ESaturationAuto = KMinTInt }
enumTSharpness { ESharpnessAuto = KMinTInt }
Private Attributes
MCameraImageProcessing *iImpl
MCameraImageProcessing2 *iImpl2
MCameraImageProcessing3 *iImpl3
CCamera &iOwner

Constructor & Destructor Documentation

CCameraImageProcessing(CCamera &)

CCameraImageProcessing(CCamera &aOwner)[private]

CCameraImageProcessing Constructor.

Parameters

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

~CCameraImageProcessing()

IMPORT_C~CCameraImageProcessing()

Destructor

Member Functions Documentation

CancelColorAccentL()

IMPORT_C voidCancelColorAccentL()

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 voidCancelColorSwappingL()

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()

voidConstructL()[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 &)

voidConstructL(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 & aImplFactoryA 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 & aCameraA reference to a CCamera object providing the settings.
MImplementationFactory & aImplFactoryA reference to the MImplementationFactory derived object.

GetActiveTransformSequenceL(RArray< TUid > &)

IMPORT_C voidGetActiveTransformSequenceL(RArray< TUid > &aTransformSequence)const

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

leave
KErrNoMemory Out of memory.

Parameters

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

GetActiveTransformationsL(RArray< TUid > &)

IMPORT_C voidGetActiveTransformationsL(RArray< TUid > &aTransformations)const

Get currently active transformations on the camera.

leave
KErrNoMemory Out of memory.

Parameters

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

GetColorAccentCapabilitiesL(TInt, TColorOperationCapabilities &)

IMPORT_C voidGetColorAccentCapabilitiesL(TIntaIndex,
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 aIndexThis 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 & aColorAccentCapabilitiesThis retrieves the color accent capabilities.

GetColorAccentEntryL(TInt, TColorOperationEntry &)

IMPORT_C voidGetColorAccentEntryL(TIntaIndex,
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 aIndexThis gives the color accent entry whose information has to be retrieved.
TColorOperationEntry & aColorAccentParametersThis 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 voidGetColorSwapCapabilitiesL(TIntaIndex,
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 aIndexThis 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 & aColorSwapCapabilitiesThis retrieves the color swap capabilities.

GetColorSwapEntryL(TInt, TColorOperationEntry &)

IMPORT_C voidGetColorSwapEntryL(TIntaIndex,
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 aIndexThis gives the color swapping entry whose information has to be retrieved.
TColorOperationEntry & aColorSwapParametersThis contains the parameters currently being used by the color swapping operation for the given entry.

GetConcurrentColorAccentSupportedL(TInt &)

IMPORT_C voidGetConcurrentColorAccentSupportedL(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 & aConcurrentColorAccentSupportedRetrieves 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 voidGetConcurrentColorSwappingsSupportedL(TInt &aConcurrentColorSwappingSupported)const

Retrieves the maximum number of simultaneous color swapping possible.

leave
May leave as a result of some error.

Parameters

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

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

IMPORT_C voidGetCurrentRelativeOrientationOptionsL(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 & aOrientationReferenceA TOrientationReference which is the current orientation reference being used.
TRelativeRotation & aRelativeRotationA TRelativeRotation which is the current relative rotation being used with aOrientationReference.
TRelativeMirror & aRelativeMirrorA TRelativeMirror which is the current relative mirroring being used with aOrientationReference.
TRelativeFlipping & aRelativeFlippingA TRelativeFlipping which is the current relative flipping being used with aOrientationReference.

GetSourceRect(TRect &)

IMPORT_C voidGetSourceRect(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 & aRecta 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 voidGetSupportedRelativeOrientationOptionsL(TOrientationReferenceaOrientationReference,
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 aOrientationReferenceA TOrientationReference for which supported relative custom orientation have to retrieved.
TUint & aSupportedRelativeRotationA bitfield which retrieves the supported TRelativeRotation for 'aOrientationReference'
TUint & aSupportedRelativeMirroringA bitfield which retrieves the supported TRelativeMirror for 'aOrientationReference'
TUint & aSupportedRelativeFlippingA bitfield which retrieves the supported TRelativeFlipping for 'aOrientationReference'

GetSupportedTransformationsL(RArray< TUid > &)

IMPORT_C voidGetSupportedTransformationsL(RArray< TUid > &aTransformations)const

Get all transformations supported on the camera.

leave
KErrNoMemory Out of memory.

Parameters

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

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

IMPORT_C voidGetTransformationSupportedValuesL(TUidaTransformation,
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 aTransformationThe UID of active transform for which values are requested.
RArray< TInt > & aValuesAn array of integers to represent the values for the requested transformation.
TValueInfo & aInfoAdditional information describing the returned array of values.

GetTransformationValue(TUid, TInt &)

IMPORT_C TIntGetTransformationValue(TUidaTransformation,
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 aTransformationThe UID of the transformation
TInt & aTransformationValueReference 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 & aCameraa reference to a CCamera object providing the settings.

RemoveColorAccentEntryL(TInt)

IMPORT_C voidRemoveColorAccentEntryL(TIntaIndex)

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 aIndexThis gives the color accent entry to be removed.

RemoveColorSwapEntryL(TInt)

IMPORT_C voidRemoveColorSwapEntryL(TIntaIndex)

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 aIndexThis gives the color swapping entry to be removed.

SetActiveTransformSequenceL(RArray< TUid > &)

IMPORT_C voidSetActiveTransformSequenceL(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 > & aTransformSequenceThe list of ordered transforms, where transforms with smaller index are executed earlier.

SetColorAccentEntryL(TInt, const TColorOperationEntry &)

IMPORT_C voidSetColorAccentEntryL(TIntaIndex,
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 aIndexThis 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 & aColorAccentParametersThe 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 voidSetColorSwapEntryL(TIntaIndex,
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 aIndexThis 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 & aColorSwapParametersThe 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 voidSetRelativeOrientationOptionsL(TOrientationReferenceaOrientationReference,
TRelativeRotationaRelativeRotation,
TRelativeMirroraRelativeMirror,
TRelativeFlippingaRelativeFlipping
)

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 aOrientationReferenceThe desired TOrientationReference.
TRelativeRotation aRelativeRotationThe desired TRelativeRotation which would be used with 'aOrientationReference'.
TRelativeMirror aRelativeMirror
TRelativeFlipping aRelativeFlipping

SetSourceRect(const TRect &)

IMPORT_C voidSetSourceRect(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 & aRecta reference to TRect object which describes the coordinates of the area of interest.

SetTransformationValue(TUid, TInt)

IMPORT_C voidSetTransformationValue(TUidaTransformation,
TIntaValue
)

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 aTransformationThe UID of the transformation
TInt aValueThe integer value of the tranformation.

StartColorAccentL()

IMPORT_C voidStartColorAccentL()

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 voidStartColorSwappingL()

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 TIntTransformationValue(TUidaTransformation)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 aTransformationThe 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]