diff -r 000000000000 -r bde4ae8d615e os/mm/mmhais/refacladapt/src/shared/audiostreamadaptation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/mm/mmhais/refacladapt/src/shared/audiostreamadaptation.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,142 @@ +// Copyright (c) 2006-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 AUDIOSTREAMADAPTATION_H +#define AUDIOSTREAMADAPTATION_H + +#include +#include +#include +#include + +/** +@publishedAll +@released + +Implementation of the Audio Component Version + +*/ + +class TAudioComponentInfo + { + TInt iVersion; + }; + +/** +@publishedAll +@released + +Implementation of the Stream Adaptation + +*/ + +class MAudioStreamAdaptationObserver; +class CFourCCConvertor; +class MLogicalChain; +class MAudioContext; + +const TUid KAudioComponentManagerUid = {0x10283462}; + +// Messages flags +const TInt KServerStopping = 0x01; +const TInt KPreemptionRequest = 0x02; + +/** +@publishedAll +@released + +This is the interface to AudioStreamAdaptation. +This is represent the stream loaded when the MMRC server +selects the adaptation. + +This functionality includes audio playback and recording using different formats +CAudioStreamAdaptation provides the access point for clients to Adaptation Layer. +It is responsible for initializing connections to various subsystems +in audio adaptation. These include setting up and managing connection +to the low level audio adaptation API implementations. The connections are then made +available . +*/ +class CAudioStreamAdaptation : public CBase + { + +public: + + /** + Constructs, and returns a pointer to, a new CAudioComponentManager object. + + @return A pointer to the CAudioComponentManager instance. + */ + static CAudioStreamAdaptation* NewL(TUid aType); + + /** + Destructor. + + Deletes all objects and releases all resource owned by this instance. + */ + virtual ~CAudioStreamAdaptation(); + + + /** + Returns if a message was passed through the adaptation. + + @param MLogicalChain + Logical Current Chain + @param MLogicalChain + Desired Chain after message + @return An error code indicating if the function call was successful. KErrNone on success, otherwise + another of the system-wide error codes. + */ + + virtual TInt Message(MLogicalChain& aCurrentChain, MLogicalChain& aDesiredChain, MAudioContext& aContext, TInt aFlags) = 0; + + /** + Returns if a Audio Stream Observer was Registered. + + @param MAudioStreamAdaptationObserver + Observer object witch will be registered + @return An error code indicating if the function call was successful. KErrNone on success, otherwise + another of the system-wide error codes. + */ + + virtual TInt RegisterAudioStreamObserver(MAudioStreamAdaptationObserver& aObserver) = 0 ; + + /** + Returns if a Audio Stream Observer was UnRegistered. + + @param MAudioStreamAdaptationObserver + Observer object witch will be unregistered + */ + + virtual void UnregisterAudioStreamObserver(MAudioStreamAdaptationObserver& aObserver) = 0; + + virtual void UnregisterAllAudioStreamObserver() = 0; + + virtual void SetFourCC(const CFourCCConvertor& aFourCCConvertor) = 0; + + +private: + + /** iDtor_ID_Key Instance identifier key. When instance of an + * implementation is created by ECOM framework, the + * framework will assign UID for it. The UID is used in + * destructor to notify framework that this instance is + * being destroyed and resources can be released. + */ + TUid iDtor_ID_Key; + }; + +#include "audiostreamadaptation.inl" + +#endif // C_AUDIOCOMPONENTMANAGER_H