diff -r 000000000000 -r 40261b775718 mmresourcemgmt/mmresctrl/inc/mmrcadaptationproxy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmresourcemgmt/mmresctrl/inc/mmrcadaptationproxy.h Tue Feb 02 01:56:55 2010 +0200 @@ -0,0 +1,147 @@ +// Copyright (c) 2007-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: +// mmrcserverphysicaladaptation.h +// +// + +#ifndef MMRCPHYSICALADAPTATION_H_ +#define MMRCPHYSICALADAPTATION_H_ + +#include +#include +#include +#include +#include "mmrcclientserver.h" +#include "maudiostreamadaptationobserver.h" + +class MLogicalChain; +class MAudioContext; +class CFourCCConvertor; +class CMMRCServerSideAdaptationResponseAO; +class CAudioStreamAdaptation; +class CMMRCServerSession; + +//------------------------------------------------------------------------------------ +// CMMRCClientSideServerRequestToAdaptationAO +//------------------------------------------------------------------------------------ + +/** +@internalComponent + +This class implements the proxy to the Physical adaptation. +The main purpose of this class is to communicate with the physical resource manager. +*/ +NONSHARABLE_CLASS( CMMRCClientSideServerRequestToAdaptationAO ): public CActive, public MAudioStreamAdaptationObserver + { +public: + /** + * Constructs, and returns a pointer to, a new CMMRCClientSideServerRequestToAdaptationAO object. + * Leaves on failure. + * @param CMMRCServerController& A reference on the MMRC Server controller + * @return CMMRCClientSideServerRequestToAdaptationAO* A pointer to newly created utlitly object. + */ + IMPORT_C static CMMRCClientSideServerRequestToAdaptationAO* NewL( ); + + /** + * Destructor. + */ + ~CMMRCClientSideServerRequestToAdaptationAO( ); + +public: + void Initialize(CMMRCServerSession* aServerSession, + CMMRCServerSideAdaptationResponseAO* aCallback, + RThread* aClientThread, + const CFourCCConvertor& aFourCCConvertor); + + void Service(TUint aRequestType); + + /** + * Callback in case of timeout + */ + void ResourceRequestAcknowledgmentTimeout( ); + + // from MAudioStreamAdaptationObserver + void PhysicalAdaptationEvent(TPhysicalEvent aEvent, TInt aError); + void StateEvent(TInt aReason, TAudioState aNewState); + void AddProcessingUnitComplete(TUid aType, TInt aError); + void RemoveProcessingUnitComplete(TUid aType, TInt aError); + void ProcessingFinished(); + void FlushComplete(TInt aError); + + //From CActive + virtual void RunL(); + virtual void DoCancel(); + +private: + /** + * By default Symbian 2nd phase constructor is private. + * @param CMMRCServerController& A reference on the MMRC Server controller + */ + CMMRCClientSideServerRequestToAdaptationAO( ); + + void TidyUp(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL( ); + +private: + //owned + CAudioStreamAdaptation* iStreamAdaptation; + + //not owned + RThread* iClientThread; + CMMRCServerSession* iServerSession; + CMMRCServerSideAdaptationResponseAO* iMMRCServerSideAdaptationResponseAO; + + MLogicalChain* iLogicalChainRequested; + MLogicalChain* iLogicalChainLastCommited; + MAudioContext* iAudioContext; + TInt iRequestsProcessed; + TUint iRequestType; + }; + +//------------------------------------------------------------------------------------ +// CMMRCServerSideAdaptationResponseAO +//------------------------------------------------------------------------------------ + +/** +@internalComponent + +*/ +NONSHARABLE_CLASS( CMMRCServerSideAdaptationResponseAO ) : public CActive + { +public: + ~CMMRCServerSideAdaptationResponseAO(); + static CMMRCServerSideAdaptationResponseAO* NewL(); + void Initialize(CMMRCServerSession* aServerSession, RThread* iServerThread ); + void Service(TMMRCAdaptationToServerRequestResults aEvent, TInt aError); + void StartAdaptationListening(); +private: + CMMRCServerSideAdaptationResponseAO(); + void ConstructL( ); + void RunL( ); + void DoCancel( ); + +private: + //not owned + CMMRCServerSession* iMMRCServerSession; + RThread* iServerThread; + + TMMRCAdaptationToServerRequestResults iEvent; + TInt iError; + }; + +#endif /*MMRCPHYSICALADAPTATION_H_*/