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 __MMFAUDIOPOLICYPROXY_H__
sl@0: #define __MMFAUDIOPOLICYPROXY_H__
sl@0: 
sl@0: #include <e32base.h>
sl@0: #include <e32std.h>
sl@0: #include "MmfAudioPolicySession.h"  
sl@0: 
sl@0: #ifdef SYMBIAN_MDF_SHAREDCHUNK_SOUNDDRIVER
sl@0: 	#include "mdasoundadapter.h"
sl@0: #else
sl@0: 	#include <mdasound.h>
sl@0: #endif
sl@0: 
sl@0: #include <mmf/common/mmfipc.h>
sl@0: #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
sl@0: #include <mmf/common/mmfipcserver.h>
sl@0: #endif
sl@0: class RMMFAudioPolicyProxy; // declared here.
sl@0: 
sl@0: class CMMFAudioPolicyRequest;
sl@0: class TMMFDevSoundInfo;
sl@0: 
sl@0: NONSHARABLE_CLASS( RMMFAudioPolicyProxy ): public RMmfSessionBase
sl@0: /**
sl@0: *@internalTechnology
sl@0: */
sl@0: 	{
sl@0: public:
sl@0: 	IMPORT_C TInt Open(RServer2& aPolicyServerHandle);
sl@0: 	IMPORT_C TInt CreateServer(RServer2& aPolicyServerHandle);
sl@0: 	IMPORT_C TInt SetDevSoundInfo(TMMFDevSoundInfo& aDevSoundInfo);
sl@0: 	IMPORT_C void MakeRequest(TMMFAudioPolicyPrioritySettings& aPrioritySettings);
sl@0: 	IMPORT_C TInt UpdateState(TMMFAudioPolicyPrioritySettings& aPrioritySettings);
sl@0: 	IMPORT_C void ReceiveEvents(TMMFAudioPolicyEventPckg& aEventPckg, TRequestStatus& aStatus);
sl@0: 	IMPORT_C TInt CancelReceiveEvents();
sl@0: 	IMPORT_C TInt GetPlayFormatsSupported(RMdaDevSound::TSoundFormatsSupportedBuf& aPlayFormatsSupported);
sl@0: 	IMPORT_C TInt GetRecordFormatsSupported(RMdaDevSound::TSoundFormatsSupportedBuf& aRecordFormatsSupported);
sl@0: 	IMPORT_C TInt GetPlayFormat(RMdaDevSound::TCurrentSoundFormatBuf& aPlayFormat);
sl@0: 	IMPORT_C TInt GetRecordFormat(RMdaDevSound::TCurrentSoundFormatBuf& aRecordFormat);
sl@0: 	IMPORT_C TInt LaunchRequests();
sl@0: 	IMPORT_C TInt RequestResourceNotification(TUid aNotificationEventUid, const TDesC8& aNotificationData = KNullDesC8);
sl@0: 	IMPORT_C TInt CancelRequestResourceNotification(TUid aNotificationEventUid);
sl@0: 	IMPORT_C TInt StopNotification();
sl@0: 	IMPORT_C TInt IsRegisteredResourceNotification(TUid aEventType);
sl@0: private:
sl@0: 	TMMFAudioPolicyPrioritySettingsPckg iPsPckg;
sl@0: 	};
sl@0: 
sl@0: #endif