diff -r 04980be5c5fe -r ff8a573c0e2e mmsharing/mmshengine/inc/musengtelephoneutils.h --- a/mmsharing/mmshengine/inc/musengtelephoneutils.h Fri Mar 12 15:42:21 2010 +0200 +++ b/mmsharing/mmshengine/inc/musengtelephoneutils.h Mon Mar 15 12:40:08 2010 +0200 @@ -27,19 +27,22 @@ #include #include #include +#include // FORWARD DECLARATIONS class CRepository; class CTelephonyAudioRouting; class CPhCltCommandHandler; class MMusEngAudioRoutingObserver; +class MMusEngVolumeChangeObserver; /** * Utility class to handle all phone related requests: * Audio routing, volume control and microphone muting. */ class CMusEngTelephoneUtils : public CActive, - public MTelephonyAudioRoutingObserver + public MTelephonyAudioRoutingObserver, + public MCenRepNotifyHandlerCallback { MUS_UNITTEST( UT_CMusEngTelephoneUtils ) MUS_UNITTEST( UT_CMusEngSession ) @@ -79,10 +82,15 @@ TBool IsLoudSpeakerEnabled() const; /** - * + * Returns current CS call volume level from central repository */ TInt GetVolumeL() const; + /** + * Returns locally cached CS call volume level + */ + TInt GetVolume() const; + /** * */ @@ -104,6 +112,11 @@ */ void SetAudioRoutingObserver( MMusEngAudioRoutingObserver* aObserver ); + /** + * Sets volume level observer. Can be set to NULL in order to indicate + * ending of observing changes in volume level. + */ + void SetVolumeChangeObserver( MMusEngVolumeChangeObserver* aObserver ); private: // inherited from CActive @@ -145,6 +158,10 @@ */ void DoSetOutputL( CTelephonyAudioRouting::TAudioOutput aAudioOutput ); + private:// From MCenRepNotifyHandlerCallback + + void HandleNotifyGeneric( TUint32 aId ); + private: /** @@ -167,7 +184,13 @@ */ TInt ValidateVolume( const TInt aVolume ) const; - + /** + * Checks current volume level and notifies observer, if volume changed + * @param aAudioRouteChanged, ETrue if volume check should be done + * because of audio route change + */ + void UpdateCurrentVolume( TBool aAudioRouteChanged ); + private: // DATA /** @@ -197,6 +220,18 @@ TBool iShowDialog; + /** + * Central repository notifier instance. Owned. + */ + CCenRepNotifyHandler* iNotifier; + + /** + * Volume change observer + * Used to inform session about volume updates + */ + MMusEngVolumeChangeObserver* iVolumeObserver; + + TInt iCurrentVolume; };