diff -r 4baee4f15982 -r 6385c4c93049 browserplugins/browseraudiovideoplugin/src/BavpVolumeHandler.cpp --- a/browserplugins/browseraudiovideoplugin/src/BavpVolumeHandler.cpp Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ -/* -* 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: Handles the volume, gets the initial volume from central -* repository and monitors changes in volume. -* -*/ - - -#include -#include -#include - -#include "BavpLogger.h" -#include "BavpVolumeHandler.h" -#include "BavpVolumeObserver.h" - - -// ----------------------------------------------------------------------------- -// CBavpVolumeHandler::NewL -// Two-phased constructor. -// ---------------------------------------------------------------------------- -CBavpVolumeHandler* CBavpVolumeHandler::NewL( MBavpVolumeObserver* aObserver ) - { - Log( EFalse, _L("CBavpVolumeHandler::NewL") ); - - CBavpVolumeHandler* self = new (ELeave) CBavpVolumeHandler( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ---------------------------------------------------------------------------- -// CBavpVolumeHandler::CBavpVolumeHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -CBavpVolumeHandler::CBavpVolumeHandler( MBavpVolumeObserver* aObserver ) - : iObserver( aObserver ) - { - } - -// ----------------------------------------------------------------------------- -// CBavpVolumeHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -void CBavpVolumeHandler::ConstructL() - { - Log( EFalse, _L("CBavpVolumeHandler::ConstructL") ); - - iCurrentVolume = KCRVolume5; - iCurrentProfile = KGeneralProfile; - - // Get volume settings from central repository - iVolumeRepository = CRepository::NewL( KCRUidBrowser ); - iVolumeRepository->Get( KBrowserMediaVolumeControl, iCurrentVolume ); - - // If media volume key exists, watch it for changes - iVolumeCRHandler = CCenRepNotifyHandler::NewL( *this, *iVolumeRepository, - CCenRepNotifyHandler::EIntKey, - (TUint32)KBrowserMediaVolumeControl); - iVolumeCRHandler->StartListeningL(); - iPreviousVolume = iCurrentVolume; - - // Get the current profile - iProfileRepository = CRepository::NewL( KCRUidProfileEngine ); - iProfileRepository->Get( KProEngActiveProfile, iCurrentProfile ); - - // Watch the Profile changes using a CR Notify Handler - iProfileCRHandler = CCenRepNotifyHandler::NewL( *this, *iProfileRepository, - CCenRepNotifyHandler::EIntKey, - (TUint32)KProEngActiveProfile ); - iProfileCRHandler->StartListeningL(); - - // Now that we have initial volume and profile, lets use them. - // Check if we're in Silent profile or Meeting profile. - if ( iCurrentProfile == KSilentProfile || - iCurrentProfile == KMeetingProfile ) - { - // Mute the volume, we already saved the CR volume - // as iPreviousVolume - iCurrentVolume = KCRVolumeMute; - } - - // Tell observer (BavpController) the initial volume - if ( iObserver ) - { - iObserver->UpdateVolume( iCurrentVolume ); - } - } - -// ---------------------------------------------------------------------------- -// CBavpVolumeHandler::~CBavpVolumeHandler -// Destructor -// ---------------------------------------------------------------------------- -CBavpVolumeHandler::~CBavpVolumeHandler() - { - Log( EFalse, _L("CBavpVolumeHandler::~CBavpVolumeHandler") ); - - // Clean up the media volume CR and CR Handler - if ( iVolumeCRHandler ) - { - iVolumeCRHandler->StopListening(); - delete iVolumeCRHandler; - } - - delete iVolumeRepository; - - // Clean up the Profile CR and CR Handler - if ( iProfileCRHandler ) - { - iProfileCRHandler->StopListening(); - delete iProfileCRHandler; - } - - delete iProfileRepository; - - } - -// ---------------------------------------------------------------------------- -// CBavpVolumeHandler::HandleNotifyInt() -// Handles volume and profile changes in CR -// ---------------------------------------------------------------------------- -void CBavpVolumeHandler::HandleNotifyInt( const TUint32 aKeyId, TInt aNewValue ) - { - if ( aKeyId == KBrowserMediaVolumeControl && aNewValue != iCurrentVolume ) - { - // Media Volume property updated, and it changed - if ( iCurrentProfile == KSilentProfile || - iCurrentProfile == KMeetingProfile ) - { - // We got a new volume, and Profile is "quiet", save and use later - iPreviousVolume = aNewValue; - } - else - { - // We got a new volume and Profile allows us to use it - iCurrentVolume = aNewValue; - } - } - else if ( aKeyId == KProEngActiveProfile && aNewValue != iCurrentProfile ) - { - // Profile property updated, and it changed - iCurrentProfile = aNewValue; - - // If we got a change in profile, mute or unmute - if ( iCurrentProfile == KSilentProfile || - iCurrentProfile == KMeetingProfile ) - { - // Mute the volume - iPreviousVolume = iCurrentVolume; - iCurrentVolume = KCRVolumeMute; - } - else // Unmute the volume - { - iCurrentVolume = iPreviousVolume; - } - } - - // Tell observer the new volume - if ( iObserver ) - { - iObserver->UpdateVolume( iCurrentVolume ); - } - } - -// End of file