diff -r 735348f59235 -r 948c7f65f6d4 imagingandcamerafws/imagingfws/ImageProcessor/inc/imageprocessorplugineffect.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagingandcamerafws/imagingfws/ImageProcessor/inc/imageprocessorplugineffect.h Wed Sep 01 12:38:50 2010 +0100 @@ -0,0 +1,957 @@ +// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file + @publishedPartner + @released +*/ + +#ifndef __IMAGE_PROCESSOR_PLUGIN_EFFECT_H__ +#define __IMAGE_PROCESSOR_PLUGIN_EFFECT_H__ + +#include +#include +#include + +namespace ImageProcessor + { + +class TOperation; + +namespace Plugin + { + +/** +Plugin API for the effects. + +@see TEffect +@publishedPartner +@released +*/ +class MEffect + { +public: + /** + This must provide an implementation as defined by TEffect::Extension(TUid aExtension) + + @see TEffect::Extension(TUid aExtension) + */ + virtual TAny* Extension(TUid aExtension) = 0; + + /** + This must provide an implementation as defined by TEffect::BeginL() + + @see TEffect::BeginL() + */ + virtual void BeginL() = 0; + + /** + This must provide an implementation as defined by TEffect::EndL() + + @see TEffect::EndL() + */ + virtual void EndL() = 0; + + /** + This must provide an implementation as defined by TEffect::SetLevelL(TInt aLevel) + + @see TEffect::SetLevelL(TInt aLevel) + */ + virtual void SetLevelL(TInt aLevel) = 0; + + /** + This must provide an implementation as defined by TEffect::LevelL(TInt& aLevel) + + @see TEffect::LevelL(TInt& aLevel) + */ + virtual void LevelL(TInt& aLevel) = 0; + + /** + This must provide an implementation as defined by TEffect::LevelSettingsL(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep) + + @see TEffect::LevelSettings(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep) + */ + virtual void LevelSettings(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep) = 0; + + /** + This must provide an implementation as defined by TEffect::SetLevelL(TReal32 aLevel) + + @see TEffect::SetLevelL(TReal32 aLevel) + */ + virtual void SetLevelL(TReal32 aLevel) = 0; + + /** + This must provide an implementation as defined by TEffect::LevelL(TReal32& aLevel) + + @see TEffect::LevelL(TReal32& aLevel) + */ + virtual void LevelL(TReal32& aLevel) = 0; + + /** + This must provide an implementation as defined by TEffect::LevelSettingsL(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep) + + @see TEffect::LevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep) + */ + virtual void LevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep) = 0; + + /** + This must provide an implementation as defined by TEffect::ResetL() + + @see TEffect::ResetL() + */ + virtual void ResetL() = 0; + }; + +/** +Plugin API for the sepia photoart effect. +The TEffectSepia uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectSepia are passed +verbatim to this interface. For further description of required functionality, +see TEffectSepia. + +@see TEffectSepia +@publishedPartner +@released +*/ +class MEffectSepia : public MEffect + { + }; + +/** +Plugin API for the grayscale photoart effect. +The TEffectGrayscale uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectGrayscale are passed +verbatim to this interface. For further description of required functionality, +see TEffectGrayscale. + +@see TEffectGrayscale +@publishedPartner +@released +*/ +class MEffectGrayscale : public MEffect + { + }; + +/** +Plugin API for the negative photoart effect. +The TEffectNegative uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectNegative are passed +verbatim to this interface. For further description of required functionality, +see TEffectNegative. + +@see TEffectNegative +@publishedPartner +@released +*/ +class MEffectNegative : public MEffect + { + }; + +/** +Plugin API for the grayscale and negative photoart effect. +The TEffectGrayscaleNegative uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectGrayscaleNegative are passed +verbatim to this interface. For further description of required functionality, +see TEffectGrayscaleNegative. + +@see TEffectGrayscaleNegative +@publishedPartner +@released +*/ +class MEffectGrayscaleNegative : public MEffect + { + }; + +/** +Plugin API for the oily photoart effect. +The TEffectOily uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectOily are passed +verbatim to this interface. For further description of required functionality, +see TEffectOily. + +@see TEffectOily +@publishedPartner +@released +*/ +class MEffectOily : public MEffect + { + }; + +/** +Plugin API for the paint photoart effect. +The TEffectPaint +Once this has been constructed, calls to method functions of TEffectPaint are passed +verbatim to this interface. For further description of required functionality, +see TEffectPaint. + +@see TEffectPaint +@publishedPartner +@released +*/ +class MEffectPaint : public MEffect + { + }; + +/** +Plugin API for the milky photoart effect. +The TEffectMilky uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectMilky are passed +verbatim to this interface. For further description of required functionality, +see TEffectMilky. + +@see TEffectMilky +@publishedPartner +@released +*/ +class MEffectMilky : public MEffect + { + }; + +/** +Plugin API for the fog photoart effect. +The TEffectFog uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectFog are passed +verbatim to this interface. For further description of required functionality, +see TEffectFog. + +@see TEffectFog +@publishedPartner +@released +*/ +class MEffectFog : public MEffect + { + }; + +/** +Plugin API for the mirror photoart effect. +The TEffectMirrorLeftToRight uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectMirrorLeftToRight are passed +verbatim to this interface. For further description of required functionality, +see TEffectMirrorLeftToRight. + +@see TEffectMirrorLeftToRight +@publishedPartner +@released +*/ +class MEffectMirrorLeftToRight : public MEffect + { + }; + +/** +Plugin API for the magicpen photoart effect. +The TEffectMagicPen uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectMagicPen are passed +verbatim to this interface. For further description of required functionality, +see TEffectMagicPen. + +@see TEffectMagicPen +@publishedPartner +@released +*/ +class MEffectMagicPen : public MEffect + { + }; + +/** +Plugin API for the antique photoart effect. +The TEffectAntique uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectAntique are passed +verbatim to this interface. For further description of required functionality, +see TEffectAntique. + +@see TEffectAntique +@publishedPartner +@released +*/ +class MEffectAntique : public MEffect + { + }; + +/** +Plugin API for the brightness photoart effect. +The TEffectBrightness uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectBrightness are passed +verbatim to this interface. For further description of required functionality, +see TEffectBrightness. + +@see TEffectBrightness +@publishedPartner +@released +*/ +class MEffectBrightness : public MEffect + { + }; + +/** +Plugin API for the sharpness photoart effect. +The TEffectSharpness uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectSharpness are passed +verbatim to this interface. For further description of required functionality, +see TEffectSharpness. + +@see TEffectSharpness +@publishedPartner +@released +*/ +class MEffectSharpness : public MEffect + { + }; + +/** +Plugin API for the rotation photoart effect. +The TEffectRotation uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectRotation are passed +verbatim to this interface. For further description of required functionality, +see TEffectRotation. + +@see TEffectRotation +@publishedPartner +@released +*/ +class MEffectRotation : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectRotation::ScaleModeL() + + @see TEffectRotation::TRotationScaleMode ScaleModeL() + */ + virtual TEffectRotation::TRotationScaleMode ScaleModeL() const = 0; + + /** + This must provide an implementation as defined by TEffectRotation::AngleL() + + @see TEffectRotation::AngleL() + */ + virtual TReal32 AngleL() const = 0; + + /** + This must provide an implementation as defined by TEffectRotation::SetRotationL(TReal32 aScaleMode, TReal32 aAngle) + + @see TEffectRotation::SetRotationL(TEffectRotation::TRotationScaleMode aScaleMode, TReal32 aAngle) + */ + virtual void SetRotationL(TEffectRotation::TRotationScaleMode aScaleMode, TReal32 aAngle) = 0; + }; + +/** +Plugin API for the contrast photoart effect. +The TEffectContrast uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectContrast are passed +verbatim to this interface. For further description of required functionality, +see TEffectContrast. + +@see TEffectContrast +@publishedPartner +@released +*/ +class MEffectContrast : public MEffect + { + }; + +/** +Plugin API for the rgbcoloradjust photoart effect. +The TEffectRgbColorAdjust uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectRgbColorAdjust are passed +verbatim to this interface. For further description of required functionality, +see TEffectRgbColorAdjust. + +@see TEffectRgbColorAdjust +@publishedPartner +@released +*/ +class MEffectRgbColorAdjust : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectRgbColorAdjust::RedLevelL() + + @see TEffectRgbColorAdjust::RedLevelL() + */ + virtual TReal32 RedLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectRgbColorAdjust::GreenLevelL() + + @see TEffectRgbColorAdjust::GreenLevelL() + */ + virtual TReal32 GreenLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectRgbColorAdjust::BlueLevelL() + + @see TEffectRgbColorAdjust::BlueLevelL() + */ + virtual TReal32 BlueLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectRgbColorAdjust::SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel) + + @see TEffectRgbColorAdjust::SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel) + */ + virtual void SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel) = 0; + }; + +/** +Plugin API for the emboss photoart effect. +The TEffectEmboss uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectEmboss are passed +verbatim to this interface. For further description of required functionality, +see TEffectEmboss. + +@see TEffectEmboss +@publishedPartner +@released +*/ +class MEffectEmboss : public MEffect + { + }; + +/** +Plugin API for the solarize photoart effect. +The TEffectSolarize uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectSolarize are passed +verbatim to this interface. For further description of required functionality, +see TEffectSolarize. + +@see TEffectSolarize +@publishedPartner +@released +*/ +class MEffectSolarize : public MEffect + { + }; + +/** +Plugin API for the posterize photoart effect. +The TEffectPosterize uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectPosterize are passed +verbatim to this interface. For further description of required functionality, +see TEffectPosterize. + +@see TEffectPosterize +@publishedPartner +@released +*/ +class MEffectPosterize : public MEffect + { + }; + +/** +Plugin API for the stamp photoart effect. +The TEffectStamp uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectStamp are passed +verbatim to this interface. For further description of required functionality, +see TEffectStamp. + +@see TEffectStamp +@publishedPartner +@released +*/ +class MEffectStamp : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectStamp::SmoothnessLevelL() + + @see TEffectStamp::SmoothnessLevelL() + */ + virtual TInt SmoothnessLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectStamp::ThresholdLevelL() + + @see TEffectStamp::ThresholdLevelL() + */ + virtual TInt ThresholdLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectStamp::SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel) + + @see TEffectStamp::SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel) + */ + virtual void SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel) = 0; + }; + +/** +Plugin API for the sketch photoart effect. +The TEffectSketch uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectSketch are passed +verbatim to this interface. For further description of required functionality, +see TEffectSketch. + +@see TEffectSketch +@publishedPartner +@released +*/ +class MEffectSketch : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectSketch::SketchModeL() + + @see TEffectSketch::SketchModeL() + */ + virtual TEffectSketch::TSketchMode SketchModeL() const = 0; + + /** + This must provide an implementation as defined by TEffectSketch::SetSketchModeL(TSketchMode aSketchMode) + + @see TEffectSketch::SetSketchModeL(TSketchMode aSketchMode) + */ + virtual void SetSketchModeL(TEffectSketch::TSketchMode aSketchMode) = 0; + }; + +/** +Plugin API for the noise photoart effect. +The TEffectNoise uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectNoise are passed +verbatim to this interface. For further description of required functionality, +see TEffectNoise. + +@see TEffectNoise +@publishedPartner +@released +*/ +class MEffectNoise : public MEffect + { + }; + +/** +Plugin API for the moonlight photoart effect. +The TEffectMoonlight uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectMoonlight are passed +verbatim to this interface. For further description of required functionality, +see TEffectMoonlight. + +@see TEffectMoonlight +@publishedPartner +@released +*/ +class MEffectMoonlight : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectMoonlight::LevelL() + + @see TEffectMoonlight::ClockL() + */ + virtual TInt16 ClockL() const = 0; + + /** + This must provide an implementation as defined by TEffectMoonlight::ApplyL(TInt aClock) + + @see TEffectMoonlight::SetClockL(TInt16 aClock) + */ + virtual void SetClockL(TInt16 aClock) = 0; + }; + +/** +Plugin API for the frostedglass photoart effect. +The TEffectFrostedGlass uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectFrostedGlass are passed +verbatim to this interface. For further description of required functionality, +see TEffectFrostedGlass. + +@see TEffectFrostedGlass +@publishedPartner +@released +*/ +class MEffectFrostedGlass : public MEffect + { + }; + +/** +Plugin API for the despeckle photoart effect. +The TEffectDespeckle uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectDespeckle are passed +verbatim to this interface. For further description of required functionality, +see TEffectDespeckle. + +@see TEffectDespeckle +@publishedPartner +@released +*/ +class MEffectDespeckle : public MEffect + { + }; + +/** +Plugin API for the blur photoart effect. +The TEffectBlur uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectBlur are passed +verbatim to this interface. For further description of required functionality, +see TEffectBlur. + +@see TEffectBlur +@publishedPartner +@released +*/ +class MEffectBlur : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectBlur::RectL() + + @see TEffectBlur::RectL() + */ + virtual TRect RectL() const = 0; + + /** + This must provide an implementation as defined by TEffectBlur::SetRectL(TRect aRect) + + @see TEffectBlur::SetRectL(TRect aRect) + */ + virtual void SetRectL(TRect aRect) = 0; + }; + +/** +Plugin API for the colorization photoart effect. +The TEffectColorization uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectColorization are passed +verbatim to this interface. For further description of required functionality, +see TEffectColorization. + +@see TEffectColorization +@publishedPartner +@released +*/ +class MEffectColorization : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectColorization::RgbL() + + @see TEffectColorization::ReferenceColorL() + */ + virtual TRgb ReferenceColorL() const = 0; + + /** + This must provide an implementation as defined by TEffectColorization::LuminanceStrengthL() + + @see TEffectColorization::LuminanceStrengthL() + */ + virtual TInt LuminanceStrengthL() const = 0; + + /** + This must provide an implementation as defined by TEffectColorization::ChrominanceStrengthL() + + @see TEffectColorization::ChrominanceStrengthL() + */ + virtual TInt ChrominanceStrengthL() const = 0; + + /** + This must provide an implementation as defined by TEffectColorization::SetColorizationLevelL(TRgb aRgb, TInt aLuminanceStrength, TInt aChrominanceStrength) + + @see TEffectColorization::SetColorizationL(TRgb aReferenceColor, TInt aLuminanceStrength, TInt aChrominanceStrength) + */ + virtual void SetColorizationL(TRgb aReferenceColor, TInt aLuminanceStrength, TInt aChrominanceStrength) = 0; + }; + +/** +Plugin API for the cartoon photoart effect. +The TEffectCartoon uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectCartoon are passed +verbatim to this interface. For further description of required functionality, +see TEffectCartoon. + +@see TEffectCartoon +@publishedPartner +@released +*/ +class MEffectCartoon : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectCartoon::DistinctEdgesL() + + @see TEffectCartoon::DistinctEdgesL() + */ + virtual TBool DistinctEdgesL() const = 0; + + /** + This must provide an implementation as defined by TEffectCartoon::SetDistinctEdgesL(TBool aDistinctEdges) + + @see TEffectCartoon::SetDistinctEdgesL(TBool aDistinctEdges) + */ + virtual void SetDistinctEdgesL(TBool aDistinctEdges) = 0; + }; + +/** +Plugin API for the localboost effect. +The TEffectLocalBoost uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectLocalBoost are passed +verbatim to this interface. For further description of required functionality, +see TEffectLocalBoost. + +@see TEffectLocalBoost +@publishedPartner +@released +*/ +class MEffectLocalBoost : public MEffect + { + }; + +/** +Plugin API for the colorboost effect. +The TEffectColorBoost uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectColorBoost are passed +verbatim to this interface. For further description of required functionality, +see TEffectColorBoost. + +@see TEffectColorBoost +@publishedPartner +@released +*/ +class MEffectColorBoost : public MEffect + { + }; + +/** +Plugin API for the whitebalance effect. +The TEffectWhiteBalance uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectWhiteBalance are passed +verbatim to this interface. For further description of required functionality, +see TEffectWhiteBalance. + +@see TEffectWhiteBalance +@publishedPartner +@released +*/ +class MEffectWhiteBalance : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectWhiteBalance::BalanceModeL() + + @see TEffectWhiteBalance::BalanceModeL() + */ + virtual TEffectWhiteBalance::TWhiteBalanceMode WhiteBalanceModeL() const = 0; + + /** + This must provide an implementation as defined by TEffectWhiteBalance::ReferenceWhiteColorL() + + @see TEffectWhiteBalance::ReferenceWhiteColorL() + */ + virtual TRgb ReferenceWhiteColorL() const = 0; + + /** + This must provide an implementation as defined by TEffectWhiteBalance::SetWhiteBalanceL(TRgb aRgb) + + @see TEffectWhiteBalance::SetWhiteBalanceL(TWhiteBalanceMode aWhiteBalanceMode, TRgb aReferenceWhiteColor) + */ + virtual void SetWhiteBalanceL(TEffectWhiteBalance::TWhiteBalanceMode aWhiteBalanceMode, TRgb aReferenceWhiteColor) = 0; + }; + +/** +Plugin API for the autolevels effect. +The TEffectAutoLevels uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectAutoLevels are passed +verbatim to this interface. For further description of required functionality, +see TEffectAutoLevels. + +@see TEffectAutoLevels +@publishedPartner +@released +*/ +class MEffectAutoLevels : public MEffect + { + }; + +/** +Plugin API for the levels effect. +The TEffectLevels uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectLevels are passed +verbatim to this interface. For further description of required functionality, +see TEffectLevels. + +@see TEffectLevels +@publishedPartner +@released +*/ +class MEffectLevels : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectLevels::WhiteLevelL() + + @see TEffectLevels::WhiteLevelL() + */ + virtual TReal32 WhiteLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectLevels::GrayLevelL() + + @see TEffectLevels::GrayLevelL() + */ + virtual TReal32 GrayLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectLevels::BlackLevelL() + + @see TEffectLevels::BlackLevelL() + */ + virtual TReal32 BlackLevelL() const = 0; + + /** + This must provide an implementation as defined by TEffectLevels::SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel) + + @see TEffectLevels::SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel) + */ + virtual void SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel) = 0; + }; + +/** +Plugin API for the exposure effect. +The TEffectExposure uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectExposure are passed +verbatim to this interface. For further description of required functionality, +see TEffectExposure. + +@see TEffectExposure +@publishedPartner +@released +*/ +class MEffectExposure : public MEffect + { + }; + +/** +Plugin API for the spotlight effect. +The TEffectSpotlight uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectSpotlight are passed +verbatim to this interface. For further description of required functionality, +see TEffectSpotlight. + +@see TEffectSpotlight +@publishedPartner +@released +*/ +class MEffectSpotLight : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectSpotlight::SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize) + + @see TEffectSpotlight::SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize) + */ + virtual void SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize) const = 0; + + /** + This must provide an implementation as defined by TEffectSpotlight::SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize) + + @see TEffectSpotlight::SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize) + */ + virtual void SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize) = 0; + }; + +/** +Plugin API for the customized transformation effect. +The TEffectCustomTransformation uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectCustomTransformation are passed +verbatim to this interface. For further description of required functionality, +see TEffectCustomTransformation. + +@see TEffectCustomTransformation +@publishedPartner +@released +*/ +class MEffectCustomTransformation : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectCustomTransformation::SetInputL(const TDesC& aFilename) + + @see TEffectCustomTransformation::SetInputL(const TDesC& aFilename) + */ + virtual void SetInputL(const TDesC& aFilename) = 0; + + /** + This must provide an implementation as defined by TEffectCustomTransformation::SetInputL(const TDesC8& aBuffer) + + @see TEffectCustomTransformation::SetInputL(const TDesC8& aBuffer) + */ + virtual void SetInputL(const TDesC8& aBuffer) = 0; + }; + +/** +Plugin API for the Geometrical Operation +The TGeometricalOperation uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TGeometricalOperation are passed +verbatim to this interface. For further description of required functionality, +see TGeometricalOperation. + +@see TGeometricalOperation +@publishedPartner +@released +*/ +class MGeometricalOperation : public MEffect + { +public: + /** + This must provide an implementation as defined by TGeometricalOperation::Operation() + + @see TGeometricalOperation::Operation() + */ + virtual CImgProcessor::TOperation Operation() const = 0; + + /** + This must provide an implementation as defined by TGeometricalOperation::SetOperationL(CImgProcessor::TOperation aOperation) + + @see TGeometricalOperation::SetOperationL(CImgProcessor::TOperation aOperation) + */ + virtual void SetOperationL(CImgProcessor::TOperation aOperation) = 0; + }; + +/** +Plugin API for the insert border effect. +The TEffectBorder uses this interface class to get access to the image prosessor plugin effect. +Once this has been constructed, calls to method functions of TEffectBorder are passed +verbatim to this interface. For further description of required functionality, +see TEffectBorder. + +@see TEffectBorder +@publishedPartner +@released +*/ +class MEffectBorder : public MEffect + { +public: + /** + This must provide an implementation as defined by TEffectBorder::SetInputL(const TDesC& aFilename) + + @see TEffectBorder::SetInputL(const TDesC& aFilename) + */ + virtual void SetInputL(const TDesC& aFilename) = 0; + + /** + This must provide an implementation as defined by TEffectBorder::SetInputL(const TDesC8& aBuffer) + + @see TEffectBorder::SetInputL(const TDesC8& aBuffer) + */ + virtual void SetInputL(const TDesC8& aBuffer) = 0; + + /** + This must provide an implementation as defined by TEffectBorder::SetInputL(const CFbsBitmap& aBitmap) + + @see TEffectBorder::SetInputL(const TDesC8& aBitmap) + */ + virtual void SetInputL(const CFbsBitmap& aBitmap) = 0; + }; + + }//namespace Plugin + }//namespace ImageProcessor + +#endif //__IMAGE_PROCESSOR_PLUGIN_EFFECT_H__