phoneclientserver/phoneclient/Inc/ImageHandler/RPhCltImageHandler.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:45:17 +0300
branchRCL_3
changeset 19 7d48bed6ce0c
parent 0 ff3b6d0fd310
child 20 987c9837762f
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2004-2008 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:  PhoneServer interface for image handling.
*
*/

#ifndef RPHCLTIMAGEHANDLER_H
#define RPHCLTIMAGEHANDLER_H

//  INCLUDES
#include    <e32base.h>
#include    <phclttypes.h> 
#include    "cphcltoperatorlogocontainer.h" 
#include    "cphcltbaseimageparams.h" 


//  FORWARD DECLARATIONS
class RPhCltServer;


/**
*  PhoneServer interface for image handling.
*
*  @lib PhoneClient.lib
*  @since S60 v3.2
*/
class RPhCltImageHandler 
:   public RSubSessionBase
    {
    public: // Constructors and destructors.

        /**
         * Constructor.
         */
        RPhCltImageHandler();

    public: // New functions.

        /**
        * Open subsession to server.
        * 
        * @param aServer Pre-opened server session.
        * @return Symbian OS error code of the success of the opening.
        */
        TInt Open( RPhCltServer& aServer );

        /**
        * Close subsession.
        */
        void Close();
    
        /**
        * Save image(s).
        *
        * @param aParam An array of bitmap handles passed.
        * @return KErrNone if successful, Symbian error code otherwise.
        */
        TInt SaveImages( CPhCltImageParams& aParams );
            
        /**
        * Load image(s).
        *
        * @param aParam An array of bitmap handles passed.
        * @return KErrNone if successful, Symbian error code otherwise.
        */
        TInt LoadImages( CPhCltImageParams*& aParams );

        /**
        * Saves VT still image.
        */
        void SaveVtImage( TRequestStatus& aStatus, const TDesC& aFilePath );
        
        /**
         * Cancels image saving
         */
        void CancelSaveVtImage();

        /**
        * Opens VT still image file. Returns file handle that can be
        * used with AdoptFromServer.
        * @param aFileHandle file handle
        * @param aOpenDefault if true, opens predefined, if false opens
        * user defined image file.
        */
        TInt OpenVtImage( TInt& aFileHandle, const TBool aOpenDefault = EFalse );
        
    private:

        // Prohibit copy constructor if not deriving from CBase.
        RPhCltImageHandler( const RPhCltImageHandler& );

        // Prohibit assigment operator if not deriving from CBase.
        RPhCltImageHandler& operator=( 
            const RPhCltImageHandler& );
            
    private: // New functions.
        
        /**
        * Finalizes image load.
        * @param aImages handle array
        * @return Symbian error code.
        */
        TInt FinalizeLoad( TPckgBuf< TPhCltImageArray >& aImages );

        /**
        * Creates a copy of image.
        * @param aImages handle array
        * @return copied bitmap.
        */
        CFbsBitmap* CreateBitMapL( const TInt aHandle );
        
        /**
        * Ducplicates vt still images.
        * @param aImages handle array
        */
        void CopyStillsL( TPhCltImageArray& aImages );  
        
        /**
        * Duplicates operator logos.
        * @param aImages handle array
        */
        void CopyLogosL( TPhCltImageArray& aImages );
        
            
    private: // Data
    
        // Duplicated VT images.
        RPointerArray<CFbsBitmap> iVTBitMaps;
        
        // Duplicated operator logos.
        RPointerArray<CPhCltOperatorLogoContainer> iOperatorLogos;

    };

#endif    // RPHCLTIMAGEHANDLER_H

// End of File