diff -r 000000000000 -r ff3b6d0fd310 phoneclientserver/phoneserver/Inc/ImageHandler/CPhSrvSubSessionImageHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneclientserver/phoneserver/Inc/ImageHandler/CPhSrvSubSessionImageHandler.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,325 @@ +/* +* Copyright (c) 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: Subsession for image handler. +* +*/ + +#ifndef CPHSRVSUBSESSIONIMAGEHANDLER_H +#define CPHSRVSUBSESSIONIMAGEHANDLER_H + +// INCLUDES +#include "CPhSrvSubSessionBase.h" +#include "cphsrvimagesaver.h" +#include "mphsrvimagesaverobserver.h" +#include +#include +#include +#include +#include + +// CLASS DECLARATION + +/** +* Image handler Subsession. +* +* @since Series60 3.0 +*/ +class CPhSrvSubSessionImageHandler +: public CPhSrvSubSessionBase, public MPhSrvImageSaverObserver + { + NONSHARABLE_CLASS( CPhSrvOperatorLogoContainer ) : public CBase + { + public: // Constructors and destructor + + /** + * Destructor. + */ + ~CPhSrvOperatorLogoContainer(); + + /** + * Constructor. + * @param aCountryCode country code for operator logo + * @param aNetworkCode network code for operator logo + * @param aBitmap bitmap to store. + */ + CPhSrvOperatorLogoContainer( + const TPhCltCountryCode aCountryCode, + const TPhCltNetworkCode aNetworkCode, + const TPhCltExtOperatorLogoType aLogoType, + CFbsBitmap* aBitmap ); + + // Stored image. + CFbsBitmap* iBitmap; + + // Operator logo country code. + TPhCltCountryCode iCountryCode; + + // Operator logo network code. + TPhCltNetworkCode iNetworkCode; + + // Operator logo type. + TPhCltExtOperatorLogoType iLogoType; + }; + + public: // Constructors and destructor + + /** + * Two-phased constructor. + * + * @param aSession The pre-opened Phone Server session. + * @return CPhSrvSubSessionImageHandler subsession. + */ + static CPhSrvSubSessionBase* NewL(CPhSrvSession& aSession ); + + /** + * Destructor. + * + */ + ~CPhSrvSubSessionImageHandler(); + + public: // from MPhSrvImageSaverObserver + /** + * @see MPhSrvImageSaverObserver::ImageSaved + */ + virtual void ImageSaved( TInt aResult ); + + private: // Functions from base classes. + + /** + * @see MPhSrvMessageDecoder + */ + TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); + + /** + * @see MPhSrvMessageProcessor + */ + void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); + + private: // SubSession function handlers. + + /** + * Handle the close command. + * + * @param aMessage The received message. + */ + void CmdSubSessionClose( const RMessage2& aMessage ); + + /** + * Handle the save command. + * + * @param aMessage The received message. + */ + void CmdSubSessionSaveImagesL( const RMessage2& aMessage ); + + /** + * Handle the load command. + * + * @param aMessage The received message. + */ + void CmdSubSessionLoadImagesL( const RMessage2& aMessage ); + + /** + * Open default VT image file and transfer handle to client. + */ + void CmdSubSessionOpenDefaultVtImageL( const RMessage2& aMessage ); + + /** + * Resolve default VT image file name. + */ + TInt ResolveDefaultVtImageFileName( TDes& aFileName ); + + /** + * Saves user defined VT image + */ + void CmdSubSessionSaveVtImageL( const RMessage2& aMessage ); + + /** + * Complete the load command. + * + * @param aMessage The received message. + */ + void CmdSubSessionCommitLoadL( const RMessage2& aMessage ); + + private: // New functions. + + /** + * Updates Publish & Subscribe information with an event + * happened to a operator logo. + * @param aCountryCode country code for a logo + * @param aNetworkCode network code for a logo + * @param aEvent event that occurred + * @return Symbian error code. + */ + TInt NotifyListeners( + const TPhCltCountryCode aCountryCode, + const TPhCltNetworkCode aNetworkCode, + const + TTelephonyOTALogoUpdate::TPSOperatorLogoUpdateEvent aEvent ); + + /** + * Updates Publish & Subscribe information with an event + * happened to a operator logo. + * @param aCountryCode country code for a logo + * @param aNetworkCode network code for a logo + * @param aEvent event that occurred + * @return Symbian error code. + */ + TInt NotifyListeners( + const TPhCltCountryCode aCountryCode, + const TPhCltNetworkCode aNetworkCode, + const + TTelOTALogoUpdate::TPSOperatorLogoUpdateEvent aEvent ); + + /** + * Parses operator logo file name and path. + * @param aCountryCode country code to use in deletion + * @param aNetworkCode network code to use in deletion + * @param aLogoType type of logo to delete + * @param aFileName file name in return + */ + void ConstructLogoFileNameL( + const TPhCltCountryCode aCountryCode, + const TPhCltNetworkCode aNetworkCode, + const TPhCltExtOperatorLogoType aLogoType, + TDes& aFileName ); + + /** + * Converts given logo type to file name id. + * @param aLogoType logo type to convert' + * @param aType type in return + */ + void AppendLogoTypeAsTextL( + const TPhCltExtOperatorLogoType aLogoType, TDes& aType ); + + /** + * Checks logo deletion and deletes if needed. + * @param aCountryCode country code to use in deletion + * @param aNetworkCode network code to use in deletion + * @param aLogoType type of logo to delete + * @param aFileHandle file handle to be checked + * @return ETrue if deleted + */ + TBool DeleteLogoL( + const TPhCltCountryCode aCountryCode, + const TPhCltNetworkCode aNetworkCode, + const TPhCltExtOperatorLogoType aLogoType, + const TInt aFileHandle ); + + + /** + * Does saving of video telephony images. + * + * @param aImages Image handle array. + */ + void DoSaveVTImageL( TPhCltImageArray& aImages ); + + /** + * Loads a video telephony image from file. + * @param aImages image handle array to return. + */ + void DoLoadVTImagesL( TPhCltImageArray& aImages ); + + /** + * Reads video telephony images from private path. + * @param aDefaultImage ETrue reads default image + * EFalse reads user defined image + */ + void DoReadVTImagesL( const TBool aDefaultImage ); + + /** + * Constructs search path for VT still/default image. + * It contains image name with wild card. + * @param aDefaultImage ETrue path for default image + * EFalse path for still image + * @param aPath returns plain drive+path w/o wild cards + * @return search path + */ + HBufC* ConstructVTImageSearchPathLC( + const TBool aDefaultImage, + TPtrC& aPath ) const; + + /** + * Does saving of operator logos. + * + * @param aImages Image handle array. + */ + void DoSaveOperatorLogoL( TPhCltImageArray& aImages ); + + /** + * Loads operator logo image from file. + * @param aImages image handle array to return. + */ + void DoLoadOperatorLogoL( TPhCltImageArray& aImages ); + + /** + * Completes operator logo loading, and releases resources. + * @param aImages image handle array. + */ + void DoCommitLoadLogo( TPhCltImageArray& aImages ); + + /** + * Completes vt image loading, and releases resources. + */ + void DoCommitLoadVTL(); + + /** + * Creates image storage directory. + */ + void MakeImageDirL(); + + private: + + /** + * Constructor. + * + * @param aSession The session where this subsession belongs. + */ + CPhSrvSubSessionImageHandler( CPhSrvSession& aSession ); + + /** + * Symbian constructor that may leave. + */ + void ConstructL(); + + private: // Data. + + // Stored VT bitmaps + RPointerArray iVTBitMaps; + + // Stored operator logos. + RPointerArray iOperatorLogos; + + // File server handle. + RFs iFs; + + // Path to privates. + TFileName iFilePath; + + // Used for defining pubsub key. + TBool iPropertyDefined; + + //System drive name + TFileName iDriveName; + + // Pointer to object performing image saving. Not owned. + CPhSrvImageSaver* iImageSaver; + + // message entry for VT image saving + RMessage2 iSaveVtImageMessage; + }; + +#endif // CPHSRVSUBSESSIONIMAGEHANDLER_H + + +// End of File