devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.h
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
#ifndef MMFDEVSOUNDSESSION_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
#define MMFDEVSOUNDSESSION_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
#include <e32base.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
#include <e32std.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <e32msgqueue.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <mmf/common/mmfbase.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <mmf/common/mmfutilities.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include <mmf/common/mmfipc.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include <mmf/common/mmfipcserver.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include <mmf/server/sounddevice.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
#include <a3f/mmfdevsoundcustominterfaceextensions.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
#include "mmfaudioclientserver.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
#include "mmfdevsoundadaptation.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
#include <mmf/server/mmfdevsoundcustominterface.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
#include "MmfDevSoundCIDeMuxUtility.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
#include <mmf/common/mcustominterface.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
// FORWARD DECLARATIONS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
class CMMFDevSoundServer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
class CMMFDevSoundAdaptation;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
class MGlobalProperties;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
Panic category and codes that MMFDevSoundSession raises on the client
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
_LIT(KMMFDevSoundSessionPanicCategory, "MMFDevSoundSession");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
enum TMMFDevSoundSessionPanicCodes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
	EMsgQueueFailedToSendMsg =1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	EQueueRequestsFailedToAppend,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	EUnexpectedAsyncOpCompleteHandlingCI,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	ERequestBeingServicedMismatch
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
// CLASS DECLARATION
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	This class is wrapper for RMmfIpcMessage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	The main purpose of this class is to hold a messages and 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	keep the status of the process started with the request
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	This is not related to message status itself (if was completed or not)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
	@lib MmfDevSoundServer.lib
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
class TMMFDevSoundRequest
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	enum TA3FDevSoundRequestType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
		{ 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
		EQuery_Synchronous,			// Message completed immediately, doesn't involve commit cycle, can be serviced even when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
		EQuery_Asynchronous,		// Message is not completed until operation is completed, doesn't involve commit cycle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
		EConfigure_Synchronous,		// Message completed immediately, doesn't involve commit cycle, can be serviced even when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
		EConfigure_Asynchronous,	// Message is not completed until operation is completed, cannot be serviced when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
		EAction_Asynchronous,		// Message is not completed until operation is completed, cannot be serviced when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
		EAction_PseudoAsynchronous,	// Message is completed, but all the incoming asynchronous request that involves commit are enqueued 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
		EOther_Synchronous,			// Message completed immediately, doesn't involve commit cycle, can be serviced even when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
		EBufferExchangeRelated,		// Message completed immediately, doesn't involve commit cycle, can be serviced even when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
		ECustomInterfacesRelated,	// Message completed immediately, doesn't involve commit cycle, can be serviced even when a commit operation is pending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
		EUndefinedType,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
		ECallBackType,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
		ESessionEvents,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
		};	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	TMMFDevSoundRequest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	TMMFDevSoundRequest(TInt aIsCallBack);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
	TMMFDevSoundRequest(const TMMFDevSoundRequest& aRequest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	void SetMessage(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
	void SetMessageCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	TBool operator==(const TMMFDevSoundRequest& aRequest) const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	const RMmfIpcMessage& Message();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	TInt Function() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
	TA3FDevSoundRequestType Type() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
	TInt IsCallBack() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
	void Complete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	TA3FDevSoundRequestType ResolveType();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	TBool			iMessageCompleted;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
	/**	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	The encapsulated request message	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	RMmfIpcMessage iMessage;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	The classification for this request
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	TA3FDevSoundRequestType		iRequestType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	TInt			iCallBackPF;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
// CLASS DECLARATION
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	Server-side session implementation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
	This class handles all the request from RMmfDevSoundProxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
	This classes uses MmfDevSoundAdaptation library and forwards all the reqeusts
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
	to it. The main purpose of this class is to handle client server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
	communication.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
	@lib MmfDevSoundServer.lib
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
	@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
class CMMFDevSoundSession : public CMmfIpcSession,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
							public MDevSoundAdaptationObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
							public MMMFDevSoundCustomInterfaceDeMuxInterface,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
							public MCustomInterface,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
							public MMMFDevSoundCustomInterfaceTarget
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
							
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
public:  // Constructors and destructor	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
		Constructs, and returns a pointer to, a new CMMFDevSoundSession
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
		object.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
		@param MGlobalProperties a reference to global properties such as FourCC to format converter
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
		@return CMMFDevSoundSession* A pointer to newly created object.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	static CMMFDevSoundSession* NewL(MGlobalProperties& aGlobalProperties);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
		Destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	~CMMFDevSoundSession();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
public: // New functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
		Called by Client/Server framework when a new session is created.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
		@param const CMmfIpcServer& aServer A constant reference to server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
			creating this session.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	void CreateL(const CMmfIpcServer& aServer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
		Called by Client/Server framework when service request is made by the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
		corresponding RMmfDevSoundProxy.object.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	void ServiceL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
		Function to handle DevSound session id request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
		@return TInt A integer assigned to this DevSound server.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
	TInt DevSoundSessionId() {return iDevSoundSessionId;};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
	// TODO: Review if the parameter should be kept or not
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	void SendEventToClient(/*TMMFAudioServerEvent& aEvent*/);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
		Method to service PostOpen request - 2nd phase async open.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
	TBool DoPostOpenL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
		Method to service Initialize1L request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
	TBool DoInitialize1L(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
		Method to service Initialize1L request that has already completed, but
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
		not finished due to a pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	void DoAlreadyCompletedInitialize1L();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
		Method to service Initialize2L request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
	TBool DoInitialize2L(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
		Method to service Initialize2L request that has already completed, but
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
		not finished due to a pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	void DoAlreadyCompletedInitialize2L();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
		Method to service Initialize3L request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	TBool DoInitialize3L(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
		Method to service Initialize4L request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	TBool DoInitialize4L(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
		Method to service Initialize4L request that has already completed, but
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
		not finished due to a pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
	void DoAlreadyCompletedInitialize4L();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
		Method to service CancelInitialize request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
	TBool DoCancelInitializeL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
		Method to service capabilities query request from
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
		RMmfDevSoundProxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
	TBool DoCapabilitiesL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
		Method to service current configuration query request from
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
		RMmfDevSoundProxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
	TBool DoConfigL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
		Method to service set current configuration request from
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
		RMmfDevSoundProxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	TBool DoSetConfigL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
		Method to service maximum volume query request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
	TBool DoMaxVolumeL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
		Method to service current volume level query request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
	TBool DoVolumeL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
		Method to service set current volume level request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
	TBool DoSetVolumeL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
		Method to service maximum gain query request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
	TBool DoMaxGainL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
		Method to service current gain level query request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
	TBool DoGainL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
		Method to service set current gain level request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
	TBool DoSetGainL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
		Method to service current play balance level query request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	TBool DoGetPlayBalanceL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
		Method to service set current play balance level request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
	TBool DoSetPlayBalanceL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
		Method to service current record balance level query request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	TBool DoGetRecordBalanceL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
		Method to service set current record balance level request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
	TBool DoSetRecordBalanceL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
		Method to service initialize DevSound to play request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
	TBool DoPlayInitL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
		Method to service initialize DevSound to play request that has already completed,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
		but not finished due to a pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
	void DoAlreadyCompletedPlayInitL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
		Method to service initialize DevSound to record request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
	TBool DoRecordInitL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
		Method to service initialize DevSound to record request that has already completed,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
		but not finished due to a pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
	void DoAlreadyCompletedRecordInitL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
		Method to service signal DevSound to playing current buffer request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	TBool DoPlayDataL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
		Method to service signal DevSound to continue record request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
	TBool DoRecordDataL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
		Method to service signal DevSound to stop ongoing operation request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
	TBool DoStopL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
		Method to service signal DevSound to temporarily stop ongoing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
		operation request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
	TBool DoPauseL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
		Method to service signal DevSound to play simple tone  operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
	TBool DoPlayToneL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
		Method to service signal DevSound to play simple tone operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
		request that has already completed, but not finished due to a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
		pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
	void DoAlreadyCompletedPlayToneL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
		Method to service signal DevSound to play dual tone  operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	TBool DoPlayDualToneL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
		Method to service signal DevSound to play dual tone operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
		request that has already completed, but not finished due to a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
		pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
	void DoAlreadyCompletedPlayDualToneL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
		Method to service signal DevSound to play DTMFString operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	TBool DoPlayDTMFStringL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
		Method to service signal DevSound to play DTMFString operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
		request that has already completed, but not finished due to a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
		pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
	void DoAlreadyCompletedPlayDTMFStringL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
		Method to service signal DevSound to play tone sequence operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
	TBool DoPlayToneSequenceL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
		Method to service signal DevSound to play tone sequence operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
		request that has already completed, but not finished due to a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
		pre-emption clash during its commit cycle(s).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
	void DoAlreadyCompletedPlayToneSequenceL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
		Method to service signal DevSound to initilize DTMF String operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
	TBool DoSetDTMFLengthsL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
		Method to service signal DevSound to set volume ramp operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
	TBool DoSetVolumeRampL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
		Method to service query DevSound to return supported input data types
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
		operation request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
	TBool DoGetSupportedInputDataTypesL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
		Method to service query DevSound to copy FourCC array data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
		operation request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
	TBool DoCopyFourCCArrayDataL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
		Method to service the request querying samples recorded so far.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
	TBool DoSamplesRecordedL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
		Method to service the request querying samples played so far.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	TBool DoSamplesPlayedL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
		Method to service the request to set tone repeats.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
	TBool DoSetToneRepeatsL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
		Method to service the request to set priority settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
	TBool DoSetPrioritySettingsL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
		Method to service the request querrying supported output data types.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
	TBool DoGetSupportedOutputDataTypesL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
		Method to service the request querrying specifics of the TBF data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
			 buffer.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	TBool DoBufferToBeFilledDataL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
		Method to service the request querrying specifics of the TBE data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
			buffer.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
	TBool DoBufferToBeEmptiedDataL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
	TBool DoEmptyBuffersL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
		Method to service the request querrying preparation for close session
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
	TBool DoPrepareCloseL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
	TBool DoRegisterAsClientL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
	TBool DoCancelRegisterAsClientL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
	TBool DoGetResourceNotificationDataL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
	TBool DoWillResumePlayL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
	TBool DoSetClientThreadInfoL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
		Method to get the current play time from the audio renderer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
	TBool DoGetTimePlayedL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
		Method to query if True Pause is supported by current codec format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	TBool DoQueryResumeSupportedL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
		Method to service signal DevSound to resume playback, recording or tone playing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
		request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
		@param const RMmfIpcMessage& aMessage A reference to message object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
			containing request attributes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
		@return ETrue if the request is serviced completely else EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	TBool DoResumeL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
		Initializes to raw audio data PCM16 and Sampling Rate of 8 KHz.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
		On completion of Initialization, calls InitializeComplete() on
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
		aDevSoundObserver.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
		@param MDevSoundAdaptationObserver& aDevSoundObserver A reference to DevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
			Observer instance.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
		@param TMMFState aMode Mode for which this object will be used.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
	void InitializeL(MDevSoundAdaptationObserver& aDevSoundObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
									TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
		Initializes DevSound object for the mode aMode for processing audio
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
		data with hardware device aHWDev.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
		On completion of Initialization, calls InitializeComplete() on
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
		aDevSoundObserver.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
		@param MDevSoundAdaptationObserver& aDevSoundObserver A reference to DevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
			Observer instance.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
		@param TUid aHWDev The CMMFHwDevice implementation identifier.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
		@param TMMFState aMode The mode for which this object will be used
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	void InitializeL(MDevSoundAdaptationObserver& aDevSoundObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
					TUid aHWDev,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
					TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
		Initializes DevSound object for the mode aMode for processing audio
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
		data with hardware device supporting FourCC aDesiredFourCC.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
		@param MDevSoundAdaptationObserver& aDevSoundObserver A reference to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
			the DevSound adaptation observer instance.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
		@param TFourCC aDesiredFourCC The CMMFHwDevice implementation FourCC
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
			code.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
		@param TMMFState aMode The mode for which this object will be used
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
		@return KErrNone if successfull, else corresponding error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	void InitializeL(MDevSoundAdaptationObserver& aDevSoundObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
					TFourCC aDesiredFourCC,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
					TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
		Returns the supported Audio settings ie. encoding, sample rates,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
		mono/stereo operation, buffer size etc..
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
		@return TMMFCapabilities The device settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
	TMMFCapabilities Capabilities();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
		Returns the current device configuration.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
		@return TMMFCapabilities The device settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	TMMFCapabilities Config() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
		Configure CMMFDevSound object with the settings in aConfig. Use this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
		to set sampling rate, encoding and mono/stereo.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
		@param const TMMFCapabilities& aConfig The attribute values to which
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
			CMMFDevSound object will be configured to.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
	void SetConfigL(const TMMFCapabilities& aCaps);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
		Returns an integer representing the maximum volume device supports.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
		This is the maximum value which can be passed to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
		CMMFDevSound::SetVolume.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
		@return TInt The maximum volume. This value is platform dependent but
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
			is always greater than or equal to one.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
	TInt MaxVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
		Returns an integer representing the current volume.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
		@return TInt The current volume level.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
	TInt Volume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
		Changes the current playback volume to a specified value. The volume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
		can be changed before or during playback and is effective immediately.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
		@param TInt aVolume The volume setting. This can be any value from 0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
			to the value returned by a call to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
			CMMFDevSound::MaxVolume(). If the volume is not
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
			within this range, the volume is automatically set
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
			to minimum or maximum value based on the value
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
			that is being passed. Setting a zero value mutes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
			the sound. Setting the maximum value results in
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
			the loudest possible sound.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
	void SetVolume(TInt aVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
		Returns an integer representing the maximum gain the device supports.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
		This is the maximum value which can be passed to CMMFDevSound::SetGain
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
		@return TInt The maximum gain. This value is platform dependent but is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
			always greater than or equal to one.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
	TInt MaxGain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
		Returns an integer representing the current gain.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
		@return TInt The current gain level.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
	TInt Gain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
		Changes the current recording gain to a specified value. The gain can
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
		be changed before or during recording and is effective immediately.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
		@param TInt aGain The gain setting. This can be any value from zero to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
			the value returned by a call to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
			CMMFDevSound::MaxGain(). If the volume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
			is not within this range, the gain is automatically
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
			set to minimum or maximum value based on the value
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
			that is being passed. Setting a zero value mutes the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
			sound. Setting the maximum value results in the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
			loudest possible sound.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
	void SetGain(TInt aGain);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
		Returns the speaker balance set for playing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
		@param TInt &aLeftPercentage On return contains the left speaker
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
			volume percentage.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
		@param TInt &aRightPercentage On return contains the right speaker
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
			volume percentage.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
	void GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
		Sets the speaker balance for playing. The speaker balance can be
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
		changed before or during playback and is effective immediately.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
		@param TInt aLeftPercentage The left speaker volume percentage. This
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
			can be any value from zero to 100. Setting
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
			a zero value mutes the sound on left
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
			speaker.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
		@param TInt aRightPercentage The right speaker volume percentage.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
			This can be any value from zero to 100.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
			Setting a zero value mutes the sound on
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
			right speaker.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
	void SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
		Returns the microphone gain balance set for recording.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
		@param TInt &aLeftPercentage On return contains the left microphone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
			gain percentage.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
		@param TInt &aRightPercentage On return contains the right microphone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
			 gain percentage.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
	void GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
		Sets the microphone balance for recording. The microphone balance can
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
		be changed before or during recording and is effective immediately.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
		@param TInt aLeftPercentage The left microphone gain percentage. This
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
		can be any value from zero to 100. Setting
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
			a zero value mutes the sound from left
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
			microphone.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
		@param TInt aRightPercentage The right microphone gain percentage.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
			This can be any value from zero to 100.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
			Setting a zero value mutes the sound from
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
			right microphone.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
	void SetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
		Initializes the audio device and starts the play process. This
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
		function queries and acquires the audio policy before initializing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
		audio device. If there was an error during policy initialization,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
		PlayError() function will be called on the observer with error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
		KErrAccessDenied, otherwise BufferToBeFilled() function will be called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
		with a buffer reference. After reading data into the buffer reference
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
		passed, the client should call PlayData() to play data.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
		The amount of data that can be played is specified in
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
		CMMFBuffer::RequestSize(). Any data that is read into buffer beyond
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
		this size will be ignored.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
	void PlayInitL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
		Initializes the audio device and starts the record process. This
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
		function queries and acquires the audio policy before initializing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
		audio device. If there was an error during policy initialization,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
		RecordError() function will be called on the observer with error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
		KErrAccessDenied, otherwise BufferToBeEmptied() function will be called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
		with a buffer reference. This buffer contains recorded or encoded
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
		data. After processing data in the buffer reference passed, the client
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
		should call RecordData() to continue recording process.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
		The amount of data that is available is specified in
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
		CMMFBuffer::RequestSize().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
	void RecordInitL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
		Plays data in the buffer at the current volume.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
		The client should fill the buffer with audio data before calling this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
		function. The observer gets a reference to the buffer along with the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
		callback function BufferToBeFilled(). When playing of the audio sample
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
		is complete, successfully or otherwise, the function PlayError() on
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
		the observer is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
		The last buffer of the audio stream being played should have the last
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
		buffer flag set using CMMFBuffer::SetLastBuffer(TBool). If a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
		subsequent attempt to play the clip is made, this flag will need
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
		resetting by the client.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
	void PlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
		Contine the process of recording.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
		Once the buffer is filled with recorded data, the Observer gets a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
		reference to the buffer along with the callback function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
		BufferToBeEmptied(). After processing the buffer (copying over to a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
		different buffer or writing to file) the client should call this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
		function to continue the recording process.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
	void RecordData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
		Stops the ongoing operation (Play, Record, TonePlay).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
	void Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
		Temporarily Stops the ongoing operation (Play, Record, TonePlay).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
	void Pause();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
		Returns the Sample recorded so far
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
		@return TInt Returns the samples recorded.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
	TInt SamplesRecorded();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
		Returns the Sample played so far
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
		@return TInt Returns the samples played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
	TInt SamplesPlayed();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
		Initializes the audio device and starts playing a tone. The tone is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
		played with the frequency and duration specified.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
		@param TInt aFrequency The frequency at which the tone will be played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
		@param const TTimeIntervalMicroSeconds &aDuration The period over
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
		which the tone will be played. A zero value causes the no tone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
		to be played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
	void PlayToneL(TInt aFrequency,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
				const TTimeIntervalMicroSeconds& aDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
		Initializes audio device and starts playing a dual tone. Dual Tone is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
		played with the specified frequencies and for the specified duration.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
		@param TInt aFrequencyOne The first frequency of dual tone.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
		@param TInt aFrequencyTwo The second frequency of dual tone.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
		@param const TTimeIntervalMicroSeconds &aDuration The period over
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
			which the tone will be played. A zero value causes the no tone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
			to be played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
	void PlayDualToneL(TInt aFrequencyOne,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
					TInt aFrequencyTwo,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
					const TTimeIntervalMicroSeconds& aDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
		Initializes the audio device and starts playing the DTMF string
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
		aDTMFString.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
		@param const TDesC &aDTMFString The DTMF sequence in a descriptor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
	void PlayDTMFStringL(const TDesC& aDTMFString);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
		Initializes the audio device and starts playing a tone sequence.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
		@param const TDesC8 &aData The tone sequence in a descriptor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
	void PlayToneSequenceL(const TDesC8& aData);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
		Defines the number of times the audio is to be repeated during the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
		tone playback operation. A period of silence can follow each playing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
		of a tone. The tone playing can be repeated indefinitely
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
		@param TInt aRepeatCount The number of times the tone, together with
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
			the trailing silence, is to be repeated. If this is set to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
			KMdaRepeatForever, then the tone, together with the trailing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
			silence, is repeated indefinitely or until Stop() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
			If this is set to zero, then the tone is not repeated.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
		@param const TTimeIntervalMicroSeconds &aRepeatTrailingSilence An
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
			interval of silence which will be played after each tone.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
			Supported only during tone playing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
	void SetToneRepeats(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
			TInt aRepeatCount,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
			const TTimeIntervalMicroSeconds& aRepeatTrailingSilence);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
		Defines the duration of tone on, tone off and tone pause to be used
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
		during the DTMF tone playback operation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
		Supported only during tone playing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
		@param TTimeIntervalMicroSeconds32 &aToneOnLength The period over
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
			which the tone will be played. If this is set to zero, then the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
			tone is not played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
		@param TTimeIntervalMicroSeconds32 &aToneOffLength The period over
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
			which the no tone will be played.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
		@param TTimeIntervalMicroSeconds32 &aPauseLength The period over which
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
			the tone playing will be paused.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	void SetDTMFLengths(TTimeIntervalMicroSeconds32& aToneOnLength,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
					TTimeIntervalMicroSeconds32& aToneOffLength,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
					TTimeIntervalMicroSeconds32& aPauseLength);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
		Defines the period over which the volume level is to rise smoothly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
		from nothing to the normal volume level.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
		The function is only available before playing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
		@param const TTimeIntervalMicroSeconds &aRampDuration The period over
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
			which the volume is to rise. A zero value causes the tone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
			sample to be played at the normal level for the full duration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
			of the playback. A value, which is longer than the duration of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
			the tone sample means that the sample never reaches its normal
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
			volume level.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
	void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
		Defines the priority settings that should be used for this instance.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
		@param const TMMFPrioritySettings &aPrioritySettings A class type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
			representing the client's priority, priority preference and
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
			state
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
	void SetPrioritySettings(TMMFPrioritySettings& aPrioritySettings);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
		Returns a pointer reference to custom interface implementation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
		Note: Implementation from MCustomInterface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
		@return   "TAny"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
			Custom interface implementation. The exact type of pointer is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
			dependent on the custom interface implemenation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
	virtual TAny* CustomInterface(TUid aInterfaceId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
		Returns a list of the supported input datatypes that can be sent to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
		DevSound for playing audio. The datatypes returned are those that the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
		DevSound supports given the priority settings passed in
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
		aPrioritySettings. Note that if no supported data types are found this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
		does not constitute failure, the function will return normally with no
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
		entries in aSupportedDataTypes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
		@param RArray< TFourCC > &aSupportedDataTypes The array of supported
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
			data types that will be filled in by this function. The
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
			supported data types of the DevSound are in the form of an
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
			array of TFourCC codes. Any existing entries in the array will
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
			be overwritten on calling this function. If no supported data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
			types are found given the priority settings, then the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
			aSupportedDatatypes array will have zero entries.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
		@param const TMMFPrioritySettings &aPrioritySettings The priority
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
			settings used to determine the supported datatypes. Note this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
			does not set the priority settings. For input datatypes the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
			iState member of the priority settings would be expected to be
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
			either EMMFStatePlaying or EMMFStatePlayingRecording. The
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
			priority settings may effect the supported datatypes depending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
			on the audio routing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
	void GetSupportedInputDataTypesL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
		RArray<TFourCC>& aSupportedDataTypes,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
		const TMMFPrioritySettings& aPrioritySettings) const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
		Returns a list of the supported output dataypes that can be received
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
		from DevSound for recording audio. The datatypes returned are those
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
		that the DevSound supports given the priority settings passed in
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
		aPrioritySettings. Note that if no supported data types are found this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
		does not constitute failure, the function will return normally with no
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
		entries in aSupportedDataTypes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
		@param RArray< TFourCC > &aSupportedDataTypes The array of supported
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
			data types that will be filled in by this function. The
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
			supported datatypes of the DevSound are in the form of an array
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
			of TFourCC codes. Any existing entries in the array will be
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
			overwritten on calling this function. If no supported datatypes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
			are found given the priority settings, then the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
			aSupportedDatatypes array will have zero entries.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
		@param const TMMFPrioritySettings &aPrioritySettings The priority
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
			settings used to determine the supported data types. Note this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
			does not set the priority settings. For output data types the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
			iState member of the priority settings would expected to be
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
			either EMMFStateRecording or EMMFStatePlayingRecording. The
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
			priority settings may effect the supported datatypes depending
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
			on the audio routing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
	void GetSupportedOutputDataTypesL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
		RArray<TFourCC>& aSupportedDataTypes,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
		const TMMFPrioritySettings& aPrioritySettings) const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
		This is called when DevSound initialization is complete.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
		@param TInt aError KErrNone if successfull, else corresponding error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
			code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
		This is called when tone play back is complete.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
		@param TInt aError KErrNone if successfull, else corresponding error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
			code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
		This is called when more data is needed during digital audio playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
		@param CMMFBuffer* aBuffer A pointer to buffer where data is needed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
		This is called when there is error during playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
		@param TInt aError KErrUnderflow if last buffer is played back, else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
			corresponding error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
		This is called when data is available during digital audio recording.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
		@param CMMFBuffer* aBuffer A pointer to buffer where recorded data is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
			available.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
		This is called when there is error during recording.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
		@param TInt aError Corresponding error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
		This is called when there is a message from audio device.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
		@param TUid aMessageType A Uid identifying message type.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
		@param const TDesC8& aMsg A reference to constant descriptor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
			containing packed message.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
	// from MMMFDevSoundCustomInterfaceDeMuxPlugin
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
		Underlying interface has been (or is about to be) deleted.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
		Implementations will generally cancel outstanding messages
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
		@param	aInterfaceId	Uid of the Interface which has been deleted
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
	void InterfaceDeleted(TUid aInterfaceId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
		Not used.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
		@param const TMMFEvent& aEvent Not used
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
	void SendEventToClient(const TMMFEvent& aEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
	void DoProcessingFinished();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
	void DoProcessingError();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
		Underlying physical adaptation has sent a callback that will result either on a commit
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
		and need to scheduled or in the case of RecordPauseComplete, completes the message. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
		@param aType the callback type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
		@param aError KErrNone if successful, else corresponding error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
			code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
	void CallbackFromAdaptorReceived(TInt aType, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
		Underlying physical adaptation has sent a callback indicating that a preemption process 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
	 	has started, any incomming commands will be queued during the preemption.  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
	 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
	void PreemptionStartedCallbackReceived();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
		Underlying physical adaptation has sent a callback indicating that a preemption process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
		has finished. Queued commands during preemption can now be processed. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
		@param	aCanStartNewOperation	If EFalse indicates that the operation has more than a cycle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
	 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
	void PreemptionFinishedCallbackReceived(TBool aCanStartNewOperation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
	// from MDevSoundAdaptationObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
	TBool AdaptorControlsContext() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
	void PreemptionClash();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
	void PreemptionClashWithStateChange();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
    void NotifyError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
		MDevSoundAdaptationObserver callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
		Indicates that a low layer operation completion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
		@param	aError	The status of operation in progress
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
		@param	aCanStartNewOperation	If EFalse indicates that the operation has more than a cycle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
	void AsynchronousOperationComplete(TInt aError, TBool aCanStartNewOperation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
	// from MMMFDevSoundCustomInterfaceDeMuxInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
	TInt DoOpenSlaveL(TUid aInterface, const TDesC8& aPackageBuf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
	void DoCloseSlaveL(TInt aHandle);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
	TInt DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
	TInt DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& aMessage); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
	void DoSendSlaveAsyncCommandL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
	void DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
private: // Functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
		Returns a object reference to CMMFObjectContainer.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
		@return CMMFObjectContainer& A reference to CMMFObjectContainer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
			implemenation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
	CMMFObjectContainer& MMFObjectContainerL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
		Returns a object reference to CMMFObjectContainer.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
		@return CMMFCustomCommandParserBase& aParser A reference to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
			Custom command parser implemenation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
	void AddCustomCommandParserL(CMMFCustomCommandParserBase& aParser);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
		Method to set client configuration information to DevSound Adaptation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
		Leaves on failure.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
	void DoSetClientConfigL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
		Equivalent of DoSetClientConfigL() that returns error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
		@return system-wide error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
	TInt DoSetClientConfig();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
		Method to create global chunk
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
		@since 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
		@param TMMFDevSoundProxyHwBufPckg& - buffer information container
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
		@param CMMFDataBuffer* - data buffer pointer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
		@return void
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
	TInt CreateChunk(TMMFDevSoundProxyHwBufPckg& aBufPckg, TInt aRequestedSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
	// New internal methods
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
	Services the first request at the FIFO
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
	void DoServiceRequestL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
	Services the first request of queue for a pseudo asynchronous function that has already completed,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
	but needs to be re-applied again due to pre-emption clash.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
	void DoServiceAlreadyCompletedRequestL(const TInt aFunction);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
	Handles the first request of queue for a pseudo asynchronous function that has already completed,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
	but needs to be re-applied again due to pre-emption clash.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
	void HandleAlreadyCompletedRequest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
	Services the first request at the FIFO
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
	void DoServiceNextRequestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
	Completes the message 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
	@param aReason the error to complete message
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
	@param aOperationComplete if is true also this message will be removed from the queue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
		if is false just the message will be completed but will be keeped at the queue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
	void CompleteRequest(TInt aReason);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
	Adds a message to the FIFO
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
	void EnqueueRequest(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425
	Removes the message from the FIFO
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1426
	 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1427
	void DequeueRequest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1428
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1429
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1430
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1431
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1432
	Flush event queue - called as part of Stop() sequence
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1433
	 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1434
	void FlushEventQueue();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1435
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1436
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1437
	Filter certain events from message queue 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1438
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1439
	void FilterQueueEvent(TMMFDevSoundProxyRequest aRequest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1440
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1441
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1442
	Called by a server when it receives a disconnect message for the session.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1443
	Overrided in order to perform asynchronous cleanup actions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1444
	these actions must end with a call to the base class implementation of this method
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1445
	which will delete the session object and complete the disconnect message
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1446
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1447
	void Disconnect(const RMessage2& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1448
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1449
	//panic function	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1450
	void Panic(TMMFDevSoundSessionPanicCodes aCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1451
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1452
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1453
	Used to send a stop call when error in buffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1454
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1455
	void BufferErrorEvent();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1456
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1457
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1458
	 Removes all entries from iQueuedRequests except for
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1459
	 disconnect requests.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1460
	 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1461
	void FlushQueuedRequests();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1462
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1463
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1464
	 Helper functions, used to guard against accessing the equivalent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1465
	 functions on bad message handles during a disconnection. These
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1466
	 methods should be used whenever a Read or Write is made outside the 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1467
	 context of DoServiceRequestL().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1468
	 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1469
	TInt MessageRead(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1470
	TInt MessageRead(const RMmfIpcMessage& aMessage, TInt aParam, TDes16& aResult);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1471
	TInt MessageWrite(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1472
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1473
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1474
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1475
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1476
		C++ default constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1477
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1478
	CMMFDevSoundSession();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1479
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1480
		By default Symbian 2nd phase constructor is private.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1481
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1482
	void ConstructL(MGlobalProperties& aGlobalProperties);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1483
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1484
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1485
	TBool DoCustomCommandL(const RMmfIpcMessage& aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1486
	MMMFDevSoundCustomInterfaceDeMuxPlugin* InterfaceFromUid(TUid aUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1487
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1488
	static TInt AsyncQueueStartCallback(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1489
	void AsyncQueueStartCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1490
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1491
	void ResetNotifiedError();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1492
	TInt NotifiedError() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1493
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1494
	TBool NeedToQueue() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1495
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1496
protected:	// Data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1497
	CMMFDevSoundAdaptation* iAdapter;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1498
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1499
private:	// Data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1500
	// A number representing the session id
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1501
	TInt iDevSoundSessionId;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1502
	// Reference to play buffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1503
	CMMFDataBuffer* iBufferPlay;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1504
	// Reference to record buffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1505
	CMMFDataBuffer* iBufferRecord;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1506
	// Array to hold supported input/output data types
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1507
	RArray<TFourCC> iArray;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1508
	// Buffer to hold DTMFString to be played
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1509
	HBufC* iDtmfString;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1510
	// Buffer to hold tone sequence to be played
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1511
	HBufC8* iToneSeqBuf;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1512
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1513
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1514
	// Replaces the messages / AO handlers
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1515
	RMsgQueue<TMMFDevSoundQueueItem> iMsgQueue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1516
	// data store for 2-stage asynch message passing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1517
	TMMFDevSoundProxyHwBufPckg iHwBufPckgFill;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1518
	// data store for 2-stage asynch message passing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1519
	TMMFDevSoundProxyHwBufPckg iHwBufPckgEmpty;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1520
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1521
	// Array of custom interface pairs
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1522
	RArray<TMMFDevSoundCustomInterfaceDeMuxData> iCustomInterfaceArray;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1523
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1524
	//Capabilities from DevSoundAdaptor	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1525
	TMMFCapabilities iDevSoundCapabilities;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1526
	// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1527
	CMMFDevSoundCIDeMuxUtility* iDeMuxUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1528
	// CI Extension
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1529
	MDevSoundCIServerExtension* iCIExtension;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1530
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1531
	// Handling async requests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1532
	RArray<TMMFDevSoundRequest> iQueuedRequests;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1533
	TMMFDevSoundRequest			iRequestBeingServiced;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1534
	TBool						iOperationCompletePending;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1535
	TBool                       iHandlingExtdCI;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1536
	TBool						iPlayErrorOccured;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1537
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1538
	//Check if the call of SetClientConfigL was alredy made
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1539
	TBool						iSetClientConfigApplied;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1540
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1541
	// Chunk for use between DevSound client and server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1542
	RChunk iChunk;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1543
	TBool iForceSendOfChunkHandle;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1544
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1545
	CActiveSchedulerWait*		iClosingWait;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1546
	CAsyncCallBack*				iAsyncQueueStart;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1547
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1548
	TInt iRedoFunction;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1549
	TMMFDevSoundProxySettingsPckg iCachedClientData;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1550
	TInt iSeqNum;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1551
	TBool iPreemptionClash;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1552
	TInt iNotifiedError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1553
	TBool iDisconnecting;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1554
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1555
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1556
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1557
#endif // MMFDEVSOUNDSESSION_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1558
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1559
// End of File