imagingandcamerafws/imagingfws/ImageProcessor/inc/imageprocessorplugineffect.h
changeset 0 40261b775718
equal deleted inserted replaced
-1:000000000000 0:40261b775718
       
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 /**
       
    17  @file
       
    18  @publishedPartner 
       
    19  @released 
       
    20 */
       
    21 
       
    22 #ifndef __IMAGE_PROCESSOR_PLUGIN_EFFECT_H__
       
    23 #define __IMAGE_PROCESSOR_PLUGIN_EFFECT_H__
       
    24 
       
    25 #include <e32base.h>
       
    26 #include <imageprocessor/imageprocessor.h>
       
    27 #include <imageprocessor/imageprocessoreffect.h>
       
    28 
       
    29 namespace ImageProcessor
       
    30 	{
       
    31 
       
    32 class TOperation;
       
    33 
       
    34 namespace Plugin
       
    35 	{
       
    36 
       
    37 /**
       
    38 Plugin API for the effects.
       
    39 
       
    40 @see TEffect
       
    41 @publishedPartner
       
    42 @released
       
    43 */	
       
    44 class MEffect
       
    45 	{
       
    46 public:
       
    47 	/**
       
    48 	This must provide an implementation as defined by TEffect::Extension(TUid aExtension)
       
    49 	
       
    50 	@see TEffect::Extension(TUid aExtension)
       
    51 	*/	
       
    52 	virtual TAny* Extension(TUid aExtension) = 0;
       
    53 	
       
    54 	/**
       
    55 	This must provide an implementation as defined by TEffect::BeginL()
       
    56 	
       
    57 	@see TEffect::BeginL()
       
    58 	*/	
       
    59 	virtual void BeginL() = 0;
       
    60 	
       
    61 	/**
       
    62 	This must provide an implementation as defined by TEffect::EndL()
       
    63 	
       
    64 	@see TEffect::EndL()
       
    65 	*/	
       
    66 	virtual void EndL() = 0;
       
    67 
       
    68 	/**
       
    69 	This must provide an implementation as defined by TEffect::SetLevelL(TInt aLevel)
       
    70 	
       
    71 	@see TEffect::SetLevelL(TInt aLevel)
       
    72 	*/	
       
    73 	virtual void SetLevelL(TInt aLevel) = 0;
       
    74 
       
    75 	/**
       
    76 	This must provide an implementation as defined by TEffect::LevelL(TInt& aLevel)
       
    77 	
       
    78 	@see TEffect::LevelL(TInt& aLevel)
       
    79 	*/	
       
    80 	virtual void LevelL(TInt& aLevel) = 0;
       
    81 
       
    82 	/**
       
    83 	This must provide an implementation as defined by TEffect::LevelSettingsL(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep)
       
    84 	
       
    85 	@see TEffect::LevelSettings(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep)
       
    86 	*/	
       
    87 	virtual void LevelSettings(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep) = 0;
       
    88 		
       
    89 	/**
       
    90 	This must provide an implementation as defined by TEffect::SetLevelL(TReal32 aLevel)
       
    91 	
       
    92 	@see TEffect::SetLevelL(TReal32 aLevel)
       
    93 	*/	
       
    94 	virtual void SetLevelL(TReal32 aLevel) = 0;
       
    95 	
       
    96 	/**
       
    97 	This must provide an implementation as defined by TEffect::LevelL(TReal32& aLevel)
       
    98 	
       
    99 	@see TEffect::LevelL(TReal32& aLevel)
       
   100 	*/	
       
   101 	virtual void LevelL(TReal32& aLevel) = 0;
       
   102 	
       
   103 	/**
       
   104 	This must provide an implementation as defined by TEffect::LevelSettingsL(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep)
       
   105 	
       
   106 	@see TEffect::LevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep)
       
   107 	*/	
       
   108 	virtual void LevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep) = 0;
       
   109 
       
   110 	/**
       
   111 	This must provide an implementation as defined by TEffect::ResetL()
       
   112 	
       
   113 	@see TEffect::ResetL()
       
   114 	*/	
       
   115 	virtual void ResetL() = 0;
       
   116 	};
       
   117 
       
   118 /**
       
   119 Plugin API for the sepia photoart effect.
       
   120 The TEffectSepia uses this interface class to get access to the image prosessor plugin effect. 
       
   121 Once this has been constructed, calls to method functions of TEffectSepia are passed
       
   122 verbatim to this interface. For further description of required functionality, 
       
   123 see TEffectSepia.
       
   124 
       
   125 @see TEffectSepia
       
   126 @publishedPartner
       
   127 @released
       
   128 */
       
   129 class MEffectSepia  : public MEffect
       
   130 	{
       
   131 	};	
       
   132 	
       
   133 /**
       
   134 Plugin API for the grayscale photoart effect.
       
   135 The TEffectGrayscale uses this interface class to get access to the image prosessor plugin effect. 
       
   136 Once this has been constructed, calls to method functions of TEffectGrayscale are passed
       
   137 verbatim to this interface. For further description of required functionality, 
       
   138 see TEffectGrayscale.
       
   139 
       
   140 @see TEffectGrayscale
       
   141 @publishedPartner
       
   142 @released
       
   143 */
       
   144 class MEffectGrayscale  : public MEffect
       
   145 	{
       
   146 	};		
       
   147 	
       
   148 /**
       
   149 Plugin API for the negative photoart effect.
       
   150 The TEffectNegative uses this interface class to get access to the image prosessor plugin effect. 
       
   151 Once this has been constructed, calls to method functions of TEffectNegative are passed
       
   152 verbatim to this interface. For further description of required functionality, 
       
   153 see TEffectNegative.
       
   154 
       
   155 @see TEffectNegative
       
   156 @publishedPartner
       
   157 @released
       
   158 */
       
   159 class MEffectNegative  : public MEffect
       
   160 	{
       
   161 	};	
       
   162 
       
   163 /**
       
   164 Plugin API for the grayscale and negative photoart effect.
       
   165 The TEffectGrayscaleNegative uses this interface class to get access to the image prosessor plugin effect. 
       
   166 Once this has been constructed, calls to method functions of TEffectGrayscaleNegative are passed
       
   167 verbatim to this interface. For further description of required functionality, 
       
   168 see TEffectGrayscaleNegative.
       
   169 
       
   170 @see TEffectGrayscaleNegative
       
   171 @publishedPartner
       
   172 @released
       
   173 */
       
   174 class MEffectGrayscaleNegative  : public MEffect
       
   175 	{
       
   176 	};	
       
   177 	
       
   178 /**
       
   179 Plugin API for the oily photoart effect.
       
   180 The TEffectOily uses this interface class to get access to the image prosessor plugin effect. 
       
   181 Once this has been constructed, calls to method functions of TEffectOily are passed
       
   182 verbatim to this interface. For further description of required functionality, 
       
   183 see TEffectOily.
       
   184 
       
   185 @see TEffectOily
       
   186 @publishedPartner
       
   187 @released
       
   188 */	
       
   189 class MEffectOily  : public MEffect
       
   190 	{
       
   191 	};	
       
   192 
       
   193 /**
       
   194 Plugin API for the paint photoart effect.
       
   195 The TEffectPaint  
       
   196 Once this has been constructed, calls to method functions of TEffectPaint are passed
       
   197 verbatim to this interface. For further description of required functionality, 
       
   198 see TEffectPaint.
       
   199 
       
   200 @see TEffectPaint
       
   201 @publishedPartner
       
   202 @released
       
   203 */
       
   204 class MEffectPaint : public MEffect
       
   205 	{
       
   206 	};	
       
   207 	
       
   208 /**
       
   209 Plugin API for the milky photoart effect.
       
   210 The TEffectMilky uses this interface class to get access to the image prosessor plugin effect. 
       
   211 Once this has been constructed, calls to method functions of TEffectMilky are passed
       
   212 verbatim to this interface. For further description of required functionality, 
       
   213 see TEffectMilky.
       
   214 
       
   215 @see TEffectMilky
       
   216 @publishedPartner
       
   217 @released
       
   218 */
       
   219 class MEffectMilky : public MEffect
       
   220 	{
       
   221 	};		
       
   222 
       
   223 /**
       
   224 Plugin API for the fog photoart effect.
       
   225 The TEffectFog uses this interface class to get access to the image prosessor plugin effect. 
       
   226 Once this has been constructed, calls to method functions of TEffectFog are passed
       
   227 verbatim to this interface. For further description of required functionality, 
       
   228 see TEffectFog.
       
   229 
       
   230 @see TEffectFog
       
   231 @publishedPartner
       
   232 @released
       
   233 */
       
   234 class MEffectFog : public MEffect
       
   235 	{
       
   236 	};		
       
   237 
       
   238 /**
       
   239 Plugin API for the mirror photoart effect.
       
   240 The TEffectMirrorLeftToRight uses this interface class to get access to the image prosessor plugin effect. 
       
   241 Once this has been constructed, calls to method functions of TEffectMirrorLeftToRight are passed
       
   242 verbatim to this interface. For further description of required functionality, 
       
   243 see TEffectMirrorLeftToRight.
       
   244 
       
   245 @see TEffectMirrorLeftToRight
       
   246 @publishedPartner
       
   247 @released
       
   248 */	
       
   249 class MEffectMirrorLeftToRight : public MEffect
       
   250 	{
       
   251 	};	
       
   252 	
       
   253 /**
       
   254 Plugin API for the magicpen photoart effect.
       
   255 The TEffectMagicPen uses this interface class to get access to the image prosessor plugin effect. 
       
   256 Once this has been constructed, calls to method functions of TEffectMagicPen are passed
       
   257 verbatim to this interface. For further description of required functionality, 
       
   258 see TEffectMagicPen.
       
   259 
       
   260 @see TEffectMagicPen
       
   261 @publishedPartner
       
   262 @released
       
   263 */	
       
   264 class MEffectMagicPen : public MEffect
       
   265 	{
       
   266 	};	
       
   267 	
       
   268 /**
       
   269 Plugin API for the antique photoart effect.
       
   270 The TEffectAntique uses this interface class to get access to the image prosessor plugin effect. 
       
   271 Once this has been constructed, calls to method functions of TEffectAntique are passed
       
   272 verbatim to this interface. For further description of required functionality, 
       
   273 see TEffectAntique.
       
   274 
       
   275 @see TEffectAntique
       
   276 @publishedPartner
       
   277 @released
       
   278 */
       
   279 class MEffectAntique : public MEffect
       
   280 	{
       
   281 	};		
       
   282 
       
   283 /**
       
   284 Plugin API for the brightness photoart effect.
       
   285 The TEffectBrightness uses this interface class to get access to the image prosessor plugin effect. 
       
   286 Once this has been constructed, calls to method functions of TEffectBrightness are passed
       
   287 verbatim to this interface. For further description of required functionality, 
       
   288 see TEffectBrightness.
       
   289 
       
   290 @see TEffectBrightness
       
   291 @publishedPartner
       
   292 @released
       
   293 */		
       
   294 class MEffectBrightness  : public MEffect
       
   295 	{
       
   296 	};		
       
   297 
       
   298 /**
       
   299 Plugin API for the sharpness photoart effect.
       
   300 The TEffectSharpness uses this interface class to get access to the image prosessor plugin effect. 
       
   301 Once this has been constructed, calls to method functions of TEffectSharpness are passed
       
   302 verbatim to this interface. For further description of required functionality, 
       
   303 see TEffectSharpness.
       
   304 
       
   305 @see TEffectSharpness
       
   306 @publishedPartner
       
   307 @released
       
   308 */
       
   309 class MEffectSharpness  : public MEffect
       
   310 	{
       
   311 	};		
       
   312 	
       
   313 /**
       
   314 Plugin API for the rotation photoart effect.
       
   315 The TEffectRotation uses this interface class to get access to the image prosessor plugin effect. 
       
   316 Once this has been constructed, calls to method functions of TEffectRotation are passed
       
   317 verbatim to this interface. For further description of required functionality, 
       
   318 see TEffectRotation.
       
   319 
       
   320 @see TEffectRotation
       
   321 @publishedPartner
       
   322 @released
       
   323 */
       
   324 class MEffectRotation  : public MEffect
       
   325 	{
       
   326 public:	
       
   327 	/**
       
   328 	This must provide an implementation as defined by TEffectRotation::ScaleModeL()
       
   329 	
       
   330 	@see TEffectRotation::TRotationScaleMode ScaleModeL()
       
   331 	*/
       
   332 	virtual TEffectRotation::TRotationScaleMode ScaleModeL() const = 0;
       
   333 	
       
   334 	/**
       
   335 	This must provide an implementation as defined by TEffectRotation::AngleL()
       
   336 	
       
   337 	@see TEffectRotation::AngleL()
       
   338 	*/
       
   339 	virtual TReal32 AngleL() const = 0;
       
   340 	
       
   341 	/**
       
   342 	This must provide an implementation as defined by TEffectRotation::SetRotationL(TReal32 aScaleMode, TReal32 aAngle)
       
   343 	
       
   344 	@see TEffectRotation::SetRotationL(TEffectRotation::TRotationScaleMode aScaleMode, TReal32 aAngle)
       
   345 	*/
       
   346 	virtual void SetRotationL(TEffectRotation::TRotationScaleMode aScaleMode, TReal32 aAngle) = 0;
       
   347 	};	
       
   348 	
       
   349 /**
       
   350 Plugin API for the contrast photoart effect.
       
   351 The TEffectContrast uses this interface class to get access to the image prosessor plugin effect. 
       
   352 Once this has been constructed, calls to method functions of TEffectContrast are passed
       
   353 verbatim to this interface. For further description of required functionality, 
       
   354 see TEffectContrast.
       
   355 
       
   356 @see TEffectContrast
       
   357 @publishedPartner
       
   358 @released
       
   359 */
       
   360 class MEffectContrast : public MEffect
       
   361 	{
       
   362 	};
       
   363 
       
   364 /**
       
   365 Plugin API for the rgbcoloradjust photoart effect.
       
   366 The TEffectRgbColorAdjust uses this interface class to get access to the image prosessor plugin effect. 
       
   367 Once this has been constructed, calls to method functions of TEffectRgbColorAdjust are passed
       
   368 verbatim to this interface. For further description of required functionality, 
       
   369 see TEffectRgbColorAdjust.
       
   370 
       
   371 @see TEffectRgbColorAdjust
       
   372 @publishedPartner
       
   373 @released
       
   374 */	
       
   375 class MEffectRgbColorAdjust : public MEffect
       
   376 	{
       
   377 public:	
       
   378 	/**
       
   379 	This must provide an implementation as defined by TEffectRgbColorAdjust::RedLevelL()
       
   380 	
       
   381 	@see TEffectRgbColorAdjust::RedLevelL()
       
   382 	*/
       
   383 	virtual TReal32 RedLevelL() const = 0;
       
   384 	
       
   385 	/**
       
   386 	This must provide an implementation as defined by TEffectRgbColorAdjust::GreenLevelL()
       
   387 	
       
   388 	@see TEffectRgbColorAdjust::GreenLevelL()
       
   389 	*/
       
   390 	virtual TReal32 GreenLevelL() const = 0;
       
   391 	
       
   392 	/**
       
   393 	This must provide an implementation as defined by TEffectRgbColorAdjust::BlueLevelL()
       
   394 	
       
   395 	@see TEffectRgbColorAdjust::BlueLevelL()
       
   396 	*/
       
   397 	virtual TReal32 BlueLevelL() const = 0;
       
   398 	
       
   399 	/**
       
   400 	This must provide an implementation as defined by TEffectRgbColorAdjust::SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel)
       
   401 	
       
   402 	@see TEffectRgbColorAdjust::SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel)
       
   403 	*/
       
   404 	virtual void SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel) = 0;
       
   405 	};
       
   406 
       
   407 /**
       
   408 Plugin API for the emboss photoart effect.
       
   409 The TEffectEmboss uses this interface class to get access to the image prosessor plugin effect. 
       
   410 Once this has been constructed, calls to method functions of TEffectEmboss are passed
       
   411 verbatim to this interface. For further description of required functionality, 
       
   412 see TEffectEmboss.
       
   413 
       
   414 @see TEffectEmboss
       
   415 @publishedPartner
       
   416 @released
       
   417 */		
       
   418 class MEffectEmboss : public MEffect
       
   419 	{
       
   420 	};	
       
   421 	
       
   422 /**
       
   423 Plugin API for the solarize photoart effect.
       
   424 The TEffectSolarize uses this interface class to get access to the image prosessor plugin effect. 
       
   425 Once this has been constructed, calls to method functions of TEffectSolarize are passed
       
   426 verbatim to this interface. For further description of required functionality, 
       
   427 see TEffectSolarize.
       
   428 
       
   429 @see TEffectSolarize
       
   430 @publishedPartner
       
   431 @released
       
   432 */	
       
   433 class MEffectSolarize : public MEffect
       
   434 	{
       
   435 	};
       
   436 	
       
   437 /**
       
   438 Plugin API for the posterize photoart effect.
       
   439 The TEffectPosterize uses this interface class to get access to the image prosessor plugin effect. 
       
   440 Once this has been constructed, calls to method functions of TEffectPosterize are passed
       
   441 verbatim to this interface. For further description of required functionality, 
       
   442 see TEffectPosterize.
       
   443 
       
   444 @see TEffectPosterize
       
   445 @publishedPartner
       
   446 @released
       
   447 */	
       
   448 class MEffectPosterize : public MEffect
       
   449 	{
       
   450 	};	
       
   451 
       
   452 /**
       
   453 Plugin API for the stamp photoart effect.
       
   454 The TEffectStamp uses this interface class to get access to the image prosessor plugin effect. 
       
   455 Once this has been constructed, calls to method functions of TEffectStamp are passed
       
   456 verbatim to this interface. For further description of required functionality, 
       
   457 see TEffectStamp.
       
   458 
       
   459 @see TEffectStamp
       
   460 @publishedPartner
       
   461 @released
       
   462 */	
       
   463 class MEffectStamp : public MEffect
       
   464 	{
       
   465 public:	
       
   466 	/**
       
   467 	This must provide an implementation as defined by TEffectStamp::SmoothnessLevelL()
       
   468 	
       
   469 	@see TEffectStamp::SmoothnessLevelL()
       
   470 	*/
       
   471 	virtual TInt SmoothnessLevelL() const = 0;
       
   472 	
       
   473 	/**
       
   474 	This must provide an implementation as defined by TEffectStamp::ThresholdLevelL()
       
   475 	
       
   476 	@see TEffectStamp::ThresholdLevelL()
       
   477 	*/
       
   478 	virtual TInt ThresholdLevelL() const = 0;
       
   479 	
       
   480 	/**
       
   481 	This must provide an implementation as defined by TEffectStamp::SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel)
       
   482 	
       
   483 	@see TEffectStamp::SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel)
       
   484 	*/
       
   485 	virtual void SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel) = 0;
       
   486 	};		
       
   487 
       
   488 /**
       
   489 Plugin API for the sketch photoart effect.
       
   490 The TEffectSketch uses this interface class to get access to the image prosessor plugin effect. 
       
   491 Once this has been constructed, calls to method functions of TEffectSketch are passed
       
   492 verbatim to this interface. For further description of required functionality, 
       
   493 see TEffectSketch.
       
   494 
       
   495 @see TEffectSketch
       
   496 @publishedPartner
       
   497 @released
       
   498 */		
       
   499 class MEffectSketch : public MEffect
       
   500 	{
       
   501 public:	
       
   502 	/**
       
   503 	This must provide an implementation as defined by TEffectSketch::SketchModeL()
       
   504 	
       
   505 	@see TEffectSketch::SketchModeL()
       
   506 	*/
       
   507 	virtual TEffectSketch::TSketchMode SketchModeL() const = 0;
       
   508 	
       
   509 	/**
       
   510 	This must provide an implementation as defined by TEffectSketch::SetSketchModeL(TSketchMode aSketchMode)
       
   511 	
       
   512 	@see TEffectSketch::SetSketchModeL(TSketchMode aSketchMode)
       
   513 	*/
       
   514 	virtual void SetSketchModeL(TEffectSketch::TSketchMode aSketchMode) = 0;
       
   515 	};		
       
   516 
       
   517 /**
       
   518 Plugin API for the noise photoart effect.
       
   519 The TEffectNoise uses this interface class to get access to the image prosessor plugin effect. 
       
   520 Once this has been constructed, calls to method functions of TEffectNoise are passed
       
   521 verbatim to this interface. For further description of required functionality, 
       
   522 see TEffectNoise.
       
   523 
       
   524 @see TEffectNoise
       
   525 @publishedPartner
       
   526 @released
       
   527 */		
       
   528 class MEffectNoise  : public MEffect
       
   529 	{
       
   530 	};			
       
   531 
       
   532 /**
       
   533 Plugin API for the moonlight photoart effect.
       
   534 The TEffectMoonlight uses this interface class to get access to the image prosessor plugin effect. 
       
   535 Once this has been constructed, calls to method functions of TEffectMoonlight are passed
       
   536 verbatim to this interface. For further description of required functionality, 
       
   537 see TEffectMoonlight.
       
   538 
       
   539 @see TEffectMoonlight
       
   540 @publishedPartner
       
   541 @released
       
   542 */		
       
   543 class MEffectMoonlight : public MEffect
       
   544 	{
       
   545 public:	
       
   546 	/**
       
   547 	This must provide an implementation as defined by TEffectMoonlight::LevelL()
       
   548 	
       
   549 	@see TEffectMoonlight::ClockL()
       
   550 	*/
       
   551 	virtual TInt16 ClockL() const = 0;
       
   552 	
       
   553 	/**
       
   554 	This must provide an implementation as defined by TEffectMoonlight::ApplyL(TInt aClock)
       
   555 	
       
   556 	@see TEffectMoonlight::SetClockL(TInt16 aClock)
       
   557 	*/
       
   558 	virtual void SetClockL(TInt16 aClock) = 0;
       
   559 	};		
       
   560 	
       
   561 /**
       
   562 Plugin API for the frostedglass photoart effect.
       
   563 The TEffectFrostedGlass uses this interface class to get access to the image prosessor plugin effect. 
       
   564 Once this has been constructed, calls to method functions of TEffectFrostedGlass are passed
       
   565 verbatim to this interface. For further description of required functionality, 
       
   566 see TEffectFrostedGlass.
       
   567 
       
   568 @see TEffectFrostedGlass
       
   569 @publishedPartner
       
   570 @released
       
   571 */	
       
   572 class MEffectFrostedGlass  : public MEffect
       
   573 	{
       
   574 	};	
       
   575 
       
   576 /**
       
   577 Plugin API for the despeckle photoart effect.
       
   578 The TEffectDespeckle uses this interface class to get access to the image prosessor plugin effect. 
       
   579 Once this has been constructed, calls to method functions of TEffectDespeckle are passed
       
   580 verbatim to this interface. For further description of required functionality, 
       
   581 see TEffectDespeckle.
       
   582 
       
   583 @see TEffectDespeckle
       
   584 @publishedPartner
       
   585 @released
       
   586 */
       
   587 class MEffectDespeckle  : public MEffect
       
   588 	{
       
   589 	};	
       
   590 
       
   591 /**
       
   592 Plugin API for the blur photoart effect.
       
   593 The TEffectBlur uses this interface class to get access to the image prosessor plugin effect. 
       
   594 Once this has been constructed, calls to method functions of TEffectBlur are passed
       
   595 verbatim to this interface. For further description of required functionality, 
       
   596 see TEffectBlur.
       
   597 
       
   598 @see TEffectBlur
       
   599 @publishedPartner
       
   600 @released
       
   601 */
       
   602 class MEffectBlur  : public MEffect
       
   603 	{
       
   604 public:	
       
   605 	/**
       
   606 	This must provide an implementation as defined by TEffectBlur::RectL()
       
   607 	
       
   608 	@see TEffectBlur::RectL()
       
   609 	*/
       
   610 	virtual TRect RectL() const = 0;
       
   611 	
       
   612 	/**
       
   613 	This must provide an implementation as defined by TEffectBlur::SetRectL(TRect aRect)
       
   614 	
       
   615 	@see TEffectBlur::SetRectL(TRect aRect)
       
   616 	*/
       
   617 	virtual void SetRectL(TRect aRect) = 0;
       
   618 	};	
       
   619 	
       
   620 /**
       
   621 Plugin API for the colorization photoart effect.
       
   622 The TEffectColorization uses this interface class to get access to the image prosessor plugin effect. 
       
   623 Once this has been constructed, calls to method functions of TEffectColorization are passed
       
   624 verbatim to this interface. For further description of required functionality, 
       
   625 see TEffectColorization.
       
   626 
       
   627 @see TEffectColorization
       
   628 @publishedPartner
       
   629 @released
       
   630 */	
       
   631 class MEffectColorization : public MEffect
       
   632 	{
       
   633 public:	
       
   634 	/**
       
   635 	This must provide an implementation as defined by TEffectColorization::RgbL()
       
   636 	
       
   637 	@see TEffectColorization::ReferenceColorL()
       
   638 	*/
       
   639 	virtual TRgb ReferenceColorL() const = 0;
       
   640 	
       
   641 	/**
       
   642 	This must provide an implementation as defined by TEffectColorization::LuminanceStrengthL()
       
   643 	
       
   644 	@see TEffectColorization::LuminanceStrengthL()
       
   645 	*/
       
   646 	virtual TInt LuminanceStrengthL() const = 0;
       
   647 	
       
   648 	/**
       
   649 	This must provide an implementation as defined by TEffectColorization::ChrominanceStrengthL()
       
   650 	
       
   651 	@see TEffectColorization::ChrominanceStrengthL()
       
   652 	*/
       
   653 	virtual TInt ChrominanceStrengthL() const = 0;
       
   654 	
       
   655 	/**
       
   656 	This must provide an implementation as defined by TEffectColorization::SetColorizationLevelL(TRgb aRgb, TInt aLuminanceStrength, TInt aChrominanceStrength)
       
   657 	
       
   658 	@see TEffectColorization::SetColorizationL(TRgb aReferenceColor, TInt aLuminanceStrength, TInt aChrominanceStrength)
       
   659 	*/
       
   660 	virtual void SetColorizationL(TRgb aReferenceColor, TInt aLuminanceStrength, TInt aChrominanceStrength) = 0;
       
   661 	};	
       
   662 	
       
   663 /**
       
   664 Plugin API for the cartoon photoart effect.
       
   665 The TEffectCartoon uses this interface class to get access to the image prosessor plugin effect. 
       
   666 Once this has been constructed, calls to method functions of TEffectCartoon are passed
       
   667 verbatim to this interface. For further description of required functionality, 
       
   668 see TEffectCartoon.
       
   669 
       
   670 @see TEffectCartoon
       
   671 @publishedPartner
       
   672 @released
       
   673 */	
       
   674 class MEffectCartoon : public MEffect
       
   675 	{
       
   676 public:	
       
   677 	/**
       
   678 	This must provide an implementation as defined by TEffectCartoon::DistinctEdgesL()
       
   679 	
       
   680 	@see TEffectCartoon::DistinctEdgesL()
       
   681 	*/	
       
   682 	virtual TBool DistinctEdgesL() const = 0;
       
   683 	
       
   684 	/**
       
   685 	This must provide an implementation as defined by TEffectCartoon::SetDistinctEdgesL(TBool aDistinctEdges)
       
   686 	
       
   687 	@see TEffectCartoon::SetDistinctEdgesL(TBool aDistinctEdges)
       
   688 	*/
       
   689 	virtual void SetDistinctEdgesL(TBool aDistinctEdges) = 0;
       
   690 	};		
       
   691 		
       
   692 /**
       
   693 Plugin API for the localboost effect.
       
   694 The TEffectLocalBoost uses this interface class to get access to the image prosessor plugin effect. 
       
   695 Once this has been constructed, calls to method functions of TEffectLocalBoost are passed
       
   696 verbatim to this interface. For further description of required functionality, 
       
   697 see TEffectLocalBoost.
       
   698 
       
   699 @see TEffectLocalBoost
       
   700 @publishedPartner
       
   701 @released
       
   702 */		
       
   703 class MEffectLocalBoost : public MEffect
       
   704 	{
       
   705 	};		
       
   706 
       
   707 /**
       
   708 Plugin API for the colorboost effect.
       
   709 The TEffectColorBoost uses this interface class to get access to the image prosessor plugin effect. 
       
   710 Once this has been constructed, calls to method functions of TEffectColorBoost are passed
       
   711 verbatim to this interface. For further description of required functionality, 
       
   712 see TEffectColorBoost.
       
   713 
       
   714 @see TEffectColorBoost
       
   715 @publishedPartner
       
   716 @released
       
   717 */	
       
   718 class MEffectColorBoost : public MEffect
       
   719 	{
       
   720 	};	
       
   721 
       
   722 /**
       
   723 Plugin API for the whitebalance effect.
       
   724 The TEffectWhiteBalance uses this interface class to get access to the image prosessor plugin effect. 
       
   725 Once this has been constructed, calls to method functions of TEffectWhiteBalance are passed
       
   726 verbatim to this interface. For further description of required functionality, 
       
   727 see TEffectWhiteBalance.
       
   728 
       
   729 @see TEffectWhiteBalance
       
   730 @publishedPartner
       
   731 @released
       
   732 */	
       
   733 class MEffectWhiteBalance : public MEffect
       
   734 	{
       
   735 public:	
       
   736 	/**
       
   737 	This must provide an implementation as defined by TEffectWhiteBalance::BalanceModeL()
       
   738 	
       
   739 	@see TEffectWhiteBalance::BalanceModeL()
       
   740 	*/
       
   741 	virtual TEffectWhiteBalance::TWhiteBalanceMode WhiteBalanceModeL() const = 0;
       
   742 	
       
   743 	/**
       
   744 	This must provide an implementation as defined by TEffectWhiteBalance::ReferenceWhiteColorL()
       
   745 	
       
   746 	@see TEffectWhiteBalance::ReferenceWhiteColorL()
       
   747 	*/
       
   748 	virtual TRgb ReferenceWhiteColorL() const = 0;
       
   749 	
       
   750 	/**
       
   751 	This must provide an implementation as defined by TEffectWhiteBalance::SetWhiteBalanceL(TRgb aRgb)
       
   752 	
       
   753 	@see TEffectWhiteBalance::SetWhiteBalanceL(TWhiteBalanceMode aWhiteBalanceMode, TRgb aReferenceWhiteColor)
       
   754 	*/
       
   755 	virtual void SetWhiteBalanceL(TEffectWhiteBalance::TWhiteBalanceMode aWhiteBalanceMode, TRgb aReferenceWhiteColor) = 0;
       
   756 	};		
       
   757 	
       
   758 /**
       
   759 Plugin API for the autolevels effect.
       
   760 The TEffectAutoLevels uses this interface class to get access to the image prosessor plugin effect. 
       
   761 Once this has been constructed, calls to method functions of TEffectAutoLevels are passed
       
   762 verbatim to this interface. For further description of required functionality, 
       
   763 see TEffectAutoLevels.
       
   764 
       
   765 @see TEffectAutoLevels
       
   766 @publishedPartner
       
   767 @released
       
   768 */		
       
   769 class MEffectAutoLevels  : public MEffect
       
   770 	{
       
   771 	};		
       
   772 
       
   773 /**
       
   774 Plugin API for the levels effect.
       
   775 The TEffectLevels uses this interface class to get access to the image prosessor plugin effect. 
       
   776 Once this has been constructed, calls to method functions of TEffectLevels are passed
       
   777 verbatim to this interface. For further description of required functionality, 
       
   778 see TEffectLevels.
       
   779 
       
   780 @see TEffectLevels
       
   781 @publishedPartner
       
   782 @released
       
   783 */	
       
   784 class MEffectLevels : public MEffect
       
   785 	{
       
   786 public:	
       
   787 	/**
       
   788 	This must provide an implementation as defined by TEffectLevels::WhiteLevelL()
       
   789 	
       
   790 	@see TEffectLevels::WhiteLevelL()
       
   791 	*/
       
   792 	virtual TReal32 WhiteLevelL() const = 0;
       
   793 	
       
   794 	/**
       
   795 	This must provide an implementation as defined by TEffectLevels::GrayLevelL()
       
   796 	
       
   797 	@see TEffectLevels::GrayLevelL()
       
   798 	*/
       
   799 	virtual TReal32 GrayLevelL() const = 0;
       
   800 	
       
   801 	/**
       
   802 	This must provide an implementation as defined by TEffectLevels::BlackLevelL()
       
   803 	
       
   804 	@see TEffectLevels::BlackLevelL()
       
   805 	*/
       
   806 	virtual TReal32 BlackLevelL() const = 0;
       
   807 	
       
   808 	/**
       
   809 	This must provide an implementation as defined by TEffectLevels::SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel)
       
   810 	
       
   811 	@see TEffectLevels::SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel)
       
   812 	*/
       
   813 	virtual void SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel) = 0;
       
   814 	};		
       
   815 
       
   816 /**
       
   817 Plugin API for the exposure effect.
       
   818 The TEffectExposure uses this interface class to get access to the image prosessor plugin effect. 
       
   819 Once this has been constructed, calls to method functions of TEffectExposure are passed
       
   820 verbatim to this interface. For further description of required functionality, 
       
   821 see TEffectExposure.
       
   822 
       
   823 @see TEffectExposure
       
   824 @publishedPartner
       
   825 @released
       
   826 */	
       
   827 class MEffectExposure : public MEffect
       
   828 	{
       
   829 	};
       
   830 
       
   831 /**
       
   832 Plugin API for the spotlight effect.
       
   833 The TEffectSpotlight uses this interface class to get access to the image prosessor plugin effect. 
       
   834 Once this has been constructed, calls to method functions of TEffectSpotlight are passed
       
   835 verbatim to this interface. For further description of required functionality, 
       
   836 see TEffectSpotlight.
       
   837 
       
   838 @see TEffectSpotlight
       
   839 @publishedPartner
       
   840 @released
       
   841 */	
       
   842 class MEffectSpotLight : public MEffect
       
   843 	{
       
   844 public:	
       
   845 	/**
       
   846 	This must provide an implementation as defined by TEffectSpotlight::SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize)
       
   847 	
       
   848 	@see TEffectSpotlight::SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize)
       
   849 	*/
       
   850 	virtual void SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize) const = 0;
       
   851 	
       
   852 	/**
       
   853 	This must provide an implementation as defined by TEffectSpotlight::SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize)
       
   854 	
       
   855 	@see TEffectSpotlight::SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize)
       
   856 	*/
       
   857 	virtual void SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize) = 0;
       
   858 	};
       
   859 
       
   860 /**
       
   861 Plugin API for the customized transformation effect.
       
   862 The TEffectCustomTransformation uses this interface class to get access to the image prosessor plugin effect. 
       
   863 Once this has been constructed, calls to method functions of TEffectCustomTransformation are passed
       
   864 verbatim to this interface. For further description of required functionality, 
       
   865 see TEffectCustomTransformation.
       
   866 
       
   867 @see TEffectCustomTransformation
       
   868 @publishedPartner
       
   869 @released
       
   870 */		
       
   871 class MEffectCustomTransformation : public MEffect
       
   872 	{
       
   873 public:	
       
   874 	/**
       
   875 	This must provide an implementation as defined by TEffectCustomTransformation::SetInputL(const TDesC& aFilename)
       
   876 	
       
   877 	@see TEffectCustomTransformation::SetInputL(const TDesC& aFilename)
       
   878 	*/
       
   879 	virtual void SetInputL(const TDesC& aFilename) = 0;
       
   880 	
       
   881 	/**
       
   882 	This must provide an implementation as defined by TEffectCustomTransformation::SetInputL(const TDesC8& aBuffer)
       
   883 	
       
   884 	@see TEffectCustomTransformation::SetInputL(const TDesC8& aBuffer)
       
   885 	*/
       
   886 	virtual void SetInputL(const TDesC8& aBuffer) = 0;
       
   887 	};
       
   888 	
       
   889 /**
       
   890 Plugin API for the Geometrical Operation
       
   891 The TGeometricalOperation uses this interface class to get access to the image prosessor plugin effect. 
       
   892 Once this has been constructed, calls to method functions of TGeometricalOperation are passed
       
   893 verbatim to this interface. For further description of required functionality, 
       
   894 see TGeometricalOperation.
       
   895 
       
   896 @see TGeometricalOperation
       
   897 @publishedPartner
       
   898 @released
       
   899 */	
       
   900 class MGeometricalOperation : public MEffect
       
   901 	{
       
   902 public:	
       
   903 	/**
       
   904 	This must provide an implementation as defined by TGeometricalOperation::Operation()
       
   905 	
       
   906 	@see TGeometricalOperation::Operation()
       
   907 	*/
       
   908 	virtual CImgProcessor::TOperation Operation() const = 0;
       
   909 	
       
   910 	/**
       
   911 	This must provide an implementation as defined by TGeometricalOperation::SetOperationL(CImgProcessor::TOperation aOperation)
       
   912 	
       
   913 	@see TGeometricalOperation::SetOperationL(CImgProcessor::TOperation aOperation)
       
   914 	*/
       
   915 	virtual void SetOperationL(CImgProcessor::TOperation aOperation) = 0;
       
   916 	};
       
   917 
       
   918 /**
       
   919 Plugin API for the insert border effect.
       
   920 The TEffectBorder uses this interface class to get access to the image prosessor plugin effect. 
       
   921 Once this has been constructed, calls to method functions of TEffectBorder are passed
       
   922 verbatim to this interface. For further description of required functionality, 
       
   923 see TEffectBorder.
       
   924 
       
   925 @see TEffectBorder
       
   926 @publishedPartner
       
   927 @released
       
   928 */		
       
   929 class MEffectBorder : public MEffect
       
   930 	{
       
   931 public:	
       
   932 	/**
       
   933 	This must provide an implementation as defined by TEffectBorder::SetInputL(const TDesC& aFilename)
       
   934 	
       
   935 	@see TEffectBorder::SetInputL(const TDesC& aFilename)
       
   936 	*/
       
   937 	virtual void SetInputL(const TDesC& aFilename) = 0;
       
   938 	
       
   939 	/**
       
   940 	This must provide an implementation as defined by TEffectBorder::SetInputL(const TDesC8& aBuffer)
       
   941 	
       
   942 	@see TEffectBorder::SetInputL(const TDesC8& aBuffer)
       
   943 	*/
       
   944 	virtual void SetInputL(const TDesC8& aBuffer) = 0;
       
   945 	
       
   946 	/**
       
   947 	This must provide an implementation as defined by TEffectBorder::SetInputL(const CFbsBitmap& aBitmap)
       
   948 	
       
   949 	@see TEffectBorder::SetInputL(const TDesC8& aBitmap)
       
   950 	*/
       
   951 	virtual void SetInputL(const CFbsBitmap& aBitmap) = 0;
       
   952 	};	
       
   953 	
       
   954 	}//namespace Plugin
       
   955 	}//namespace ImageProcessor
       
   956 
       
   957 #endif //__IMAGE_PROCESSOR_PLUGIN_EFFECT_H__