epoc32/include/mdaimageconverter.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// BC Version that uses CImageDecode/Encode objects but is essentially source
williamr@2
    15
// compatible with the old MdaImageConverter calls
williamr@2
    16
// 
williamr@2
    17
/**
williamr@2
    18
 @file
williamr@2
    19
 @deprecated
williamr@2
    20
*/
williamr@2
    21
williamr@2
    22
#ifndef __MDAIMAGECONVERTER_H__
williamr@2
    23
#define __MDAIMAGECONVERTER_H__
williamr@2
    24
williamr@2
    25
#include <fbs.h>
williamr@2
    26
williamr@2
    27
#include <icl/imagedata.h>
williamr@2
    28
#include <mda/client/resource.h>
williamr@2
    29
#include <mda/client/utility.h>
williamr@2
    30
#include <mda/common/video.h>
williamr@2
    31
williamr@2
    32
class CMdaServer;
williamr@2
    33
class REComSession;
williamr@2
    34
williamr@2
    35
/**
williamr@2
    36
@publishedAll
williamr@2
    37
@deprecated 7.0s - Replaced by Image Conversion library - no direct equivalent
williamr@2
    38
williamr@2
    39
This class has been deprecated in 7.0s.
williamr@2
    40
williamr@2
    41
An interface to a set of image conversion utility callback functions.
williamr@2
    42
williamr@2
    43
The class is a mixin and is intended to be inherited by the client
williamr@2
    44
classes which observe the image conversion operations. The functions
williamr@2
    45
encapsulated by this class are called when the open, create and
williamr@2
    46
conversion operations complete.The interface is also used by the
williamr@2
    47
bitmap image rotator and the bitmap image re-scaler. A reference to
williamr@2
    48
this object is passed as a parameter when constructing image
williamr@2
    49
conversion utility, image rotator and image re-scaler objects.
williamr@2
    50
williamr@2
    51
@since 5.0
williamr@2
    52
*/
williamr@2
    53
class MMdaImageUtilObserver
williamr@2
    54
	{
williamr@2
    55
public:
williamr@2
    56
williamr@2
    57
	/**
williamr@2
    58
	Defines required client behaviour when a create operation has
williamr@2
    59
	completed.
williamr@2
    60
	
williamr@2
    61
	@param  aError
williamr@2
    62
	        A value identifying the status of the create
williamr@2
    63
	        operation. KErrNone or one of the system
williamr@2
    64
	        wide error codes.
williamr@2
    65
	*/
williamr@2
    66
	virtual void MiuoCreateComplete(TInt aError) = 0;
williamr@2
    67
williamr@2
    68
	/**
williamr@2
    69
	Defines required client behaviour when an open operation has
williamr@2
    70
	completed.
williamr@2
    71
williamr@2
    72
	@param  aError
williamr@2
    73
	        A value identifying the status of the create
williamr@2
    74
	        operation. KErrNone or one of the system
williamr@2
    75
	        wide error codes.
williamr@2
    76
	*/
williamr@2
    77
	virtual void MiuoOpenComplete(TInt aError) = 0;
williamr@2
    78
williamr@2
    79
	/**
williamr@2
    80
	Defines required client behaviour when a conversion, image rotation or
williamr@2
    81
	image re-scaling operation has completed.
williamr@2
    82
williamr@2
    83
	@param  aError
williamr@2
    84
	        A value identifying the status of the operation.
williamr@2
    85
	        KErrNone or one of the system wide error
williamr@2
    86
	        codes.
williamr@2
    87
	*/
williamr@2
    88
	virtual void MiuoConvertComplete(TInt aError) = 0;
williamr@2
    89
	};
williamr@2
    90
williamr@2
    91
// Note: TFrameInfo is now declared via ImageClientApi - was previously here
williamr@2
    92
williamr@2
    93
williamr@2
    94
class CMdaImageUtilityPriv;
williamr@2
    95
williamr@2
    96
/**
williamr@2
    97
@publishedAll
williamr@2
    98
@deprecated 7.0s - Replaced by Image Conversion library - no direct equivalent
williamr@2
    99
williamr@2
   100
Defines the public interface to image conversion.
williamr@2
   101
williamr@2
   102
This class has been deprecated in 7.0s, it's functionality is now part of the 
williamr@2
   103
Image Converter Library. For more information see CImageEncoder and CImageDecoder.
williamr@2
   104
williamr@2
   105
Clients of the concrete conversion classes call the functions provided
williamr@2
   106
by this interface to perform the conversion. The implementation of
williamr@2
   107
these functions is provided either by the concrete conversion classes
williamr@2
   108
themselves or by private implementation classes.
williamr@2
   109
williamr@2
   110
@since 5.0
williamr@2
   111
@see CImageEncoder
williamr@2
   112
@see CImageDecoder
williamr@2
   113
*/
williamr@2
   114
class CMdaImageUtility : public CActive, private MMdaObjectStateChangeObserver
williamr@2
   115
	{
williamr@2
   116
friend class CMdaImageUtilityPriv;
williamr@2
   117
williamr@2
   118
public:
williamr@2
   119
	virtual ~CMdaImageUtility();
williamr@2
   120
	IMPORT_C virtual void Close();
williamr@2
   121
williamr@2
   122
	/**
williamr@2
   123
	Begins the image conversion operation for the specified frame
williamr@2
   124
	overloaded function.
williamr@2
   125
	
williamr@2
   126
	The operation is asynchronous. When the conversion operation is
williamr@2
   127
	complete, successfully or otherwise, the callback function
williamr@2
   128
	MMdaImageUtilObserver::MiuoConvertComplete() is
williamr@2
   129
	called.When converting from a file or descriptor to a bitmap, the
williamr@2
   130
	operation can complete with KErrUnderflow, if there is
williamr@2
   131
	insufficient information in the file or descriptor. Typically, this
williamr@2
   132
	occurs when using the file or descriptor as a cache. In this
williamr@2
   133
	situation, the conversion operation should be performed repeatedly
williamr@2
   134
	until the file or descriptor has accumulated enough information for
williamr@2
   135
	the operation to complete with KErrNone. As much of the
williamr@2
   136
	image as is present is converted and written to the target bitmap at
williamr@2
   137
	each call to this function.
williamr@2
   138
	
williamr@2
   139
	@param	aBitmap
williamr@2
   140
			A reference to a bitmap. This may be a source or a
williamr@2
   141
			target for the conversion process, depending on the
williamr@2
   142
			concrete conversion class utility being used.
williamr@2
   143
	@param	aFrameNumber
williamr@2
   144
			The frame number. This value is relative to zero. For
williamr@2
   145
			those concrete conversion classes which perform
williamr@2
   146
			conversion from a bitmap, this value must always be
williamr@2
   147
			zero. For those concrete conversion classes which
williamr@2
   148
			perform conversion to a bitmap, this value must be
williamr@2
   149
			less than the number of frames in the image.
williamr@2
   150
	*/
williamr@2
   151
	virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0) = 0;
williamr@2
   152
williamr@2
   153
	/**
williamr@2
   154
	Begins the image conversion operation for the specified frame overloaded function.
williamr@2
   155
williamr@2
   156
	The operation is asynchronous. When the conversion operation is complete, successfully or otherwise, the
williamr@2
   157
	callback function MMdaImageUtilObserver::MiuoConvertComplete() is called.When converting from a file or
williamr@2
   158
	descriptor to a bitmap, the operation can complete with KErrUnderflow, if there is insufficient information
williamr@2
   159
	in the file or descriptor. Typically, this occurs when using the file or descriptor as a cache. In this
williamr@2
   160
	situation, the conversion operation should be performed repeatedly until the file or descriptor has accumulated
williamr@2
   161
	enough information for the operation to complete with KErrNone. As much of the image as is present is converted
williamr@2
   162
	and written to the target bitmap at each call to this function.
williamr@2
   163
williamr@2
   164
	@param  aBitmap
williamr@2
   165
	        A reference to a bitmap. This may be a source or a target for the conversion process, depending on
williamr@2
   166
            the concrete conversion class utility being used.
williamr@2
   167
	@param	aMaskBitmap
williamr@2
   168
			A source or target mask bitmap, if present.
williamr@2
   169
	@param  aFrameNumber
williamr@2
   170
            The frame number. This value is relative to zero. For those concrete conversion classes which perform
williamr@2
   171
            conversion from a bitmap, this value must always be zero. For those concrete conversion classes which
williamr@2
   172
            perform conversion to a bitmap, this value must be less than the number of frames in the image.
williamr@2
   173
williamr@2
   174
	@see    CMdaImageUtility::ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0)
williamr@2
   175
	*/
williamr@2
   176
	virtual void ConvertL(CFbsBitmap& aBitmap,CFbsBitmap& aMaskBitmap,TInt aFrameNumber = 0) = 0;
williamr@2
   177
williamr@2
   178
	/**
williamr@2
   179
	Cancels the conversion operation.
williamr@2
   180
williamr@2
   181
	The callback function MMdaImageUtilObserver::MiuoConvertComplete() is not called.
williamr@2
   182
	*/
williamr@2
   183
	virtual void CancelConvertL() = 0;
williamr@2
   184
	IMPORT_C virtual void FrameInfo(TInt aFrame,TFrameInfo& aInfo) const;
williamr@2
   185
	IMPORT_C virtual TInt FrameCount() const;
williamr@2
   186
public:
williamr@2
   187
	// Reserved functions - do not call
williamr@2
   188
	virtual void ImageUtil_Reserved1();
williamr@2
   189
	virtual void ImageUtil_Reserved2();
williamr@2
   190
	virtual void ImageUtil_Reserved3();
williamr@2
   191
	virtual void ImageUtil_Reserved4();
williamr@2
   192
protected:
williamr@2
   193
	/**
williamr@2
   194
	@internalComponent
williamr@2
   195
	*/
williamr@2
   196
	CMdaImageUtility();
williamr@2
   197
	virtual void DoClose();
williamr@2
   198
	// From MMdaObjectStateChangeObserver
williamr@2
   199
	virtual void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
williamr@2
   200
	/**
williamr@2
   201
	@internalComponent
williamr@2
   202
	*/
williamr@2
   203
	void SelfComplete(TInt aError);
williamr@2
   204
	/**
williamr@2
   205
	@internalComponent
williamr@2
   206
	*/
williamr@2
   207
	void DoCancel();
williamr@2
   208
protected:
williamr@2
   209
	/**@internalTechnology*/
williamr@2
   210
	CMdaImageUtilityPriv* iProperties;
williamr@2
   211
	};
williamr@2
   212
williamr@2
   213
williamr@2
   214
class CImageDecoder;
williamr@2
   215
class CMdaImageDataReadUtilityPriv;
williamr@2
   216
williamr@2
   217
/**
williamr@2
   218
@publishedAll
williamr@2
   219
@deprecated
williamr@2
   220
williamr@2
   221
Base class used in the derivation of
williamr@2
   222
CMdaImageDescToBitmapUtility and
williamr@2
   223
CMdaImageFileToBitmapUtility.
williamr@2
   224
williamr@2
   225
It has no user accessible functions.
williamr@2
   226
williamr@2
   227
Replaced by Image Conversion library - see CImageDecoder
williamr@2
   228
williamr@2
   229
@since 6.0
williamr@2
   230
@see CImageDecoder
williamr@2
   231
*/
williamr@2
   232
class CMdaImageDataReadUtility : public CMdaImageUtility
williamr@2
   233
	{
williamr@2
   234
friend class CMdaImageDataReadUtilityPriv;
williamr@2
   235
williamr@2
   236
public:
williamr@2
   237
	virtual ~CMdaImageDataReadUtility();
williamr@2
   238
	// From CMdaImageUtility
williamr@2
   239
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
williamr@2
   240
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap,CFbsBitmap& aMaskBitmap,TInt aFrameNumber = 0);
williamr@2
   241
	IMPORT_C virtual void CancelConvertL();
williamr@2
   242
	// from CActive
williamr@2
   243
	virtual void RunL();
williamr@2
   244
	virtual void DoCancel();
williamr@2
   245
	IMPORT_C virtual const TDesC& FrameCommentL(TInt aFrameNumber);
williamr@2
   246
public:
williamr@2
   247
	// Reserved functions - do not call
williamr@2
   248
	virtual void ImageReadUtil_Reserved2();
williamr@2
   249
	virtual void ImageReadUtil_Reserved3();
williamr@2
   250
	virtual void ImageReadUtil_Reserved4();
williamr@2
   251
protected:
williamr@2
   252
	// Creates relevant iDecoder property - depending on subclass.
williamr@2
   253
	// Called by "background" AO processing.
williamr@2
   254
	/**
williamr@2
   255
	@internalComponent
williamr@2
   256
	*/
williamr@2
   257
 	void DoOpenL();
williamr@2
   258
	// From CMdaImageUtility
williamr@2
   259
	virtual void DoClose();
williamr@2
   260
private:
williamr@2
   261
	inline CMdaImageDataReadUtilityPriv* Properties() const;
williamr@2
   262
	};
williamr@2
   263
williamr@2
   264
williamr@2
   265
class CImageEncoder;
williamr@2
   266
class CMdaImageDataWriteUtilityPriv;
williamr@2
   267
williamr@2
   268
/**
williamr@2
   269
@publishedAll
williamr@2
   270
@deprecated 7.0s - Replaced by Image Conversion library - see CImageEncoder
williamr@2
   271
williamr@2
   272
Base class used in the derivation of CMdaImageBitmapToDescUtility and CMdaImageBitmapToFileUtility.
williamr@2
   273
williamr@2
   274
It has no user accessible functions.
williamr@2
   275
williamr@2
   276
@since 6.0
williamr@2
   277
williamr@2
   278
@see CMdaImageBitmapToDescUtility
williamr@2
   279
@see CMdaImageBitmapToFileUtility
williamr@2
   280
*/
williamr@2
   281
class CMdaImageDataWriteUtility : public CMdaImageUtility
williamr@2
   282
	{
williamr@2
   283
friend class CMdaImageDataWriteUtilityPriv;
williamr@2
   284
williamr@2
   285
public:
williamr@2
   286
	virtual ~CMdaImageDataWriteUtility();
williamr@2
   287
	// From CMdaImageUtility
williamr@2
   288
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
williamr@2
   289
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,TInt aFrameNumber = 0);
williamr@2
   290
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap,CFbsBitmap& aMaskBitmap,TInt aFrameNumber = 0);
williamr@2
   291
	IMPORT_C virtual void CancelConvertL();
williamr@2
   292
protected:
williamr@2
   293
	virtual void RunL();
williamr@2
   294
	virtual void DoCancel();
williamr@2
   295
protected:
williamr@2
   296
	virtual CImageEncoder* Encoder() const;
williamr@2
   297
public:
williamr@2
   298
	// Reserved functions - do not call
williamr@2
   299
	virtual void ImageWriteUtil_Reserved1();
williamr@2
   300
	virtual void ImageWriteUtil_Reserved2();
williamr@2
   301
	virtual void ImageWriteUtil_Reserved3();
williamr@2
   302
protected:
williamr@2
   303
	// Creates relevant <code>iEncoder</code> property - depending on subclass.
williamr@2
   304
	// Called by "background" AO processing.
williamr@2
   305
	/**
williamr@2
   306
	@internalComponent
williamr@2
   307
	*/
williamr@2
   308
	void DoCreateL(TBool aFullCreate=ETrue);
williamr@2
   309
	// From CMdaImageUtility
williamr@2
   310
	virtual void DoClose();
williamr@2
   311
private:
williamr@2
   312
	inline CMdaImageDataWriteUtilityPriv* Properties() const;
williamr@2
   313
	};
williamr@2
   314
williamr@2
   315
williamr@2
   316
class CMdaImageFileToBitmapUtilityPriv;
williamr@2
   317
/**
williamr@2
   318
@publishedAll
williamr@2
   319
@deprecated 7.0s - Replaced by Image Conversion library - use CImageDecoder::FileNewL()
williamr@2
   320
williamr@2
   321
Implements format conversion of a file based image to a bitmap.
williamr@2
   322
williamr@2
   323
This class has been deprecated in 7.0s, it's functionality is now part of the Image 
williamr@2
   324
Converter Library. For more information see CImageDecoder.
williamr@2
   325
williamr@2
   326
The class provides functions to create an instance of this conversion
williamr@2
   327
utility and to open an existing image file. Conversion is performed
williamr@2
   328
using the image conversion utility interface.
williamr@2
   329
williamr@2
   330
@since 5.0
williamr@2
   331
@see CImageDecoder
williamr@2
   332
*/
williamr@2
   333
class CMdaImageFileToBitmapUtility : public CMdaImageDataReadUtility
williamr@2
   334
	{
williamr@2
   335
public:
williamr@2
   336
	IMPORT_C static CMdaImageFileToBitmapUtility* NewL(MMdaImageUtilObserver& aObserver,CMdaServer* aServer = NULL);
williamr@2
   337
	IMPORT_C void OpenL(const TDesC& aFileName,TMdaClipFormat* aFormat = NULL,TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
williamr@2
   338
private:
williamr@2
   339
	inline CMdaImageFileToBitmapUtilityPriv* Properties() const;
williamr@2
   340
	};
williamr@2
   341
williamr@2
   342
williamr@2
   343
class CMdaImageDescToBitmapUtilityPriv;
williamr@2
   344
williamr@2
   345
/**
williamr@2
   346
@publishedAll
williamr@2
   347
@deprecated 7.0s - Replaced by Image Conversion library - use CImageDecoder::DataNewL()
williamr@2
   348
williamr@2
   349
Implements format conversion of a descriptor-based image to a bitmap.
williamr@2
   350
williamr@2
   351
This class has been deprecated in 7.0s, it's functionality is now part of the Image Converter 
williamr@2
   352
Library. For more information see CImageDecoder.
williamr@2
   353
williamr@2
   354
The class provides functions to create an instance of this conversion
williamr@2
   355
utility and to open and prepare the image data.Conversion is performed
williamr@2
   356
using the image conversion utility interface.
williamr@2
   357
williamr@2
   358
@since 5.0
williamr@2
   359
@see CImageDecoder
williamr@2
   360
 */
williamr@2
   361
class CMdaImageDescToBitmapUtility : public CMdaImageDataReadUtility
williamr@2
   362
	{
williamr@2
   363
public:
williamr@2
   364
	IMPORT_C static CMdaImageDescToBitmapUtility* NewL(MMdaImageUtilObserver& aObserver,CMdaServer* aServer = NULL);
williamr@2
   365
	IMPORT_C void OpenL(const TDesC8& aDescriptor,TMdaClipFormat* aFormat = NULL,TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
williamr@2
   366
private:
williamr@2
   367
	inline CMdaImageDescToBitmapUtilityPriv* Properties() const;
williamr@2
   368
	};
williamr@2
   369
williamr@2
   370
williamr@2
   371
class CMdaImageBitmapToFileUtilityPriv;
williamr@2
   372
/**
williamr@2
   373
@publishedAll
williamr@2
   374
@deprecated
williamr@2
   375
williamr@2
   376
Implements format conversion of a bitmap to a file-based image.
williamr@2
   377
williamr@2
   378
Replaced by Image Conversion library - use CImageEncoder::FileNewL()
williamr@2
   379
williamr@2
   380
The class provides functions to create an instance of this conversion
williamr@2
   381
utility and to create the file. Conversion is performed using the image
williamr@2
   382
conversion utility interface.
williamr@2
   383
williamr@2
   384
@since 5.0
williamr@2
   385
@see CImageEncoder::FileNewL()
williamr@2
   386
*/
williamr@2
   387
class CMdaImageBitmapToFileUtility : public CMdaImageDataWriteUtility
williamr@2
   388
	{
williamr@2
   389
public:
williamr@2
   390
	IMPORT_C static CMdaImageBitmapToFileUtility* NewL(MMdaImageUtilObserver& aObserver,CMdaServer* aServer = NULL);
williamr@2
   391
	IMPORT_C void CreateL(const TDesC& aFileName,TMdaClipFormat* aFormat,TMdaPackage* aCodec,TMdaPackage* aExtra);
williamr@2
   392
private:
williamr@2
   393
	inline CMdaImageBitmapToFileUtilityPriv* Properties() const;
williamr@2
   394
	};
williamr@2
   395
williamr@2
   396
williamr@2
   397
class CMdaImageBitmapToDescUtilityPriv;
williamr@2
   398
williamr@2
   399
/**
williamr@2
   400
@publishedAll
williamr@2
   401
@deprecated 
williamr@2
   402
williamr@2
   403
This class has been deprecated in 7.0s, it's functionality is now part of the 
williamr@2
   404
Image Converter Library. For more information see CImageEncoder.
williamr@2
   405
williamr@2
   406
@see CImageEncoder::DataNewL
williamr@2
   407
*/
williamr@2
   408
class CMdaImageBitmapToDescUtility : public CMdaImageDataWriteUtility
williamr@2
   409
	{
williamr@2
   410
public:
williamr@2
   411
	IMPORT_C static CMdaImageBitmapToDescUtility* NewL(MMdaImageUtilObserver& aObserver,CMdaServer* aServer = NULL);
williamr@2
   412
	IMPORT_C void CreateL(TDes8& aDescriptor,TMdaClipFormat* aFormat,TMdaPackage* aCodec,TMdaPackage* aExtra);
williamr@2
   413
private:
williamr@2
   414
	inline CMdaImageBitmapToDescUtilityPriv* Properties() const;
williamr@2
   415
	};
williamr@2
   416
williamr@2
   417
williamr@2
   418
class CMdaImageBitmapToBitmapUtilityPriv;
williamr@2
   419
williamr@2
   420
/**
williamr@2
   421
@publishedAll
williamr@2
   422
@deprecated
williamr@2
   423
williamr@2
   424
Implements bitmap to bitmap copying and colour depth conversion.
williamr@2
   425
williamr@2
   426
Replaced by Image Conversion library - use CImageEncoder::FileNewL()
williamr@2
   427
williamr@2
   428
@since 5.0
williamr@2
   429
@see CImageEncoder::FileNewL()
williamr@2
   430
*/
williamr@2
   431
class CMdaImageBitmapToBitmapUtility : public CMdaImageUtility
williamr@2
   432
	{
williamr@2
   433
friend class CMdaImageBitmapToBitmapUtilityPriv;
williamr@2
   434
williamr@2
   435
public:
williamr@2
   436
	IMPORT_C static CMdaImageBitmapToBitmapUtility* NewL(MMdaImageUtilObserver& aObserver, CMdaServer* aServer = NULL);
williamr@2
   437
	IMPORT_C ~CMdaImageBitmapToBitmapUtility();
williamr@2
   438
	IMPORT_C void OpenL(CFbsBitmap& aBitmap);
williamr@2
   439
	// from CMdaImageUtility
williamr@2
   440
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap, TInt aFrameNumber = 0);
williamr@2
   441
	IMPORT_C virtual void ConvertL(CFbsBitmap& aBitmap, CFbsBitmap& aMaskBitmap, TInt aFrameNumber = 0);
williamr@2
   442
	IMPORT_C virtual void CancelConvertL();
williamr@2
   443
	// From CActive
williamr@2
   444
	virtual void RunL();
williamr@2
   445
	virtual void DoCancel();
williamr@2
   446
protected:
williamr@2
   447
	// from CMdaImageUtility
williamr@2
   448
	virtual void DoClose();
williamr@2
   449
private:
williamr@2
   450
	inline CMdaImageBitmapToBitmapUtilityPriv* Properties() const;
williamr@2
   451
	};
williamr@2
   452
williamr@2
   453
williamr@2
   454
williamr@2
   455
class CMdaBitmapRotatorPriv;
williamr@2
   456
/**
williamr@2
   457
@publishedAll
williamr@2
   458
@deprecated 
williamr@2
   459
williamr@2
   460
Replaced by Image Conversion library - see CBitmapRotator
williamr@2
   461
williamr@2
   462
Rotates a bitmap.
williamr@2
   463
williamr@2
   464
The class offers a simple interface to perform bitmap rotations in
williamr@2
   465
clockwise 90 degree increments. The target bitmap is resized as
williamr@2
   466
necessary.
williamr@2
   467
williamr@2
   468
@since 5.0
williamr@2
   469
williamr@2
   470
@see
williamr@2
   471
CBitmapRotator
williamr@2
   472
*/
williamr@2
   473
class CMdaBitmapRotator : public CBase
williamr@2
   474
	{
williamr@2
   475
public:
williamr@2
   476
	/** Rotation angle.
williamr@2
   477
	*/
williamr@2
   478
	enum TRotationAngle
williamr@2
   479
		{
williamr@2
   480
		/** A clockwise rotation through 90 degrees.
williamr@2
   481
		*/
williamr@2
   482
		ERotation90DegreesClockwise,
williamr@2
   483
		/** A clockwise rotation through 180 degrees.
williamr@2
   484
		*/
williamr@2
   485
		ERotation180DegreesClockwise,
williamr@2
   486
		/** A clockwise rotation through 270 degrees.
williamr@2
   487
		*/
williamr@2
   488
		ERotation270DegreesClockwise,
williamr@2
   489
		/** The bitmap is mirrored about the horizontal axis.
williamr@2
   490
		*/
williamr@2
   491
		EMirrorFlipHorizontal,
williamr@2
   492
		/** The bitmap is mirrored about the vertical axis.
williamr@2
   493
		*/
williamr@2
   494
		EMirrorFlipVertical
williamr@2
   495
		};
williamr@2
   496
public:
williamr@2
   497
	IMPORT_C static CMdaBitmapRotator* NewL();
williamr@2
   498
	IMPORT_C virtual ~CMdaBitmapRotator();
williamr@2
   499
	IMPORT_C void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,CFbsBitmap& aTgtBitmap,TRotationAngle aAngle);
williamr@2
   500
	IMPORT_C void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,TRotationAngle aAngle);
williamr@2
   501
	IMPORT_C void CancelRotation();
williamr@2
   502
private:
williamr@2
   503
	CMdaBitmapRotatorPriv* iProperties;
williamr@2
   504
	};
williamr@2
   505
williamr@2
   506
williamr@2
   507
class CMdaBitmapScalerPriv;
williamr@2
   508
williamr@2
   509
/**
williamr@2
   510
@publishedAll
williamr@2
   511
@deprecated
williamr@2
   512
williamr@2
   513
Re-scales a bitmap.
williamr@2
   514
williamr@2
   515
Replaced by Image Conversion library - see CBitmapScaler
williamr@2
   516
williamr@2
   517
The class offers a simple interface to perform arbitrary re-scaling of
williamr@2
   518
a bitmap.
williamr@2
   519
williamr@2
   520
@since 5.0
williamr@2
   521
@see CBitmapScaler
williamr@2
   522
*/
williamr@2
   523
class CMdaBitmapScaler : public CBase
williamr@2
   524
	{
williamr@2
   525
public:
williamr@2
   526
	IMPORT_C static CMdaBitmapScaler* NewL();
williamr@2
   527
	IMPORT_C virtual ~CMdaBitmapScaler();
williamr@2
   528
	IMPORT_C void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,CFbsBitmap& aTgtBitmap,TBool aMaintainAspectRatio = ETrue);
williamr@2
   529
	IMPORT_C void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,TSize aDestSize,TBool aMaintainAspectRatio = ETrue);
williamr@2
   530
	IMPORT_C void CancelScaling();
williamr@2
   531
private:
williamr@2
   532
	CMdaBitmapScalerPriv* iProperties;
williamr@2
   533
	};
williamr@2
   534
williamr@2
   535
#endif