devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.h
changeset 15 c1e808730d6c
parent 13 efebd1779a59
child 54 b68f3e90dca1
--- a/devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.h	Fri Apr 16 16:34:49 2010 +0300
+++ b/devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.h	Mon May 03 13:56:28 2010 +0300
@@ -48,7 +48,8 @@
 	{
 	EMsgQueueFailedToSendMsg =1,
 	EQueueRequestsFailedToAppend,
-	EUnexpectedAsyncOpCompleteHandlingCI
+	EUnexpectedAsyncOpCompleteHandlingCI,
+	ERequestBeingServicedMismatch
 	};
 
 // CLASS DECLARATION
@@ -207,6 +208,14 @@
 	TBool DoInitialize1L(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service Initialize1L request that has already completed, but
+		not finished due to a pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedInitialize1L();
+
+	/**
 		Method to service Initialize2L request.
 		Leaves on failure.
 		@since 
@@ -217,6 +226,14 @@
 	TBool DoInitialize2L(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service Initialize2L request that has already completed, but
+		not finished due to a pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedInitialize2L();
+
+	/**
 		Method to service Initialize3L request.
 		Leaves on failure.
 		@param const RMmfIpcMessage& aMessage A reference to message object
@@ -235,6 +252,14 @@
 	TBool DoInitialize4L(const RMmfIpcMessage& aMessage);
 	
 	/**
+		Method to service Initialize4L request that has already completed, but
+		not finished due to a pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedInitialize4L();
+
+	/**
 		Method to service CancelInitialize request.
 		Leaves on failure.
 		@since 
@@ -388,6 +413,14 @@
 	TBool DoPlayInitL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service initialize DevSound to play request that has already completed,
+		but not finished due to a pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedPlayInitL();
+
+	/**
 		Method to service initialize DevSound to record request.
 		Leaves on failure.
 		@since 
@@ -398,6 +431,14 @@
 	TBool DoRecordInitL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service initialize DevSound to record request that has already completed,
+		but not finished due to a pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedRecordInitL();
+
+	/**
 		Method to service signal DevSound to playing current buffer request.
 		Leaves on failure.
 		@since 
@@ -450,6 +491,15 @@
 	TBool DoPlayToneL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service signal DevSound to play simple tone operation
+		request that has already completed, but not finished due to a
+		pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedPlayToneL();
+
+	/**
 		Method to service signal DevSound to play dual tone  operation
 		request.
 		Leaves on failure.
@@ -461,6 +511,15 @@
 	TBool DoPlayDualToneL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service signal DevSound to play dual tone operation
+		request that has already completed, but not finished due to a
+		pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedPlayDualToneL();
+
+	/**
 		Method to service signal DevSound to play DTMFString operation
 		request.
 		Leaves on failure.
@@ -472,6 +531,15 @@
 	TBool DoPlayDTMFStringL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service signal DevSound to play DTMFString operation
+		request that has already completed, but not finished due to a
+		pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedPlayDTMFStringL();
+
+	/**
 		Method to service signal DevSound to play tone sequence operation
 		request.
 		Leaves on failure.
@@ -483,6 +551,15 @@
 	TBool DoPlayToneSequenceL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service signal DevSound to play tone sequence operation
+		request that has already completed, but not finished due to a
+		pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedPlayToneSequenceL();
+
+	/**
 		Method to service signal DevSound to play fixed sequence operation
 		request.
 		Leaves on failure.
@@ -494,6 +571,15 @@
 	TBool DoPlayFixedSequenceL(const RMmfIpcMessage& aMessage);
 
 	/**
+		Method to service signal DevSound to play fixed sequence operation
+		request that has already completed, but not finished due to a
+		pre-emption clash during its commit cycle(s).
+		Leaves on failure.
+		@return void
+	*/
+	void DoAlreadyCompletedPlayFixedSequenceL();
+
+	/**
 		Method to service signal DevSound to initilize DTMF String operation
 		request.
 		Leaves on failure.
@@ -1313,6 +1399,9 @@
 
 	// from MDevSoundAdaptationObserver
 	TBool AdaptorControlsContext() const;
+	void PreemptionClash();
+	void PreemptionClashWithStateChange();
+    void NotifyError(TInt aError);
 
 	/**
 		MDevSoundAdaptationObserver callback.
@@ -1383,6 +1472,18 @@
 	void DoServiceRequestL(const RMmfIpcMessage& aMessage);
 
 	/*
+	Services the first request of queue for a pseudo asynchronous function that has already completed,
+	but needs to be re-applied again due to pre-emption clash.
+	*/
+	void DoServiceAlreadyCompletedRequestL(const TInt aFunction);
+
+	/*
+	Handles the first request of queue for a pseudo asynchronous function that has already completed,
+	but needs to be re-applied again due to pre-emption clash.
+	*/
+	void HandleAlreadyCompletedRequest();
+
+	/*
 	Services the first request at the FIFO
 	*/
 	void DoServiceNextRequestL();
@@ -1451,6 +1552,11 @@
 	static TInt AsyncQueueStartCallback(TAny* aPtr);
 	void AsyncQueueStartCallback();
 
+	void ResetNotifiedError();
+	TInt NotifiedError() const;
+
+	TBool NeedToQueue() const;
+
 protected:	// Data
 	CMMFDevSoundAdaptation* iAdapter;
 
@@ -1502,6 +1608,13 @@
 	
 	CActiveSchedulerWait*		iClosingWait;
 	CAsyncCallBack*				iAsyncQueueStart;
+
+	TInt iRedoFunction;
+	TMMFDevSoundProxySettingsPckg iCachedClientData;
+	TInt iSeqNum;
+	TBool iPreemptionClash;
+	TInt iNotifiedError;
+
 	};
 
 #endif // MMFDEVSOUNDSESSION_H