diff -r 000000000000 -r ff3b6d0fd310 cellular/SSSettings/inc/CSSSettingsAlsNotifier.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cellular/SSSettings/inc/CSSSettingsAlsNotifier.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,238 @@ +/* +* Copyright (c) 2002-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: Interface for ALS control +* +*/ + + +#ifndef CSSSETTINGSALSNOTIFIER_H +#define CSSSETTINGSALSNOTIFIER_H + +// INCLUDES +#include +#include + +#include "RSSSettings.h" +#include "CSSSettingsActiveObject.h" + +// FORWARD DECLARATIONS +class RMmCustomAPI; +class CRepository; +class CCenRepNotifyHandler; +class RProperty; + + +// CLASS DECLARATION + +/** +* Interface for Als control. +* +* @since 1.0 +* @lib SsSettings.lib +*/ +class CSSSettingsAlsNotifier : public CActive, + public MCenRepNotifyHandlerCallback, + public MSSSettingsPubSubNotify + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aMobilePhone Mobile phone + * @param aCustomPhone Pre-opened custom interface. + * @param aNotifyHandler Notify changes. + */ + static CSSSettingsAlsNotifier* NewL( + RMobilePhone& aMobilePhone, + RMmCustomAPI& aCustomPhone, + MCenRepNotifyHandlerCallback& aAlsNotifyHandler ); + + /** + * Destructor. + */ + virtual ~CSSSettingsAlsNotifier(); + + public: // New functions + + /** + * Starts the notifier. + * @return Error code + */ + TInt NotifyAlsChange(); + + /** + * Cancel notify + */ + void CancelNotify(); + + /** + * Set Als value. + * @param aValue + * @return If successful, KErrNone + * KErrNotSupported MS doesn't support ALS + */ + TInt SetAlsValue( TSSSettingsAlsValue aValue ); + + /** + * Get Als value + * @param aValue the value. + * @return If successful, KErrNone + */ + TInt GetAlsValue( TSSSettingsAlsValue& aValue ); + + /** + * Get Als support bits. + * @param aPPSupport Product profile support for als + * @param aSimSupport Sim support for Als. + * @param aCSPSupport CSP ALS support for Als. + * @param aCSPSupport CSP ALS error for als. + */ + void GetAlsSupport( TBool& aPPSupport, TBool& aSimSupport, TBool& aCSPSupport, TInt& aCSPError ); + + /** + * Handle SIM refresh + * @return If successful, KErrNone + */ + TInt HandleRefresh(); + + + protected: // New functions + + /** + * Gets PP support from ETel. + * @param aIsAlsSopportedInPP Is supported. + * @return If successful, KErrNone + */ + TInt CheckAlsSupportInProductProfile( TBool& aIsAlsSopportedInPP ); + + /** + * Gets Sim support from ETel. + * @param aIsAlsSopportedInSim Is supported. + * @return If successful, KErrNone + */ + TInt CheckAlsSupportInSim( TBool& aIsAlsSopportedInSim ); + + /** + * Checks Als support from Sim and PP if not checked. + * @return If successful, KErrNone + */ + TInt EnsureAlsStatus(); + + protected: // Functions from base classes + + /** + * From CActive. + */ + void RunL(); + + /** + * From CActive. + */ + void DoCancel(); + + /** + * From MCenRepNotifyHandlerCallback + */ + void HandleNotifyInt( + TUint32 aId, + TInt aNewValue ); + + /** + * From MCenRepNotifyHandlerCallback. + */ + void HandleNotifyError( + TUint32 aId, + TInt aError, + CCenRepNotifyHandler* aHandler ); + + /** + * From MSSSettingsAlsNotify. + */ + void HandlePubSubNotify( + const TUid aUid, + const TUint32 aKeyId ); + + private: + + /** + * C++ constructor. + */ + CSSSettingsAlsNotifier( + RMobilePhone& aMobilePhone, + RMmCustomAPI& aCustomPhone, + MCenRepNotifyHandlerCallback& aAlsNotifyHandler ); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + // Prohibit copy constructor if not deriving from CBase. + CSSSettingsAlsNotifier( const CSSSettingsAlsNotifier& ); + // Prohibit assigment operator if not deriving from CBase. + CSSSettingsAlsNotifier& operator= ( const CSSSettingsAlsNotifier& ); + + /** + * Checks if Alternate Line is to be supported in parameter. + * @param aContainer The parameter to be checked. + * @return ETrue if supported, otherwise EFalse. + */ + TBool CheckIfAlsCSPSupported( const RMobilePhone::TCspCPHSTeleservices aContainer ) const; + + private: + + //Provides client access to mobile phone functionality provided by TSY. + RMobilePhone& iMobilePhone; + + // Custom phone. + RMmCustomAPI& iCustomPhone; + + // Does PP support ALS. + TBool iPPSupportAls; + + // Does SIM support ALS. + TBool iSimSupportAls; + + // Does SIM support CSP ALS. + TBool iAlsCSPSupport; + + // CSP ALS error. + TInt iAlsCSPError; + + // Is PP and Sim support checked. + TBool iAlsStatusChecked; + + // Active ALS, only valid in RunL. + RMobilePhone::TMobilePhoneALSLine iSimActiveAls; + + // Als Notify handler. + MCenRepNotifyHandlerCallback* iAlsNotifyHandler; + + // Central repository for ALS. + CRepository* iRepository; + + // Central repository notify handler for ALS. + CCenRepNotifyHandler* iCenRepNotifyHandler; + + // Notifier for ALS support in Product Profile. + CSSSettingsActiveObject* iPPSupportsAlNotifier; + + // Notifier for ALS support in SIM. + CSSSettingsActiveObject* iSimSupportsAlsNotifier; + }; + + +#endif // CSSSETTINGSALSNOTIFIER_H + +// End of File