phonesrv_plat/phone_client_image_handler_api/inc/CPhCltImageHandler.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2004-2005 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:  Image storing and loading interface.
*
*/


#ifndef CPHCLTIMAGEHANDLER_H
#define CPHCLTIMAGEHANDLER_H

#include <e32base.h>
#include "CPhCltImageParams.h"

// FORWARD DECLARATIONS
class RPhCltServer;
class CPhCltImageParams;
class RFile;

/**
* Interface for image saving callback.
*/
class MPhCltImageObserver
    {
public:
    /**
    * Callback for image saving.
    * @param aResult KErrNone if image saving succeeded, or a Symbian OS
    *        error code in failure.
    */
    virtual void HandleImageSaveCompleteL( TInt aResult ) = 0;
    };
    
/**
*  Interface used in image storing to PhoneServer.
*
*  @lib PhoneClient.lib
*  @since S60 v3.2
*/
class CPhCltImageHandler : public CBase
    {
    
    public:  // Constructors 
        /**
        * Two-phased constructor.
        */
        IMPORT_C static CPhCltImageHandler* NewL();
        
    public: // New functions

        /**
        * Save image(s)
        * @param aParam parameters passed 
        * @return KErrNone if successful, Symbian error code otherwise.
        * NOTE: can be used to delete operator logos,
        * @see CPhCltExtOperatorLogoParams::SetCodesL
        * @see CPhCltExtOperatorLogoParams::AddImageL        
        */
        virtual TInt SaveImages( CPhCltImageParams& aParams ) = 0;
            
        /**
        * Load image(s)
        * @param aParam parameters in return passed 
        * @return KErrNone if successful, Symbian error code otherwise.
        */
        virtual TInt LoadImages( CPhCltImageParams*& aParams ) = 0;

        /**
        * Creates image parameter class.
        * @param aType type of the implementation class.
        * @return CPhCltBaseImageParams implementation class. 
        *         NULL if not supported.
        *         Ownership transferred.
        */
        IMPORT_C virtual CPhCltImageParams* 
            CPhCltBaseImageParamsL( const TPhCltImageType aType ) = 0; 
        
        
        /**
        * Saves user defined video call still image file. This makes copy
        * of original file to secure place.
        * @param aObserver callback for notifying result of the operation
        * @param aImagePath full path to image to be saved
        * @since S60 v5.0
        */
        virtual void SaveVtImageL( MPhCltImageObserver& aObserver,
            const TDesC& aImagePath ) = 0;
                        
        /**
        * Cancels pending image saving. This may be no-op from saving point
        * of view (image is actually saved) but resets internal state to such
        * that no operation is pending.
        * @since S60 v5.0
        */
        virtual void CancelSaveVtImage() = 0;
        
        /**
         * Opens user defined video call still image file.
         * @param aFile file handle that shall to point to image file
         *        Client should close the file after use.
         * @return KErrNone if successful, Symbian error code otherwise.
         * @since S60 v5.0
         */
        virtual TInt OpenVtImage( RFile& aFile ) = 0;
                
       /**
        * Opens predefined (read-only) video call still image file.
        * @param aFile file handle that shall point to image file.
        *        Client should close the file after use.
        * @return KErrNone if successful, Symbian error code otherwise.
        * @since S60 v5.0
        */
        virtual TInt OpenDefaultVtImage( RFile& aFile ) = 0;

      protected:
                               
        /**
        * C++ constructor.
        */
       CPhCltImageHandler();
    };


#endif      // CPHCLTIMAGEHANDLER_H

// End of File