satengine/SatServer/SystemState/inc/CSatSystemState.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:11:09 +0200
changeset 0 ff3b6d0fd310
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* Copyright (c) 2002-2008 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:  Provides system state information to SAT Server
*
*/



#ifndef CSATSYSTEMSTATE_H
#define CSATSYSTEMSTATE_H

//  INCLUDES
#include <e32base.h>
#include <e32property.h>
#include <msvapi.h>
#include "MSatSystemState.h"
#include "csatnetworkregstatusmonitor.h"

// PREDEFINED CLASS
class MSatMultiModeApi;

// CONSTANTS
const TInt KMaxSCANumberSize = 251;

/**
*  Accessors for system state information.
*
*  @lib SatSystemState
*  @since Series 60 3.0
*/
class CSatSystemState : public CBase,
                        public MSatSystemState,
                        public MMsvSessionObserver
    {
    public:  // Constructors and destructor

        /**
        * Two-phased constructor.
        * @param aPhone Reference to mobile phone
        */
        static MSatSystemState* NewL( MSatMultiModeApi& aPhone );

        /**
        * Destructor.
        */
        virtual ~CSatSystemState();

    public: // Functions from base classes

        /**
        * From MSatSystemState Gets the network registrtaion status
        * @return Mobile phone's registration status
        */
        RMobilePhone::TMobilePhoneRegistrationStatus
            GetNetworkRegistrationStatus();

        /**
        * From MSatSystemState Checks is call active.
        * @return TBool indicating wether call is active or not
        */
        TBool IsCallActive();

        /**
        * From MSatSystemState Checks is call active.
        * @return TBool indicating wether call is coming or not
        */
        TBool IsCallIncoming();

        /**
        * From MSatSystemState Gets SCA number from CommsDB and
        * returns it.
        * @return SCANumber from CommsDB.
        */
        const TDesC& SCANumber();

        /**
        * From MSatSystemState Checks is phone in silent mode.
        * @return TBool indicating wether phone is in silent mode
        */
        TBool IsSilentMode();

        /**
        * From MSatSystemState Checks is phone in idle state.
        * @return TBool indicating wether phone is in idle mode
        */
        TBool IsPhoneInIdleStateL();

        /**
        * From MSatSystemState Checks is screen saver actived from idle.
        * @return TBool indicating whether screen saver is actived from idle.
        */
        TBool IsScreenSaverActivedFromIdle();
        
        /**
        * From MSatSystemState Sets time between language selection and reboot.
        * @param aTime Time before reboot.
        * @return KErrNone if time is set successfully.
        */
        TInt WriteLanguageSelectionTime(
            TInt aTime );

        /**
        * From MSatSystemState Puts proactive Idle Mode Text command data to
        * shared data.
        * @param aString Idle mode text string
        * @param aIconId Idle mode text icon ID
        * @param aIconQualifier Idle mode text icon qualifier
        * @return KErrNone if setting data is OK
        */
        TInt WriteSetIdleModeText(
            const TDesC& aString,
            TInt aIconId,
            RSat::TIconQualifier aIconQualifier );

        /**
        * From MSatSystemState Checks is backup / restore process ongoing.
        * @return TBool indicating is process ongoing or not.
        */
        TBool IsBackupProcessOngoing();

        /**
        * From MSatSystemState Checks is ConfirmSatOperations on.
        * @return TBool indicating is confirmation on or off.
        */
        TBool IsConfirmSatOperationsOn();

        /**
        * From MSatSystemState Gets the display language from
        * CentRep and returns it.
        * @return ID indicating the selected language.
        */
        TInt DisplayTextLanguage();

        /**
        * Checks is Bluetooth SIM Access Profile active
        * @return ETrue if BT SAP is active
        */
        TBool IsBtSapActive();

        /**
        * From MMsvSessionObserver Indicates an event has occurred from a
        * Message Server session.
        * @param aEvent  Indicates the event type
        * @param aArg1  Event type-specific argument value
        * @param aArg2  Event type-specific argument value
        * @param aArg3  Event type-specific argument value
        */
        virtual void HandleSessionEventL(
            TMsvSessionEvent /*aEvent*/,
            TAny* /*aArg1*/,
            TAny* /*aArg2*/,
            TAny* /*aArg3*/) {};
            
        /**
        * From MSatSystemState Checks are phone warnings and game tones on.
        * @return TBool indicating wether phone are warnings and game tone on.
        */
        TBool IsWarningAndGameTonesOn();

    private:

        /**
        * C++ default constructor.
        * @param aPhone Reference to mobile phone
        */
        CSatSystemState( MSatMultiModeApi& aPhone );

        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL( MSatMultiModeApi& aPhone );

        /**
        * Reads current Short Message Service Center Address.
        * @param aAddress The reference for SCA number.
        */
        void ReadCurrentSMSCL( TDes& aAddress );

        /**
        * Specifies an entry in the Message Server index.
        * @param aSession The current message server session.
        * @param aMtm The SMS messaging type module UID.
        * @return The entry in the Message Server index.
        */
        TMsvId ServiceForMTML(
            CMsvSession& aSession,
            const TUid& aMtm ) const;

    private:    // Data

        // Network registration status monitor
        CSatNetworkRegStatusMonitor* iNetworkRegStatusMonitor;

        // Descriptor for SCA number
        TBuf<KMaxSCANumberSize> iScaAddress;

        // Reference for MSatMultiModeApi
        MSatMultiModeApi& iPhone;

    };

#endif      // CSATSYSTEMSTATE_H

// End of File