sl@0: /* sl@0: * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: This file contains definitions of GlobalAudioSettings. sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: sl@0: #ifndef GLOBALAUDIOSETTINGSIMPL_H sl@0: #define GLOBALAUDIOSETTINGSIMPL_H sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include "GlobalAudioSettingsData.h" sl@0: #include sl@0: #include sl@0: sl@0: class MAudioSettingsObserver; sl@0: class CGlobalAudioSettings; sl@0: class CWarningTonesObserverAO; sl@0: class CMessagingTonesObserverAO; sl@0: class CSilentProfileObserverAO; sl@0: class CVibraObserverAO; sl@0: class CAudioClientsListManagerAO; sl@0: class CMessageToneObserverAO; sl@0: class CEmailToneObserverAO; sl@0: class CRingingTypeObserverAO; sl@0: class CVideoCallToneObserverAO; sl@0: class CRingingTone1ObserverAO; sl@0: class CRingingTone2ObserverAO; sl@0: class CKeypadToneObserverAO; sl@0: class CSilenceModeObserverAO; sl@0: /** sl@0: * Defines functions that client uses to set phone profile settings. sl@0: * sl@0: * @lib GlobalAudioSettings.lib sl@0: * @since Series 60 3.2 sl@0: */ sl@0: NONSHARABLE_CLASS(CGlobalAudioSettingsImpl): public CBase sl@0: { sl@0: public: sl@0: /** sl@0: * function for creating the GlobalAudioSettingsImpl sl@0: * sl@0: */ sl@0: static CGlobalAudioSettingsImpl* NewL( sl@0: CGlobalAudioSettings& aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver); sl@0: /** sl@0: * Destructor. sl@0: * sl@0: */ sl@0: ~CGlobalAudioSettingsImpl(); sl@0: /** sl@0: * Returns warning tones status. sl@0: * sl@0: * @since Series 60 3.2 sl@0: * @return TBool aEnable. ETrue if warning tones are enabled else EFalse. sl@0: */ sl@0: TBool IsWarningTonesEnabled(); sl@0: /** sl@0: * Returns message tones status. sl@0: * sl@0: * @since Series 60 3.2 sl@0: * @return TBool aEnable. ETrue if message tones are enabled else EFalse. sl@0: */ sl@0: TBool IsMessageTonesEnabled(); sl@0: /** sl@0: * Returns silent profile status. sl@0: * sl@0: * @since Series 60 3.2 sl@0: * @return TBool aEnable. ETrue if current profile is silent profile else EFalse. sl@0: */ sl@0: TBool IsSilentProfileEnabled(); sl@0: /** sl@0: * Returns vibra is enabled or not in the current profile status. sl@0: * sl@0: * @since Series 60 3.2 sl@0: * @return TBool aEnable. ETrue if current profile vibra active else EFalse. sl@0: */ sl@0: TBool IsVibraEnabled(); sl@0: /** sl@0: * Returns PublicSilence is enabled or not status. sl@0: * sl@0: * @since Series 60 3.2 sl@0: * @return TBool aEnable. ETrue if PublicSilence active else EFalse. sl@0: */ sl@0: TBool IsPublicSilenceEnabled(); sl@0: /** sl@0: * Returns Message Alert Tone sl@0: * sl@0: * sl@0: * The filename selected as the message alert tone in the sl@0: * current profile. sl@0: * sl@0: * sl@0: * sl@0: * @return TDesC& aMessageAlertToneName. z:\\resource\\No_Sound.wav is returned if sound is off,else selected filename sl@0: * is returned sl@0: */ sl@0: sl@0: sl@0: TDesC& MessageAlertTone(); sl@0: /** sl@0: * Returns Email Alert Tone status sl@0: * sl@0: * sl@0: * The filename selected as the email alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TBool aEnable. ETrue if current profile message tone is on else EFalse. sl@0: */ sl@0: TBool IsMessageAlertToneEnabled(); sl@0: /** sl@0: * Returns Email Alert Tone sl@0: * sl@0: * sl@0: * The filename selected as the email alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TDesC& aEmailAlertToneName. z:\\resource\\No_Sound.wav is returned if sound is off,else selected filename sl@0: * is returned sl@0: */ sl@0: TDesC& EmailAlertTone(); sl@0: /** sl@0: * Returns Email Alert Tone status sl@0: * sl@0: * sl@0: * The filename selected as the email alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TBool aEnable. ETrue if current profile email alert tone is on else EFalse. sl@0: */ sl@0: TBool IsEmailAlertToneEnabled(); sl@0: /** sl@0: * Returns the RingingType sl@0: * sl@0: * sl@0: * Ringing type set in the current profile sl@0: * sl@0: * sl@0: * sl@0: * sl@0: * @return TGASRingingType aRingingType. sl@0: */ sl@0: CGlobalAudioSettings::TGASRingingType RingingType(); sl@0: /** sl@0: * Returns Videocall Alert Tone sl@0: * sl@0: * sl@0: * The filename selected as the video call alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TDesC& aVideoCallAlertToneName. z:\\resource\\No_Sound.wav is returned if sound is off,else selected filename sl@0: * is returned sl@0: */ sl@0: TDesC& VideoCallAlertTone(); sl@0: /** sl@0: * Returns Videocall Alert Tone status sl@0: * sl@0: * sl@0: * The filename selected as the video call alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TBool aEnable. ETrue if current profile videocall alert tone is on else EFalse. sl@0: */ sl@0: TBool IsVideoCallAlertToneEnabled(); sl@0: /** sl@0: * Returns Ringing Alert Tone sl@0: * sl@0: * sl@0: * The filename selected as the ringing alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * @return TDesC& aRingingAlertTone1Name. z:\\resource\\No_Sound.wav is returned if sound is off,else selected filename sl@0: * is returned sl@0: * sl@0: */ sl@0: TDesC& RingingAlertTone1(); sl@0: /** sl@0: * Returns Ringing Alert Tone1 status sl@0: * sl@0: * sl@0: * The filename selected as the ringing alert tone in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TBool aEnable. ETrue if current profile ringing alert tone is on else EFalse. sl@0: */ sl@0: TBool IsRingingAlertTone1Enabled(); sl@0: /** sl@0: * Returns Ringing Alert Tone 2 sl@0: * sl@0: * sl@0: * The filename selected as the ringing alert tone in the sl@0: * current profile for the alternate line sl@0: * sl@0: * sl@0: * sl@0: * @return TDesC& aRingingAlertTone2Name. z:\\resource\\No_Sound.wav is returned if sound is off,else selected filename sl@0: * is returned sl@0: */ sl@0: TDesC& RingingAlertTone2(); sl@0: /** sl@0: * Returns Ringing Alert Tone 2 sl@0: * sl@0: * sl@0: * The filename selected as the ringing alert tone in the sl@0: * current profile for the alternate line sl@0: * sl@0: * sl@0: * sl@0: * @return TBool aEnable. ETrue if current profile ringing alert tone of alternate line is on else EFalse. sl@0: */ sl@0: TBool IsRingingAlertTone2Enabled(); sl@0: /** sl@0: * Returns Ringing Keypad Volume sl@0: * sl@0: * sl@0: * The key tone volume selected in the sl@0: * current profile sl@0: * sl@0: * sl@0: * sl@0: * @return TGASKeypadVolume aKeypadToneVolume.returns EGASKeypadVolumeOff sound is off,else selected volume level sl@0: * is returned sl@0: */ sl@0: CGlobalAudioSettings::TGASKeypadVolume KeyPadToneVolume(); sl@0: /** sl@0: * Returns silent mode status. sl@0: * sl@0: * sl@0: * @return TBool aEnable. ETrue if the silent mode is enabled else EFalse. sl@0: */ sl@0: TBool IsSilenceModeEnabled(); sl@0: /** sl@0: * Registers audio clients list observer. sl@0: * sl@0: * When registered successfully, the observer will start receiveing sl@0: * callback defined in MAudioClientsListObserver when audio clients list sl@0: * changes. sl@0: * sl@0: * @since S60 3.2 sl@0: * @param MAudioClientsListObserver& aObserver. A reference to class sl@0: * implementing MAudioClientsListObserver interface. sl@0: * @return TInt. KErrNone if successful. KErrAlreadyExists if the observer sl@0: * is already registered. sl@0: */ sl@0: TInt RegisterAudioClientsListObserver( sl@0: MAudioClientsListObserver& aObserver ); sl@0: sl@0: /** sl@0: * Unregisters audio clients list observer. sl@0: * sl@0: * When unregistered, the observer will no longer receive callback when sl@0: * audio clients list changes. sl@0: * sl@0: * @since S60 3.2 sl@0: * @param MAudioClientsListObserver& aObserver. A reference to class sl@0: * implementing MAudioClientsListObserver interface. sl@0: * @return TInt. KErrNone if successful. KErrNotFound if the observer sl@0: * is not registered. sl@0: */ sl@0: TInt UnregisterAudioClientsListObserver( sl@0: MAudioClientsListObserver& aObserver); sl@0: sl@0: /** sl@0: * Gets audio clients list. sl@0: * sl@0: * On return of this function, the parameter aList will contain active sl@0: * audio client application process ids. sl@0: * sl@0: * The parameter aList will be reset in the case sl@0: * sl@0: * @since S60 3.2 sl@0: * @param TAudioClientListType aFilter. Type of client list. sl@0: * @param RArray& aList. A reference to RArray. sl@0: * @return TInt. KErrNone if successful. KErrBadName if sl@0: * aType is not one of the TAudioClientListType enumeration. sl@0: * Otherwise a systemwide error code. sl@0: * In case of error, the array aList will be reset. sl@0: */ sl@0: TInt GetAudioClientsList( sl@0: CGlobalAudioSettings::TAudioClientListType aType, sl@0: RArray& aList ); sl@0: sl@0: sl@0: private: sl@0: CGlobalAudioSettingsImpl(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver); sl@0: /** sl@0: * Second Phase Costructor for GlobalAudioSettingsImpl Instance sl@0: * @since 3.2 sl@0: * @param void sl@0: */ sl@0: void ConstructL(); sl@0: sl@0: private: sl@0: TGlobalAudioSettings iGlobalAudioSettingsData; sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: CWarningTonesObserverAO* iWarningTonesObserverAO; sl@0: CMessagingTonesObserverAO* iMessagingTonesObserverAO; sl@0: CSilentProfileObserverAO* iSilentProfileObserverAO; sl@0: CVibraObserverAO* iVibraObserverAO; sl@0: // Object managing Audio Clients List implementation sl@0: CAudioClientsListManagerAO* iCAudioClientsListManagerAO; sl@0: // Object managing Paused Clients List implementation sl@0: CAudioClientsListManagerAO* iPausedClientsListManagerAO; sl@0: // List of Audio Clients List Observer objects sl@0: RPointerArray iAudioClientsListObserverArray; sl@0: sl@0: sl@0: CMessageToneObserverAO* iMessageToneObserverAO; sl@0: CEmailToneObserverAO* iEmailToneObserverAO; sl@0: CRingingTypeObserverAO* iRingingTypeObserverAO; sl@0: CVideoCallToneObserverAO* iVideoCallObserverAO; sl@0: CRingingTone1ObserverAO* iRingingTone1ObserverAO; sl@0: CRingingTone2ObserverAO* iRingingTone2ObserverAO; sl@0: CKeypadToneObserverAO* iKeypadToneObserverAO; sl@0: CSilenceModeObserverAO* iSilenceModeObserverAO; sl@0: }; sl@0: sl@0: sl@0: NONSHARABLE_CLASS(CWarningTonesObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CWarningTonesObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CWarningTonesObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CWarningTonesObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iWarningTonesProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CMessagingTonesObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CMessagingTonesObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CMessagingTonesObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CMessagingTonesObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iMessagingTonesProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS( CSilentProfileObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CSilentProfileObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CSilentProfileObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CSilentProfileObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iSilentProfileProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CVibraObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CVibraObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CVibraObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CVibraObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iVibraProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: sl@0: NONSHARABLE_CLASS(CRingingTypeObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CRingingTypeObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CRingingTypeObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CRingingTypeObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iRingingTypeProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CMessageToneObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CMessageToneObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CMessageToneObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CMessageToneObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iMessageToneNameProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CEmailToneObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CEmailToneObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CEmailToneObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CEmailToneObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iEmailToneNameProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CVideoCallToneObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CVideoCallToneObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CVideoCallToneObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CVideoCallToneObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iVideoCallToneNameProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CRingingTone1ObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CRingingTone1ObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CRingingTone1ObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CRingingTone1ObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iRingingTone1NameProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CRingingTone2ObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CRingingTone2ObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CRingingTone2ObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CRingingTone2ObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iRingingTone2NameProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CKeypadToneObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CKeypadToneObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CKeypadToneObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CKeypadToneObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iKeypadToneVolumeProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: sl@0: NONSHARABLE_CLASS(CSilenceModeObserverAO) : public CActive sl@0: { sl@0: public: sl@0: // Ist Phase constr and Destr sl@0: static CSilenceModeObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: ~CSilenceModeObserverAO(); sl@0: void Subscribe(); sl@0: sl@0: protected: sl@0: // From CActive sl@0: void RunL(); sl@0: void DoCancel(); sl@0: TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: // Constr and IInd phase constr sl@0: CSilenceModeObserverAO(CGlobalAudioSettings &aGlobalAudioSettings, sl@0: MAudioSettingsObserver& aAudioSettingsObserver, sl@0: TGlobalAudioSettings& aGlobalAudioSettingsData); sl@0: void ConstructL(); sl@0: CGlobalAudioSettings& iGlobalAudioSettings; sl@0: MAudioSettingsObserver& iAudioSettingsObserver; sl@0: RProperty iSilenceModeProperty; sl@0: TGlobalAudioSettings& iGlobalAudioSettingsData; sl@0: }; sl@0: #endif // GLOBALAUDIOSETTINGSIMPL_H sl@0: sl@0: // End of file