mmsharing/mmshavailability/inc/musavasettingsimp.h
changeset 22 496ad160a278
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshavailability/inc/musavasettingsimp.h	Fri Jun 11 13:36:18 2010 +0300
@@ -0,0 +1,371 @@
+/*
+* Copyright (c) 2005-2007 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:  This is module interface class for MusAvailability Plug-in 
+*
+*/
+
+
+#ifndef __MUSAVASETTINGSIMP_H__
+#define __MUSAVASETTINGSIMP_H__
+
+//  INCLUDES
+#include "musavasettings.h"
+#include "musavasettingsobserver.h"
+#include "musunittesting.h"
+
+#include <e32base.h>
+#include <e32std.h>
+#include <badesca.h>
+
+class CMusAvaSip;
+
+/**
+ *  CMusAvaSettingsImp class represent the interface for module fetcher.
+ *
+ *  This interface class encapsulates module selection for availability Plug-in.
+ *
+ *  @lib musavailabilityplugin.lib
+ */
+
+class CMusAvaSettingsImp : public CBase,
+                           public MMusAvaSettings
+	{
+public:
+
+    /**
+     * Two-phased constructor
+     *
+     * @return Returns pointer to CMusAvaSettingsImp object
+     */
+     
+	static CMusAvaSettingsImp* NewL();
+	
+	/**
+     * Destructor
+     *
+     */
+
+	~CMusAvaSettingsImp();
+	
+	
+public: // from MMusAvaSettings
+
+    /**
+    * Returns the fast mode value.
+    */         
+
+    virtual MusSettingsKeys::TFastMode FastMode() const;
+	
+    /**
+     * Returns the manual activation
+     *
+     */   		
+    virtual TManualActivation ManualActivation();
+	
+    /**
+     * Returns the telephone number of remote host of active CS call.
+     *
+     * @return The telephone number.
+     */   		
+    virtual const TDesC& TelNumber() const;    	
+	
+    /**
+     * Returns the contact name of remote host of active CS call.
+     *
+     * @return The telephone number.
+     */   		
+    virtual const TDesC& ContactName() const;    	
+    
+    /**
+     * Returns a guess for the SIP address of the remote host
+     *
+     * @return The proposal for SIP address
+     */   		
+    virtual const TDesC& SipAddressProposal() const;    	
+
+    /**
+     * Returns the possible SIP addresses of the remote host.
+     *
+     * @return The SIP addresses in an array.
+     */   		
+    virtual const MDesCArray& SipAddresses() const;
+    
+    /**
+     * Returns the contact id of the remote host.
+     *
+     * @return The contact id; KErrNotFound, if not found any.
+     */   		
+    virtual TInt ContactId() const;
+
+    /**
+     * Returns the supported video codecs.
+     *
+     * @return The video codecs
+     */   		
+    virtual const MDesCArray& VideoCodecs() const;
+    
+    /**
+     * Returns the supported audio codecs.
+     *
+     * @return The supported audio codecs.
+     */   		
+    virtual const MDesCArray& AudioCodecs() const;
+
+    /**
+     * Returns the id of the preferable SIP profile.
+     *
+     * @return The SIP profile id.
+     */   		
+    virtual TInt SipProfileId() const;
+    
+     /**
+     * Sets the settings observer pointer
+     *
+     * @param aObserver Pointer to observer intercase 
+     */   		
+    virtual void SetObserver( MMusAvaSettingsObserver& aObserver );
+    
+    /*
+    * Gets the settings observer pointer 
+    * 
+    */
+    virtual MMusAvaSettingsObserver* Observer();
+
+     /**
+     * Sets the for the manual activation
+     *
+     */   		
+    virtual void SetManualActivation( TManualActivation aManualActivation );
+
+     
+public:
+
+    /**
+     * Returns the current application state.
+     */
+    MMusAvaSettingsObserver::TApplicationState ApplicationState();
+    
+     /**
+     * Returns the direction of the mobile call.
+     *
+     * @return 0, if the direction of the call is unknown.
+     *		   1, if the call was originated by this phone.
+     *		   2, if the call was terminated by this phone	
+     */   	
+    TInt CallDirection(); 
+    
+    /**
+     * Sets the call direction of mobile call.
+     * @param aDirection direction of mobile call 
+     *         0, the direction of the call is unknown.
+     *		   1, the call was originated by this phone.
+     *		   2, the call was terminated by this phone	
+     */   		
+    void SetCallDirection( TInt aDirection );    
+    
+     /**
+     * Sets the telephone number of remote host of active CS call.
+     * @param aTelNumber telephone number of remote host 
+     */   		
+    void SetTelNumberL( const TDesC& aTelNumber );   
+
+    /**
+     * Sets the contact name of remote host of active CS call.
+     * @param aContactName contact name of remote host 
+     */   		
+    void SetContactNameL( const TDesC& aContactName );    
+
+    
+    /**
+     * Sets the telephone number of remote host of active CS call.
+     * @param aTelNumber username part of remote host 
+     * @param aDomain host part of remote host 
+     */   		
+    void SetSipAddressProposalL( const TDesC& aTelNumber, 
+                                 const TDesC& aDomain );    
+        
+     /**
+     * Releases current telphone number 
+     *
+     */
+     void ReleseTelNumberL();	
+    
+    /**
+     * Sets the possible SIP addresses of the remote host.
+     *
+     * @param aSipAddresses the SIP addresses in an array.
+     */   		
+    void SetSipAddressesL( const MDesCArray& aSipAddresses );
+
+    /**
+     * Overaloaded function.
+     * Sets the possible SIP addresses of the remote host.
+     *
+     * @param aSipAddresses the SIP addresses in an array.
+     *        Ownership is transferred.
+     */   
+    void SetSipAddressesL(CDesCArray* aSipAddresses );
+    
+    /**
+     * Sets the contact id of the remote host.
+     *
+     * @param aContactId The contact id;
+     */   		
+    void SetContactId( TInt aContactId );
+
+    /**
+     * Sets the supported video codecs.
+     *
+     * @param aVideoCodecs the video codecs in an array
+     */   		
+    void SetVideoCodecsL( const MDesCArray& aVideoCodecs);
+    
+    /**
+     * Sets the supported audio codecs.
+     *
+     * @param aAudioCodecs the supported audio codecs in an array
+     */   		
+    void SetAudioCodecsL( MDesCArray& aAudioCodecs );
+
+    /**
+     * Sets the id of the preferable SIP profile.
+     *
+     * @param aProfileId the SIP profile id.
+     */   		
+    void SetSipProfileId( TInt aProfileId );
+     
+    /**
+     * Returns the id of the preferable SIP profile.
+     *
+     * @return The SIP profile id.
+     */   		
+    CMusAvaSip& Sip();
+
+    /**
+     * Sets the fast mode value
+     */
+    void SetFastMode( MusSettingsKeys::TFastMode aMode );
+    
+    /**
+    * Sets contact resolving uri
+    */
+    void SetUriForContactResolvingL( const TDesC& aRemoteUri );
+    
+    /**
+    * Gets contact resolving uri
+    */
+    TPtrC ContactResolvingUri();  
+     
+private: 
+
+    void CopyDescArrayL( CDesCArray& aTarget,
+                         const MDesCArray& aSource );
+     
+protected:
+	/**
+     * Constructor
+     *
+     */
+
+	CMusAvaSettingsImp();
+	
+    /**
+     * Perform the second phase construction of a 
+     * CMusAvaSettingsImp object
+     *
+     */
+
+	void ConstructL();
+	
+     
+private: // data
+
+    /**
+     * Current telphone number
+     * Owns.
+     */   
+    HBufC* iTelNumber;
+
+	/**
+     * Current Call Direction
+     */   
+    TInt iCallDirection;
+    
+    /**
+     * Current contact name
+     * Owns.
+     */   
+    HBufC* iContactName;
+     
+    /**
+     * Current SIP address guess for the remote host
+     * Owns.
+     */   
+    HBufC* iSipAddressProposal;
+
+    /**
+     * Contact id of the remote host
+     */   
+    TInt iContactId;
+     
+    /**
+     * Preferable SIP profile ID
+     */   
+    TInt iSipProfileId;
+    
+    /**
+     * Current contact list
+     * Owns.
+     */
+	CDesCArray* iSipAddresses;
+	
+    /**
+     * Supported video codecs
+     * Owns.
+     */
+	CDesCArray* iVideoCodecs;
+	
+    /**
+     * Supported audio codecs
+     * Owns.
+     */
+	CDesCArray* iAudioCodecs;
+	
+    /**
+     * Setting observer.
+     * Not owns.
+     */
+	MMusAvaSettingsObserver* iObserver;
+	
+	/**
+     * Setting for the Manual activation.
+     */
+	TManualActivation iManualActivation;
+	
+	/**
+	* Fast mode
+	*/   
+	MusSettingsKeys::TFastMode iFastMode;
+	
+	/**
+	* Contact resolving 
+	*/
+	HBufC* iContactResolvingUri;
+	
+    MUS_UNITTEST( UT_CMusAvaSettingsImp )	
+    MUS_UNITTEST( UT_CMusAvaOptionHandler )   
+	};
+
+#endif __MUSAVASETTINGSIMP_H__
+