diff -r efebd1779a59 -r c1e808730d6c devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.h --- 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