sl@0: // Copyright (c) 2004-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 __MMFDEVSOUNDSESSIONTND_H__
sl@0: #define __MMFDEVSOUNDSESSIONTND_H__
sl@0: 
sl@0: #include "MmfDevSoundSession.h"
sl@0: #include "MmfDevSoundInfo.h"
sl@0: 
sl@0: /*
sl@0:  *
sl@0:  *	Class Name:	CMMFDevSoundSessionXtnd
sl@0:  *
sl@0:  *  This class provides an extended interface for CMMFDevSound - intended
sl@0:  *  to provide additional calls that are applicable to a particular implementation
sl@0:  *  This version is built on RMdaDevSound
sl@0:  */
sl@0: class CMMFDevSoundSessionXtnd;	// declared here.
sl@0: 
sl@0: NONSHARABLE_CLASS( CMMFDevSoundSessionXtnd ) : public CMMFDevSoundSession
sl@0: 	{
sl@0: public:
sl@0: 
sl@0: 	// Interface for Audio Policy
sl@0: 	// Sets id for this DevSound instance
sl@0: 	void SetDevSoundId(TInt aDevSoundId);
sl@0: 	// Returns info about this DevSound instance
sl@0: 	TMMFDevSoundInfo DevSoundInfo();
sl@0: 	// Called by Audio Policy Server when play reqeust is granted
sl@0: 	void StartPlayDataL();
sl@0: 	// Called by Audio Policy Server when record reqeust is granted
sl@0: 	void StartRecordDataL();
sl@0: 	// Called by Audio Policy Server when play tone reqeust is granted
sl@0: 	void StartPlayToneL();
sl@0: 	// Called by Audio Policy Server when play dual tone request is granted
sl@0: 	void StartPlayDualToneL();
sl@0: 	// Called by Audio Policy Server when play DTMF reqeust is granted
sl@0: 	void StartPlayDTMFStringL();
sl@0: 	// Called by Audio Policy Server when play tone sequence reqeust is granted
sl@0: 	void StartPlayToneSequenceL();
sl@0: 	// Called by Audio Policy Server when DevSound instance looses device
sl@0: 	void SendEvent(const TMMFEvent& aEvent);
sl@0: 	// Updates the total bytes played from audio device
sl@0: 	void UpdateBytesPlayed();
sl@0: 
sl@0: 	// CMMFHwDevice implementation:
sl@0: 	TInt FillThisBuffer(CMMFBuffer& aHwBuffer);
sl@0: 	TInt EmptyThisBuffer(CMMFBuffer& aHwBuffer);
sl@0: 	TInt DeviceMessage(TDesC8& aMsg);
sl@0: 	void DeviceStopped();
sl@0: 	// CMMFHwDevice implementation ends
sl@0: 	};
sl@0: 
sl@0: #endif // __MMFDEVSOUNDSESSIONTND_H__