phoneclientserver/phoneserver/Inc/ImageHandler/CPhSrvSubSessionImageHandler.h
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
--- /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   <CPhCltBaseImageParams.h>
+#include    <bautils.h>
+#include    <fbs.h>
+#include 	<PhoneClientServerDomainPStypes.h>
+#include    <PhoneClientServerDomainPSkeys.h>
+
+// 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<CFbsBitmap> iVTBitMaps;
+        
+        // Stored operator logos.
+        RPointerArray<CPhSrvOperatorLogoContainer> 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