cellular/sssettings/inc/csssettingsalsnotifier.h
author hgs
Tue, 10 Aug 2010 13:19:41 +0300
changeset 38 bc103bfb69cf
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201031_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Interface for ALS control
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef CSSSETTINGSALSNOTIFIER_H
hgs
parents:
diff changeset
    20
#define CSSSETTINGSALSNOTIFIER_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
//  INCLUDES
hgs
parents:
diff changeset
    23
#include <etelmm.h>
hgs
parents:
diff changeset
    24
#include <cenrepnotifyhandler.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "rsssettings.h" 
hgs
parents:
diff changeset
    27
#include "csssettingsactiveobject.h" 
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    30
class RMmCustomAPI;
hgs
parents:
diff changeset
    31
class CRepository;
hgs
parents:
diff changeset
    32
class CCenRepNotifyHandler;
hgs
parents:
diff changeset
    33
class RProperty;
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
// CLASS DECLARATION
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
/**
hgs
parents:
diff changeset
    39
*  Interface for Als control.
hgs
parents:
diff changeset
    40
*
hgs
parents:
diff changeset
    41
*  @since   1.0
hgs
parents:
diff changeset
    42
*  @lib     SsSettings.lib
hgs
parents:
diff changeset
    43
*/
hgs
parents:
diff changeset
    44
class CSSSettingsAlsNotifier :   public CActive,
hgs
parents:
diff changeset
    45
    public MCenRepNotifyHandlerCallback,
hgs
parents:
diff changeset
    46
    public MSSSettingsPubSubNotify
hgs
parents:
diff changeset
    47
    {
hgs
parents:
diff changeset
    48
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
        /**
hgs
parents:
diff changeset
    51
        * Two-phased constructor.
hgs
parents:
diff changeset
    52
        * @param aMobilePhone Mobile phone
hgs
parents:
diff changeset
    53
        * @param aCustomPhone Pre-opened custom interface.
hgs
parents:
diff changeset
    54
        * @param aNotifyHandler Notify changes.
hgs
parents:
diff changeset
    55
        */
hgs
parents:
diff changeset
    56
        static CSSSettingsAlsNotifier* NewL(
hgs
parents:
diff changeset
    57
            RMobilePhone& aMobilePhone,
hgs
parents:
diff changeset
    58
            RMmCustomAPI& aCustomPhone,
hgs
parents:
diff changeset
    59
            MCenRepNotifyHandlerCallback& aAlsNotifyHandler );
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
        /**
hgs
parents:
diff changeset
    62
        * Destructor.
hgs
parents:
diff changeset
    63
        */
hgs
parents:
diff changeset
    64
        virtual ~CSSSettingsAlsNotifier();
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    public: // New functions
hgs
parents:
diff changeset
    67
        
hgs
parents:
diff changeset
    68
        /**
hgs
parents:
diff changeset
    69
        * Starts the notifier.
hgs
parents:
diff changeset
    70
        * @return Error code
hgs
parents:
diff changeset
    71
        */
hgs
parents:
diff changeset
    72
        TInt NotifyAlsChange();
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
        /**
hgs
parents:
diff changeset
    75
        * Cancel notify
hgs
parents:
diff changeset
    76
        */
hgs
parents:
diff changeset
    77
        void CancelNotify();
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
        /**
hgs
parents:
diff changeset
    80
        * Set Als value.
hgs
parents:
diff changeset
    81
        * @param aValue
hgs
parents:
diff changeset
    82
        * @return If successful, KErrNone
hgs
parents:
diff changeset
    83
        *         KErrNotSupported MS doesn't support ALS
hgs
parents:
diff changeset
    84
        */
hgs
parents:
diff changeset
    85
        TInt SetAlsValue( TSSSettingsAlsValue aValue );
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
        /**
hgs
parents:
diff changeset
    88
        * Get Als value
hgs
parents:
diff changeset
    89
        * @param aValue the value.
hgs
parents:
diff changeset
    90
        * @return If successful, KErrNone
hgs
parents:
diff changeset
    91
        */
hgs
parents:
diff changeset
    92
        TInt GetAlsValue( TSSSettingsAlsValue& aValue );
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
        /**
hgs
parents:
diff changeset
    95
        * Get Als support bits.
hgs
parents:
diff changeset
    96
        * @param aPPSupport Product profile support for als
hgs
parents:
diff changeset
    97
        * @param aSimSupport Sim support for Als.
hgs
parents:
diff changeset
    98
        * @param aCSPSupport CSP ALS support for Als.
hgs
parents:
diff changeset
    99
        * @param aCSPSupport CSP ALS error for als.
hgs
parents:
diff changeset
   100
        */
hgs
parents:
diff changeset
   101
        void GetAlsSupport( TBool& aPPSupport, TBool& aSimSupport, TBool& aCSPSupport, TInt& aCSPError );
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
        * Handle SIM refresh
hgs
parents:
diff changeset
   105
        * @return If successful, KErrNone
hgs
parents:
diff changeset
   106
        */
hgs
parents:
diff changeset
   107
        TInt HandleRefresh();
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
        
hgs
parents:
diff changeset
   110
    protected:  // New functions
hgs
parents:
diff changeset
   111
        
hgs
parents:
diff changeset
   112
        /**
hgs
parents:
diff changeset
   113
        * Gets PP support from ETel.
hgs
parents:
diff changeset
   114
        * @param aIsAlsSopportedInPP Is supported.
hgs
parents:
diff changeset
   115
        * @return If successful, KErrNone
hgs
parents:
diff changeset
   116
        */
hgs
parents:
diff changeset
   117
        TInt CheckAlsSupportInProductProfile( TBool& aIsAlsSopportedInPP );
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
        /**
hgs
parents:
diff changeset
   120
        * Gets Sim support from ETel.
hgs
parents:
diff changeset
   121
        * @param aIsAlsSopportedInSim Is supported.
hgs
parents:
diff changeset
   122
        * @return If successful, KErrNone
hgs
parents:
diff changeset
   123
        */
hgs
parents:
diff changeset
   124
        TInt CheckAlsSupportInSim( TBool& aIsAlsSopportedInSim );
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
        /**
hgs
parents:
diff changeset
   127
        * Checks Als support from Sim and PP if not checked.
hgs
parents:
diff changeset
   128
        * @return If successful, KErrNone
hgs
parents:
diff changeset
   129
        */
hgs
parents:
diff changeset
   130
        TInt EnsureAlsStatus();
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    protected:  // Functions from base classes
hgs
parents:
diff changeset
   133
        
hgs
parents:
diff changeset
   134
        /**
hgs
parents:
diff changeset
   135
        * From CActive.
hgs
parents:
diff changeset
   136
        */
hgs
parents:
diff changeset
   137
        void RunL();
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
        /**
hgs
parents:
diff changeset
   140
        * From CActive.
hgs
parents:
diff changeset
   141
        */
hgs
parents:
diff changeset
   142
        void DoCancel();
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
        /** 
hgs
parents:
diff changeset
   145
        * From MCenRepNotifyHandlerCallback
hgs
parents:
diff changeset
   146
        */
hgs
parents:
diff changeset
   147
        void HandleNotifyInt(
hgs
parents:
diff changeset
   148
            TUint32 aId,
hgs
parents:
diff changeset
   149
            TInt aNewValue );
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
        /** 
hgs
parents:
diff changeset
   152
        * From MCenRepNotifyHandlerCallback.
hgs
parents:
diff changeset
   153
        */
hgs
parents:
diff changeset
   154
        void HandleNotifyError(
hgs
parents:
diff changeset
   155
            TUint32 aId,
hgs
parents:
diff changeset
   156
            TInt aError,
hgs
parents:
diff changeset
   157
            CCenRepNotifyHandler* aHandler );
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
        /**
hgs
parents:
diff changeset
   160
        * From MSSSettingsAlsNotify.
hgs
parents:
diff changeset
   161
        */
hgs
parents:
diff changeset
   162
        void HandlePubSubNotify(
hgs
parents:
diff changeset
   163
            const TUid aUid,
hgs
parents:
diff changeset
   164
            const TUint32 aKeyId );
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
    private:
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
        /**
hgs
parents:
diff changeset
   169
        * C++ constructor.
hgs
parents:
diff changeset
   170
        */
hgs
parents:
diff changeset
   171
        CSSSettingsAlsNotifier( 
hgs
parents:
diff changeset
   172
            RMobilePhone& aMobilePhone,
hgs
parents:
diff changeset
   173
            RMmCustomAPI& aCustomPhone,
hgs
parents:
diff changeset
   174
            MCenRepNotifyHandlerCallback& aAlsNotifyHandler );
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
        /**
hgs
parents:
diff changeset
   177
        * By default Symbian OS constructor is private.
hgs
parents:
diff changeset
   178
        */
hgs
parents:
diff changeset
   179
        void ConstructL();
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        // Prohibit copy constructor if not deriving from CBase.
hgs
parents:
diff changeset
   182
        CSSSettingsAlsNotifier( const CSSSettingsAlsNotifier& );
hgs
parents:
diff changeset
   183
        // Prohibit assigment operator if not deriving from CBase.
hgs
parents:
diff changeset
   184
        CSSSettingsAlsNotifier& operator= ( const CSSSettingsAlsNotifier& );
hgs
parents:
diff changeset
   185
              
hgs
parents:
diff changeset
   186
        /**
hgs
parents:
diff changeset
   187
        * Checks if Alternate Line is to be supported in parameter.
hgs
parents:
diff changeset
   188
        * @param aContainer The parameter to be checked.
hgs
parents:
diff changeset
   189
        * @return ETrue if supported, otherwise EFalse.
hgs
parents:
diff changeset
   190
        */
hgs
parents:
diff changeset
   191
        TBool CheckIfAlsCSPSupported( const RMobilePhone::TCspCPHSTeleservices aContainer ) const;
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
    private:
hgs
parents:
diff changeset
   194
         
hgs
parents:
diff changeset
   195
        //Provides client access to mobile phone functionality provided by TSY.
hgs
parents:
diff changeset
   196
        RMobilePhone& iMobilePhone;
hgs
parents:
diff changeset
   197
        
hgs
parents:
diff changeset
   198
        // Custom phone.
hgs
parents:
diff changeset
   199
        RMmCustomAPI& iCustomPhone;                 
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
        // Does PP support ALS.
hgs
parents:
diff changeset
   202
        TBool iPPSupportAls;
hgs
parents:
diff changeset
   203
        
hgs
parents:
diff changeset
   204
        // Does SIM support ALS.
hgs
parents:
diff changeset
   205
        TBool iSimSupportAls;
hgs
parents:
diff changeset
   206
        
hgs
parents:
diff changeset
   207
        // Does SIM support CSP ALS.
hgs
parents:
diff changeset
   208
        TBool iAlsCSPSupport;
hgs
parents:
diff changeset
   209
        
hgs
parents:
diff changeset
   210
        // CSP ALS error.
hgs
parents:
diff changeset
   211
        TInt iAlsCSPError;
hgs
parents:
diff changeset
   212
        
hgs
parents:
diff changeset
   213
        // Is PP and Sim support checked.
hgs
parents:
diff changeset
   214
        TBool iAlsStatusChecked;
hgs
parents:
diff changeset
   215
                            
hgs
parents:
diff changeset
   216
        // Active ALS, only valid in RunL.
hgs
parents:
diff changeset
   217
        RMobilePhone::TMobilePhoneALSLine iSimActiveAls;
hgs
parents:
diff changeset
   218
        
hgs
parents:
diff changeset
   219
        // Als Notify handler.
hgs
parents:
diff changeset
   220
        MCenRepNotifyHandlerCallback*     iAlsNotifyHandler;
hgs
parents:
diff changeset
   221
hgs
parents:
diff changeset
   222
        // Central repository for ALS.
hgs
parents:
diff changeset
   223
        CRepository*                      iRepository;
hgs
parents:
diff changeset
   224
        
hgs
parents:
diff changeset
   225
        // Central repository notify handler for ALS.
hgs
parents:
diff changeset
   226
        CCenRepNotifyHandler*             iCenRepNotifyHandler;
hgs
parents:
diff changeset
   227
hgs
parents:
diff changeset
   228
        // Notifier for ALS support in Product Profile.
hgs
parents:
diff changeset
   229
        CSSSettingsActiveObject*          iPPSupportsAlNotifier;
hgs
parents:
diff changeset
   230
        
hgs
parents:
diff changeset
   231
        // Notifier for ALS support in SIM.
hgs
parents:
diff changeset
   232
        CSSSettingsActiveObject*          iSimSupportsAlsNotifier;
hgs
parents:
diff changeset
   233
    };
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
#endif      // CSSSETTINGSALSNOTIFIER_H
hgs
parents:
diff changeset
   237
            
hgs
parents:
diff changeset
   238
// End of File