diff -r 2c28af138640 -r c6215323ad55 accessoryservices/autoaudioasy/src/cautoaudioasypropertyobserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accessoryservices/autoaudioasy/src/cautoaudioasypropertyobserver.cpp Tue Jul 06 15:43:30 2010 +0300 @@ -0,0 +1,92 @@ +/* +* Copyright (c) 2010 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: Notify service class about connection state. +* +*/ + +#include "cautoaudioasypropertyobserver.h" +#include "autoaudiopskeys.h" +#include "mautoaudioasypropertylistener.h" + +#include "acc_debug.h" + +// --------------------------------------------------------------------------- +// CAutoAudioAsyPropertyObserver::NewL +// --------------------------------------------------------------------------- +CAutoAudioAsyPropertyObserver* CAutoAudioAsyPropertyObserver::NewL ( TUid aCategory, TUint aKey, + MAutoAudioAsyPropertyListener& aListener ) + { + COM_TRACE_1 ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::NewL(), key- %d", aKey ); + return new ( ELeave ) CAutoAudioAsyPropertyObserver ( aCategory, aKey, aListener ); + } + +// --------------------------------------------------------------------------- +// CAutoAudioAsyPropertyObserver::CAutoAudioAsyPropertyObserver +// --------------------------------------------------------------------------- +CAutoAudioAsyPropertyObserver::CAutoAudioAsyPropertyObserver ( TUid aCategory, TUint aKey, + MAutoAudioAsyPropertyListener& aListener ): + CActive ( EPriorityStandard ), + iCategory ( aCategory ), iKey ( aKey ), iListener ( aListener ) + { + CActiveScheduler::Add ( this ); + iProperty.Attach ( iCategory, iKey ); + iProperty.Subscribe ( iStatus ); + SetActive (); + } + +// --------------------------------------------------------------------------- +// CAutoAudioAsyPropertyObserver::~CAutoAudioAsyPropertyObserver +// --------------------------------------------------------------------------- +CAutoAudioAsyPropertyObserver::~CAutoAudioAsyPropertyObserver () + { + COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::~CAutoAudioAsyPropertyObserver"); + Cancel (); + iProperty.Close (); + } + +// --------------------------------------------------------------------------- +// CAutoAudioAsyPropertyObserver::RunL +// --------------------------------------------------------------------------- +void CAutoAudioAsyPropertyObserver::RunL () + { + COM_TRACE_ ( "AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::RunL"); + + TInt status = iStatus.Int (); + COM_TRACE_3 ( "[AccFW:AutoAudioAsy] key 0x%08x/%u changed, status %d", iCategory.iUid, iKey, status ); + // Subscribe for the next change BEFORE invoking the listener to make sure + // that we never miss any property changes. + iProperty.Subscribe ( iStatus ); + SetActive (); + + // Notify the listener + iListener.PropertyChange ( iProperty, iCategory, iKey, status ); + } + +// --------------------------------------------------------------------------- +// CAutoAudioAsyPropertyObserver::DoCancel +// --------------------------------------------------------------------------- +void CAutoAudioAsyPropertyObserver::DoCancel () + { + COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::DoCancel" ); + iProperty.Cancel (); + } + +// --------------------------------------------------------------------------- +// CAutoAudioAsyPropertyObserver::RunError +// --------------------------------------------------------------------------- +TInt CAutoAudioAsyPropertyObserver::RunError ( TInt /* aError */ ) + { + COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::RunError" ); + return KErrNone; + }