phonesrv_plat/phone_settings_api/inc/PsetCallDiverting.h
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_api/inc/PsetCallDiverting.h	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,228 @@
+/*
+* Copyright (c) 2002 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:  Call diverting class. Sets and gets call diverting status. 
+*
+*
+*/
+
+
+#ifndef     PSETCALLDIVERTING_H
+#define     PSETCALLDIVERTING_H
+
+//  INCLUDES           
+#include <mmretrieve.h>
+#include "nwdefs.h"             
+#include "PsetConstants.h"
+#include "MPsetCallDiverting.h"
+
+//  FORWARD DECLARATIONS
+class CDesC16ArrayFlat;
+class MPsetDivertObserver;
+class MPsetRequestObserver;
+class RVmbxNumber;
+class CRepository;
+class TCallDivertNotifySetting;
+class MPSetCallDiverting;
+class CPSetCallDivertingFactory;
+class MCallDiverting;
+
+enum TSelectedLine
+    {
+    EPrimaryLine,		// ALS is supported by ME & SIM and Line 1 (Primary Line) is the current line
+    EAuxiliaryLine,		// ALS is supported by ME & SIM and Line 2 (Auxiliary Line) is the current line
+    EUnknownLine,		// ALS is supported by ME & SIM but TSY can not determine line selection
+    ENotSupportedLine	// ALS is not supported either by ME or SIM or both.
+    };
+
+//  CLASS DECLARATION  
+/**
+*  CPsetCallDiverting class is call diverting SS handler. 
+*  @lib phonesettings.lib
+*  @since 1.0
+*/
+class   CPsetCallDiverting : public CBase,
+                             public MPsetCallDiverting
+    {
+    public: // constructor & destructor
+
+        /**
+        * Symbian OS 2-phase Constructor.
+        *
+        * @param aObserver Call divert observer.
+        * @param aPhone Provides client access to 
+        *               mobile phone functionality provided by TSY.
+        * @return Created CPsetCallDiverting object.
+        */
+        IMPORT_C static CPsetCallDiverting* NewL( 
+            MPsetDivertObserver& aObserver, 
+            RMobilePhone& aPhone);
+        
+        /* 
+        * Destructor.
+        */
+        IMPORT_C ~CPsetCallDiverting();
+                
+    public: // From base class.
+
+        /**
+        * @see MPsetCallDiverting::SetDivertingL().
+        */
+        IMPORT_C void SetDivertingL( const TCallDivertSetting& aDivert, 
+            TBasicServiceGroups aBsc, TBool aVmbx = EFalse ); 
+
+        /**
+        * @see MPsetCallDiverting::GetDivertingStatusL().
+        */ 
+        IMPORT_C void GetDivertingStatusL( const TServiceGroup aServiceGroup, 
+            const TCallDivertingCondition aCondition, 
+            TBasicServiceGroups aBsc );
+        
+        /**
+        * @see MPsetCallDiverting::CancelCurrentRequest().
+        */ 
+        IMPORT_C TInt CancelCurrentRequest(); 
+    
+    public: //new
+
+        /**
+        *  Gets the default time for CF No Reply.
+        *  No error checking for return values which should be
+        *  5-30, in steps of 5.
+        *
+        * @return Returns the current timer value.
+        */
+        IMPORT_C TInt GetTimerValueL();    
+    
+        /**
+        *  Sets the default time for CF No Reply.
+        *  No error checking to parameters, which should be on range 5-30,
+        *  using steps of 5.
+        *
+        *  @param aIndex New value for timer.
+        *  @return Returns error code.
+        */
+        IMPORT_C TInt SetTimerValueL( const TInt& aIndex );    
+        
+        /**
+        * The default (last forwarded-to) numbers can be retrieved 
+        * through this method. 
+        *
+        * @param aDefNumbers Read default numbers from shared data.
+        * @return Returns error code or amount of numbers read.
+        */
+        IMPORT_C TInt GetDefaultNumbersL( CDesC16ArrayFlat& aDefNumbers );            
+
+        /**
+        * Sets new default number to the default numbers list, 
+        * erases the oldest one automatically, if three numbers already in the
+        * shared data.
+        *
+        * @param aNumber New number to be added.
+        * @return Returns error code.
+        */
+        IMPORT_C TInt SetNewDefaultNumberL( TDes& aNumber );    
+
+        /**
+        * Swaps the most recently used number to first in shared data file.
+        *
+        * @param  aLocation Used number's location (1-3) in shared data.
+        */
+        IMPORT_C void SwapDefaultNumberL( const TInt& aLocation );
+
+        /**
+        * Saves last used data number to shared data.
+        *
+        * @param  aNumber Number used for data call forwarding.
+        * @return Returns error code.
+        */
+        IMPORT_C TInt SetUsedDataNumberL( TTelNumber& aNumber );
+
+        /**
+        * Saves last used fax number to shared data.
+        *
+        * @param  aNumber Number used for data fax forwarding.
+        * @return Returns error code.
+        */
+        IMPORT_C TInt SetUsedFaxNumberL( TTelNumber& aNumber );
+
+        /**
+        * Gets the phone number used for fax call forwarding.
+        *
+        * @return Number used for data call forwarding.
+        */
+        IMPORT_C HBufC* GetUsedFaxNumberLC();
+
+        /**
+        * Gets the phone number used for data call forwarding.
+        *
+        * @return Number used for data call forwarding.
+        */
+        IMPORT_C HBufC* GetUsedDataNumberLC();
+
+        /** 
+        * Sets request observer.
+        *
+        * @param aObs Where the request completion should be informed to.
+        */        
+        IMPORT_C void SetRequestObserver( MPsetRequestObserver* aObs );
+
+        /** 
+        * Queries for voice mail box number. If number is undefined, number 
+        * entry pops up.
+        * @since 2.0
+        * 
+        * @param aTelNumber Vmbx number.
+        */        
+        IMPORT_C void VoiceMailQueryL( TDes& aTelNumber );
+        
+        /** 
+        * Queries for video mailbox number. If number is undefined, number 
+        * entry pops up.
+        * @since 3.1
+        * 
+        * @param aTelNumber Video mailbox number.
+        */         
+        IMPORT_C void VideoMailQueryL( TDes& aTelNumber );
+
+    private: //new
+        
+        TInt OpenVideoMailboxLC( TDes& aTelNumber, RVmbxNumber& aVmbx );
+        
+    private: // constructors
+              
+        void ConstructL( MPsetDivertObserver& aObserver );
+        
+        CPsetCallDiverting( RMobilePhone& aPhone );
+               
+    private: //member data
+        
+        // Observer for Call divert requests
+        MPsetDivertObserver* iObserver;
+        
+        // Provides client access to mobile phone functionality provided by TSY.
+        RMobilePhone& iPhone;
+        
+        // Request observer
+        MPsetRequestObserver* iReqObserver;
+
+        // Central repository.
+        CRepository* iRepository;
+        
+        // Call Divert implementation.
+        MCallDiverting* iDivert;
+     };
+
+#endif      //  PSETCALLDIVERTING_H
+
+// End of File