diff -r 6385c4c93049 -r 8e6fa1719340 browserplugins/browseraudiovideoplugin/inc/BavpVolumeHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserplugins/browseraudiovideoplugin/inc/BavpVolumeHandler.h Wed Sep 01 12:31:04 2010 +0100 @@ -0,0 +1,112 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: AO that completes on a change in the volume property. +* +*/ + + +#ifndef BAVPVOLUMEHANDLER_H +#define BAVPVOLUMEHANDLER_H + +#include +#include + +// CONSTANTS +const TInt KGeneralProfile = 0; +const TInt KSilentProfile = 1; +const TInt KMeetingProfile = 2; + +// The Central Depository volume values: +// 0(mute), 2, 5, 8, 10(maximum) +// Used to populate the initial volume and the volume dialog +const TInt KCRVolume0 = 0; +const TInt KCRVolume2 = 2; +const TInt KCRVolume5 = 5; +const TInt KCRVolume8 = 8; +const TInt KCRVolume10 = 10; +const TInt KCRVolumeMute = KCRVolume0; +const TInt KCRVolumeMax = KCRVolume10; + +// FORWARD DECLARATIONS +class MBavpVolumeObserver; +class CCenRepNotifyHandler; +class CRepository; + +/** +* CBavpVolumeHandler class for soft volume handling +* @lib npBrowserVideoPlugin.lib +* @since 3.2 +*/ +class CBavpVolumeHandler : public CBase, + public MCenRepNotifyHandlerCallback + { + public: + // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CBavpVolumeHandler* NewL( MBavpVolumeObserver* aObserver ); + + /** + * Destructor. + */ + ~CBavpVolumeHandler(); + + /** + * function impl for MCenRepNotifyHandlerCallback interface + * @since 3.1 + * @param TInt aVolume - volume value to be set to + * @return void + */ + void HandleNotifyInt( const TUint32 aKeyId, TInt aNewValue ); + + private: + /** + * C++ default constructor. + */ + CBavpVolumeHandler( MBavpVolumeObserver* aObserver ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: + + MBavpVolumeObserver* iObserver; + + // Central repository for Volume settings + CRepository* iVolumeRepository; + + // Handler to notify volume changes in central repository + CCenRepNotifyHandler* iVolumeCRHandler; + + // Current volume settings + TInt iCurrentVolume; + + // Previous volume settings, save for mute/unmute + TInt iPreviousVolume; + + // Central repository for Profiles + CRepository* iProfileRepository; + + // Handler to notify Profile changes in central repository + CCenRepNotifyHandler* iProfileCRHandler; + + // Current profile settings + TInt iCurrentProfile; + }; + +#endif //BAVPVOLUMEHANDLER_H