diff -r 000000000000 -r 71ca22bcf22a mmserv/callaudiocontrol/src/CallAudioControlRepository.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/callaudiocontrol/src/CallAudioControlRepository.cpp Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2007 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: This is the implementation of the CallAudioControlRepository class. + * + */ + +// INCLUDE FILES +#include "CallAudioControlRepository.h" +#include "CallAudioControlImpl.h" +#include "CallAudioControlCommon.h" + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::NewL +// +// ----------------------------------------------------------------------------- +// +CCallAudioControlRepository* CCallAudioControlRepository::NewL( + CCallAudioControlImpl* aImplParent, const TUid aUid, + const TUint32 aKey, TAction aAction) + { + CCallAudioControlRepository* self = + new (ELeave) CCallAudioControlRepository(); + CleanupStack::PushL(self); + self->ConstructL(aImplParent, aUid, aKey, aAction); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::CCallAudioControlRepository +// C++ constructor. +// ----------------------------------------------------------------------------- +// +CCallAudioControlRepository::CCallAudioControlRepository() : + CActive(EPriorityNormal), iSubscribed(EFalse) + { + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CCallAudioControlRepository::ConstructL( + CCallAudioControlImpl* aImplParent, const TUid aUid, + const TUint32 aKey, TAction aAction) + { + CAC_TRACE1(_L("CCallAudioControlRepository::ConstructL enter")); + iImplParent = aImplParent; + iAction = aAction; + iKey = aKey; + //Create Repository object: + iRepository = CRepository::NewL(aUid); + CActiveScheduler::Add(this); + CAC_TRACE1(_L("CCallAudioControlRepository::ConstructL exit")); + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::DestructL +// Destructor +// ----------------------------------------------------------------------------- +// +CCallAudioControlRepository::~CCallAudioControlRepository() + { + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::~CCallAudioControlRepository enter"),this); + Cancel(); + delete iRepository; + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::~CCallAudioControlRepository exit"),this); + } + +// --------------------------------------------------------- +// CCallAudioControlRepository::NotifyRequest +// ?implementation_description +// (other items were commented in a header). +// --------------------------------------------------------- +// +void CCallAudioControlRepository::NotifyRequest() + { + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::NotifyRequest"),this); + if (!IsActive()) + { + iRepository->NotifyRequest(iKey, iStatus); + SetActive(); + } + iSubscribed = ETrue; + } + +// --------------------------------------------------------- +// CCallAudioControlRepository::NotifyCancel +// ?implementation_description +// (other items were commented in a header). +// --------------------------------------------------------- +// +void CCallAudioControlRepository::NotifyCancel() + { + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::NotifyCancel"),this); + iRepository->NotifyCancel(iKey); + iSubscribed = EFalse; + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::Get +// ----------------------------------------------------------------------------- +// +TInt CCallAudioControlRepository::Get(TInt& aValue) + { + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::Get"), this); + TInt error = iRepository->Get(iKey, aValue); + return error; + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::Set +// ----------------------------------------------------------------------------- +// +TInt CCallAudioControlRepository::Set(TInt aValue) + { + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::Set"), this); + TInt error = iRepository->Set(iKey, aValue); + return error; + } + +// +// Methods required for CActive +// +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::DoCancel +// ----------------------------------------------------------------------------- +// +void CCallAudioControlRepository::DoCancel() + { + if (iSubscribed) + { + iRepository->NotifyCancel(iKey); + iSubscribed = EFalse; + } + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::RunL +// ----------------------------------------------------------------------------- +// +void CCallAudioControlRepository::RunL() + { + CAC_TRACE2(_L("CCallAudioControlRepository[%x]::RunL"), this); + TInt value; + TInt err = iRepository->Get(iKey, value); + if (err != KErrNone) + { + CAC_TRACE3(_L("CCallAudioControlRepository[%x]::RunL ERROR From Get: %d"), this,err); + } + // Notify CallAudioControl of change: + if (iImplParent != NULL) + { + iImplParent->NotifyL(iAction, err, value); + } + // Set self up to get future vol change notifications + iSubscribed = EFalse; + NotifyRequest(); + + } + +// ----------------------------------------------------------------------------- +// CCallAudioControlRepository::RunError +// ----------------------------------------------------------------------------- +// +TInt CCallAudioControlRepository::RunError() + { + return KErrNone; + } + +// End of file