diff -r 1a6714c53019 -r cce62ebc198e radioengine/utils/inc/cradiosystemeventdetector.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioengine/utils/inc/cradiosystemeventdetector.h Tue Aug 31 15:15:02 2010 +0300 @@ -0,0 +1,111 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#ifndef CRADIOSYSTEMEVENTDETECTOR_H +#define CRADIOSYSTEMEVENTDETECTOR_H + +#include + +#include "cradiopropertyobserver.h" + +class MRadioSystemEventDetectorObserver; + +/** +* Catches notification of the call and network state changes. +* +* Class provides implementation to detect system events and notify UI components of the event, +* Class keeps several instances of CVPropertyObserver, and those instances send event notifications +* about the particular system component state change. +*/ +NONSHARABLE_CLASS( CRadioSystemEventDetector ) : public CBase + , public MRadioPropertyChangeObserver + { +public: + + static CRadioSystemEventDetector* NewL( MRadioSystemEventDetectorObserver& aObserver ); + + virtual ~CRadioSystemEventDetector(); + + /** + * Returns network coverage state ( wlan or mobile ). + */ + TBool IsNetworkCoverage() const; + + /** + * Returns mobile network coverage state. + */ + TBool IsMobileNetworkCoverage() const; + + /** + * Returns current call state. + */ + TBool IsCallActive() const; + + /** + * Returns current audio resources state. + * @return audio resources state + */ + TBool IsAudioResourcesAvailable() const; + + /** + * Returns current Voice UI state. + * @return ETrue if Voice UI is active, EFalse otherwise + */ + TBool IsVoiceUiActive() const; + +protected: + +// from base class MRadioPropertyChangeObserver + + void HandlePropertyChangeL( const TUid& aCategory, const TUint aKey, const TInt aValue ); + void HandlePropertyChangeL( const TUid& aCategory, const TUint aKey, const TDesC8& aValue ); + void HandlePropertyChangeL( const TUid& aCategory, const TUint aKey, const TDesC& aValue ); + void HandlePropertyChangeErrorL( const TUid& aCategory, const TUint aKey, TInt aError ); + +private: + + void ConstructL(); + + CRadioSystemEventDetector( MRadioSystemEventDetectorObserver& aObserver ); + +private: // data + + /** Observer which will be notified of the call and network state changes*/ + MRadioSystemEventDetectorObserver& iObserver; + + /** handler to Publish & Subscribe interface*/ + CRadioPropertyObserver* iCallStatusObserver; + /** handler to Publish & Subscribe interface*/ + CRadioPropertyObserver* iNetworkStatusObserver; + /** handler to Publish & Subscribe interface*/ + CRadioPropertyObserver* iAudioPolicyObserver; + + /**Indicator for the mobile network status*/ + TBool iIsMobileNetworkCoverage; + + /**Indicator for the call status*/ + TBool iIsCallActive; + + /** Array of audio policy categories that radio must not resume after. */ + RArray iNoAutoResumeAudioCategories; + + /** Indicator for audio resource status. */ + TBool iIsAudioResourcesAvailable; + + }; + +#endif // CRADIOSYSTEMEVENTDETECTOR_H