services/terminalmodeservice/inc/upnpsvgimageconverter.h
author hgs
Fri, 06 Aug 2010 18:27:32 +0300
changeset 26 b6b8e90f9863
parent 24 e9457ebcc4df
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
hgs
parents:
diff changeset
     1
/**
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: CUpnpSvgImageConverter class declaration.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef __UPNPSVGIMAGECONVERTER_H__
hgs
parents:
diff changeset
    19
#define __UPNPSVGIMAGECONVERTER_H__
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// Include Files
hgs
parents:
diff changeset
    22
#include <SVGEngineInterfaceImpl.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
/**
hgs
parents:
diff changeset
    25
 * CUpnpSvgImageConverter class acts as an intermediate between the invoker and the
hgs
parents:
diff changeset
    26
 * actual converter.Class encapsulates svg to bitmap conversion process.
hgs
parents:
diff changeset
    27
 * Does all the pre-processing needed before invoking actual conversion API.
hgs
parents:
diff changeset
    28
 * It takes svg file as an input and provides bmp ( converted ) file as an output.
hgs
parents:
diff changeset
    29
 * This class is responsible for creating a new thread and allocating resources to it.
hgs
parents:
diff changeset
    30
 * The icon file conversion happens in the new thread being created.
hgs
parents:
diff changeset
    31
 */
hgs
parents:
diff changeset
    32
class CUpnpSvgImageConverter : public CBase                      
hgs
parents:
diff changeset
    33
    {
hgs
parents:
diff changeset
    34
public:
hgs
parents:
diff changeset
    35
    /**
hgs
parents:
diff changeset
    36
    * Two-phased constructor
hgs
parents:
diff changeset
    37
    * @param aIconWidth width of the requested icon
hgs
parents:
diff changeset
    38
    * @param aIconHeight height of the requested icon
hgs
parents:
diff changeset
    39
    */
hgs
parents:
diff changeset
    40
    static CUpnpSvgImageConverter* NewL( TInt aIconWidth, TInt aIconHeight );
hgs
parents:
diff changeset
    41
    /**
hgs
parents:
diff changeset
    42
     * Prepares the DOM for given SVG file, creates a new thread and returns
hgs
parents:
diff changeset
    43
     * the converted icon(bmp) file path
hgs
parents:
diff changeset
    44
     */ 
hgs
parents:
diff changeset
    45
    void ConvertToBitmapL( const TDesC& aSvgFile, RBuf& aBitmapFile );
hgs
parents:
diff changeset
    46
    ~CUpnpSvgImageConverter();
hgs
parents:
diff changeset
    47
    CFbsBitmap& BitmapObject()const;
hgs
parents:
diff changeset
    48
    //static thread method serving as thread's main function
hgs
parents:
diff changeset
    49
    static TInt ImageConverter( TAny* aParam );
hgs
parents:
diff changeset
    50
    //Leaving variant of thread function
hgs
parents:
diff changeset
    51
    static void ImageConverterL( CUpnpSvgImageConverter& aSvgConverter ); 
hgs
parents:
diff changeset
    52
  
hgs
parents:
diff changeset
    53
private: 
hgs
parents:
diff changeset
    54
    // Constructors
hgs
parents:
diff changeset
    55
    CUpnpSvgImageConverter( );
hgs
parents:
diff changeset
    56
    void ConstructL( TInt aIconWidth, TInt aIconHeight );
hgs
parents:
diff changeset
    57
    // Thread creation method
hgs
parents:
diff changeset
    58
    void StartThreadL( );
26
hgs
parents: 24
diff changeset
    59
    // "Getter" method to fetch file path
24
hgs
parents:
diff changeset
    60
    const TDesC& Filepath( )const;
hgs
parents:
diff changeset
    61
        
hgs
parents:
diff changeset
    62
private:
hgs
parents:
diff changeset
    63
    RFbsSession                  iFbsSession;
hgs
parents:
diff changeset
    64
    RFs                          iFileSession; 
hgs
parents:
diff changeset
    65
    CFbsBitmap*                  iMask;
hgs
parents:
diff changeset
    66
    CSvgEngineInterfaceImpl*     iSvgModule;
hgs
parents:
diff changeset
    67
    RBuf                         iBitMapFilePath;
hgs
parents:
diff changeset
    68
    CFbsBitmap*                  iBitmap;
hgs
parents:
diff changeset
    69
    };
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
#endif // __UPNPSVGIMAGECONVERTER_H__