sl@0: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: //
sl@0: 
sl@0: #ifndef __MMFBTAUDIOPOLICYREQUEST_H__
sl@0: #define __MMFBTAUDIOPOLICYREQUEST_H__
sl@0: 
sl@0: #include <e32base.h>
sl@0: #include "MmfBtPolicyClientServer.h" 
sl@0: 
sl@0: enum TPolicyResponse
sl@0: {
sl@0: 	EProceed,
sl@0: 	EDenied,
sl@0: 	EStopThenProceed,
sl@0: 	EResume,
sl@0: 	EMix
sl@0: };
sl@0: 
sl@0: /******************************************************************************
sl@0: * Class Name:	CMMFAudioPolicyRequest
sl@0: * 
sl@0: * Description:	This class carries request information from the client to the
sl@0: *				server, upon making a request to proceed with a user's command.
sl@0: *
sl@0: ******************************************************************************/
sl@0: 
sl@0: 
sl@0: class CMMFAudioPolicyRequest : public CBase
sl@0: /**
sl@0: *@internalTechnology
sl@0: */
sl@0: 	{
sl@0: public:
sl@0: 	inline CMMFAudioPolicyRequest();
sl@0: 	~CMMFAudioPolicyRequest(){};
sl@0: 
sl@0: 	// Accessor methods:
sl@0: 
sl@0: 	inline void SetPrioritySettings(const TMMFAudioPolicyPrioritySettings& aPrioritySettings);
sl@0: 
sl@0: 	inline TInt Priority();
sl@0: 	inline void SetPriority(TInt aPriority);
sl@0: 
sl@0: 	inline TMMFAudioPolicyState State();
sl@0: 	inline void SetState(TMMFAudioPolicyState aState);
sl@0: 
sl@0: 	inline TMdaPriorityPreference Pref();
sl@0: 	inline void SetPref(TMdaPriorityPreference aPref);
sl@0: 
sl@0: 	inline TInt PolicySessionId();
sl@0: 
sl@0: 	inline TBool DeviceInUse();
sl@0: 	inline void SetDeviceInUse(TBool aDeviceInUse);
sl@0: 	
sl@0: 	inline TUid NotificationEvent() const;
sl@0: 	inline void SetNotificationEvent(TUid aNotificationEventUid);
sl@0: 	inline void ResetNotificationEvent(TUid aNotificationEventUid);
sl@0: 	inline void SetEventFlag(TBool aEventFlag);
sl@0: 	inline TBool IsEventNotified() const;
sl@0: 
sl@0: 	inline TBool Capabilities();
sl@0: 	inline void SetCapabilities(TBool aCaps);
sl@0: 
sl@0: private:
sl@0: 
sl@0: 	TInt							iPriority;
sl@0: 	TMdaPriorityPreference			iPref;
sl@0: 	TMMFAudioPolicyState			iState;
sl@0: 	TInt							iPolicySessionId;
sl@0: 	TMMFAudioPolicyPrioritySettings	iPrioritySettings;
sl@0: 	TBool							iDeviceInUse;
sl@0: 	TUid							iNotificationEventUid;
sl@0: 	TBool							iEventNotified;
sl@0: 
sl@0: 	TBool							iCapabilities;
sl@0: 
sl@0: 	friend class CMMFAudioPolicySession;  // Allow this class to use SetSessionId()
sl@0: 	inline void SetPolicySessionId(TInt aPolicySessionId);
sl@0: 	};
sl@0: 
sl@0: #include "MmfBtAudioPolicyRequest.inl"
sl@0: 
sl@0: #endif //__MMFBTAUDIOPOLICYREQUEST_H__