services/terminalmodeservice/src/upnpiconconversionactive.cpp
author hgs
Fri, 23 Jul 2010 08:57:49 +0300
changeset 24 e9457ebcc4df
permissions -rw-r--r--
201029
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: CUpnpIconConversionActive class implementation.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "upnpiconconversionactive.h"
hgs
parents:
diff changeset
    19
#include "OstTraceDefinitions.h"
hgs
parents:
diff changeset
    20
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
    21
#include "upnpiconconversionactiveTraces.h"
hgs
parents:
diff changeset
    22
#endif
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// Literal 
hgs
parents:
diff changeset
    25
_LIT8(KBmpMimeType, "image/bmp");
hgs
parents:
diff changeset
    26
 
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// ============================ MEMBER FUNCTIONS ===================================
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    31
// CUpnpIconConversionActive::NewL
hgs
parents:
diff changeset
    32
// Two-phased constructor.
hgs
parents:
diff changeset
    33
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    34
//
hgs
parents:
diff changeset
    35
CUpnpIconConversionActive* CUpnpIconConversionActive::NewL( RFile& aBitmapFile )
hgs
parents:
diff changeset
    36
    {
hgs
parents:
diff changeset
    37
    OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_NEWL_ENTRY );
hgs
parents:
diff changeset
    38
    CUpnpIconConversionActive* self = new (ELeave) CUpnpIconConversionActive( ); 
hgs
parents:
diff changeset
    39
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
    40
    self->ConstructL( aBitmapFile );
hgs
parents:
diff changeset
    41
    CleanupStack::Pop(self);
hgs
parents:
diff changeset
    42
    return self;  
hgs
parents:
diff changeset
    43
    }
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    46
// CUpnpIconConversionActive::CUpnpIconConversionActive
hgs
parents:
diff changeset
    47
// C++ default constructor can NOT contain any code, that might leave.
hgs
parents:
diff changeset
    48
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    49
//
hgs
parents:
diff changeset
    50
CUpnpIconConversionActive::CUpnpIconConversionActive( )
hgs
parents:
diff changeset
    51
    :CActive(EPriorityStandard)
hgs
parents:
diff changeset
    52
    {
hgs
parents:
diff changeset
    53
    OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_ENTRY );
hgs
parents:
diff changeset
    54
    CActiveScheduler::Add(this);
hgs
parents:
diff changeset
    55
    OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_EXIT );
hgs
parents:
diff changeset
    56
    }
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    59
// CUpnpIconConversionActive::ConstructL
hgs
parents:
diff changeset
    60
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
    61
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    62
//
hgs
parents:
diff changeset
    63
void CUpnpIconConversionActive::ConstructL( RFile& aBitmapFile )
hgs
parents:
diff changeset
    64
    {
hgs
parents:
diff changeset
    65
    OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_CONSTRUCTL_ENTRY );
hgs
parents:
diff changeset
    66
    // Provides access to the ICL (image conversion library) encoders.
hgs
parents:
diff changeset
    67
    iEncoder = CImageEncoder::FileNewL( aBitmapFile,KBmpMimeType()); 
hgs
parents:
diff changeset
    68
    OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_CONSTRUCTL_EXIT );
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
// CUpnpIconConversionActive::~CUpnpIconConversionActive
hgs
parents:
diff changeset
    73
// Destructor
hgs
parents:
diff changeset
    74
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    75
// 
hgs
parents:
diff changeset
    76
CUpnpIconConversionActive::~CUpnpIconConversionActive()
hgs
parents:
diff changeset
    77
    {   
hgs
parents:
diff changeset
    78
    OstTraceFunctionEntry0( DUP1_CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_ENTRY );
hgs
parents:
diff changeset
    79
    Cancel();
hgs
parents:
diff changeset
    80
    delete iEncoder;
hgs
parents:
diff changeset
    81
    OstTraceFunctionExit0( DUP1_CUPNPICONCONVERSIONACTIVE_CUPNPICONCONVERSIONACTIVE_EXIT );
hgs
parents:
diff changeset
    82
    }
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
// CUpnpIconConversionActive::Convert 
hgs
parents:
diff changeset
    86
// Place where actual image conversion is invoked.
hgs
parents:
diff changeset
    87
// Its an asynchronous conversion.
hgs
parents:
diff changeset
    88
// @param aBitmap  Reference to Bitmap object
hgs
parents:
diff changeset
    89
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
    90
// 
hgs
parents:
diff changeset
    91
void CUpnpIconConversionActive::Convert( CFbsBitmap& aBitmap )
hgs
parents:
diff changeset
    92
    {   
hgs
parents:
diff changeset
    93
    OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_CONVERT_ENTRY );
hgs
parents:
diff changeset
    94
    TRequestStatus* status = &iStatus; 
hgs
parents:
diff changeset
    95
    // Converts image data held in CFbsBitmap object
hgs
parents:
diff changeset
    96
    iEncoder->Convert( status,aBitmap);   //Actual conversion API
hgs
parents:
diff changeset
    97
    SetActive();
hgs
parents:
diff changeset
    98
    OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_CONVERT_EXIT );
hgs
parents:
diff changeset
    99
    }
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
   102
// CUpnpIconConversionActive::RunL
hgs
parents:
diff changeset
   103
// Event handler. Stops the active scheduler.
hgs
parents:
diff changeset
   104
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
   105
// 
hgs
parents:
diff changeset
   106
void CUpnpIconConversionActive::RunL()
hgs
parents:
diff changeset
   107
    {
hgs
parents:
diff changeset
   108
    OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_RUNL_ENTRY );
hgs
parents:
diff changeset
   109
    CActiveScheduler::Stop();     
hgs
parents:
diff changeset
   110
    OstTraceFunctionExit0( CUPNPICONCONVERSIONACTIVE_RUNL_EXIT );
hgs
parents:
diff changeset
   111
    }
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
   114
// CUpnpIconConversionActive::DoCancel
hgs
parents:
diff changeset
   115
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
   116
//
hgs
parents:
diff changeset
   117
void CUpnpIconConversionActive::DoCancel()
hgs
parents:
diff changeset
   118
    {
hgs
parents:
diff changeset
   119
    
hgs
parents:
diff changeset
   120
    }
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
   123
// CUpnpIconConversionActive::FetchError
hgs
parents:
diff changeset
   124
// Returns the completion status.
hgs
parents:
diff changeset
   125
// @return Returns completion code.
hgs
parents:
diff changeset
   126
// ---------------------------------------------------------------------------------
hgs
parents:
diff changeset
   127
//
hgs
parents:
diff changeset
   128
TInt CUpnpIconConversionActive::FetchError()
hgs
parents:
diff changeset
   129
    {
hgs
parents:
diff changeset
   130
    OstTraceFunctionEntry0( CUPNPICONCONVERSIONACTIVE_FETCHERROR_ENTRY );
hgs
parents:
diff changeset
   131
    return ( iStatus.Int() );
hgs
parents:
diff changeset
   132
    }