devsound/a3fdevsound/src/mmfdevsoundserver/mmfdevsoundsession.h
changeset 15 c1e808730d6c
parent 13 efebd1779a59
child 54 b68f3e90dca1
equal deleted inserted replaced
13:efebd1779a59 15:c1e808730d6c
    46 
    46 
    47 enum TMMFDevSoundSessionPanicCodes
    47 enum TMMFDevSoundSessionPanicCodes
    48 	{
    48 	{
    49 	EMsgQueueFailedToSendMsg =1,
    49 	EMsgQueueFailedToSendMsg =1,
    50 	EQueueRequestsFailedToAppend,
    50 	EQueueRequestsFailedToAppend,
    51 	EUnexpectedAsyncOpCompleteHandlingCI
    51 	EUnexpectedAsyncOpCompleteHandlingCI,
       
    52 	ERequestBeingServicedMismatch
    52 	};
    53 	};
    53 
    54 
    54 // CLASS DECLARATION
    55 // CLASS DECLARATION
    55 
    56 
    56 /*
    57 /*
   205 		@return ETrue if the request is serviced completely else EFalse.
   206 		@return ETrue if the request is serviced completely else EFalse.
   206 	*/
   207 	*/
   207 	TBool DoInitialize1L(const RMmfIpcMessage& aMessage);
   208 	TBool DoInitialize1L(const RMmfIpcMessage& aMessage);
   208 
   209 
   209 	/**
   210 	/**
       
   211 		Method to service Initialize1L request that has already completed, but
       
   212 		not finished due to a pre-emption clash during its commit cycle(s).
       
   213 		Leaves on failure.
       
   214 		@return void
       
   215 	*/
       
   216 	void DoAlreadyCompletedInitialize1L();
       
   217 
       
   218 	/**
   210 		Method to service Initialize2L request.
   219 		Method to service Initialize2L request.
   211 		Leaves on failure.
   220 		Leaves on failure.
   212 		@since 
   221 		@since 
   213 		@param const RMmfIpcMessage& aMessage A reference to message object
   222 		@param const RMmfIpcMessage& aMessage A reference to message object
   214 			containing request attributes.
   223 			containing request attributes.
   215 		@return ETrue if the request is serviced completely else EFalse.
   224 		@return ETrue if the request is serviced completely else EFalse.
   216 	*/
   225 	*/
   217 	TBool DoInitialize2L(const RMmfIpcMessage& aMessage);
   226 	TBool DoInitialize2L(const RMmfIpcMessage& aMessage);
   218 
   227 
   219 	/**
   228 	/**
       
   229 		Method to service Initialize2L request that has already completed, but
       
   230 		not finished due to a pre-emption clash during its commit cycle(s).
       
   231 		Leaves on failure.
       
   232 		@return void
       
   233 	*/
       
   234 	void DoAlreadyCompletedInitialize2L();
       
   235 
       
   236 	/**
   220 		Method to service Initialize3L request.
   237 		Method to service Initialize3L request.
   221 		Leaves on failure.
   238 		Leaves on failure.
   222 		@param const RMmfIpcMessage& aMessage A reference to message object
   239 		@param const RMmfIpcMessage& aMessage A reference to message object
   223 			containing request attributes.
   240 			containing request attributes.
   224 		@return ETrue if the request is serviced completely else EFalse.
   241 		@return ETrue if the request is serviced completely else EFalse.
   232 			containing request attributes.
   249 			containing request attributes.
   233 		@return ETrue if the request is serviced completely else EFalse.
   250 		@return ETrue if the request is serviced completely else EFalse.
   234 	*/
   251 	*/
   235 	TBool DoInitialize4L(const RMmfIpcMessage& aMessage);
   252 	TBool DoInitialize4L(const RMmfIpcMessage& aMessage);
   236 	
   253 	
       
   254 	/**
       
   255 		Method to service Initialize4L request that has already completed, but
       
   256 		not finished due to a pre-emption clash during its commit cycle(s).
       
   257 		Leaves on failure.
       
   258 		@return void
       
   259 	*/
       
   260 	void DoAlreadyCompletedInitialize4L();
       
   261 
   237 	/**
   262 	/**
   238 		Method to service CancelInitialize request.
   263 		Method to service CancelInitialize request.
   239 		Leaves on failure.
   264 		Leaves on failure.
   240 		@since 
   265 		@since 
   241 		@param const RMmfIpcMessage& aMessage A reference to message object
   266 		@param const RMmfIpcMessage& aMessage A reference to message object
   386 		@return ETrue if the request is serviced completely else EFalse.
   411 		@return ETrue if the request is serviced completely else EFalse.
   387 	*/
   412 	*/
   388 	TBool DoPlayInitL(const RMmfIpcMessage& aMessage);
   413 	TBool DoPlayInitL(const RMmfIpcMessage& aMessage);
   389 
   414 
   390 	/**
   415 	/**
       
   416 		Method to service initialize DevSound to play request that has already completed,
       
   417 		but not finished due to a pre-emption clash during its commit cycle(s).
       
   418 		Leaves on failure.
       
   419 		@return void
       
   420 	*/
       
   421 	void DoAlreadyCompletedPlayInitL();
       
   422 
       
   423 	/**
   391 		Method to service initialize DevSound to record request.
   424 		Method to service initialize DevSound to record request.
   392 		Leaves on failure.
   425 		Leaves on failure.
   393 		@since 
   426 		@since 
   394 		@param const RMmfIpcMessage& aMessage A reference to message object
   427 		@param const RMmfIpcMessage& aMessage A reference to message object
   395 			containing request attributes.
   428 			containing request attributes.
   396 		@return ETrue if the request is serviced completely else EFalse.
   429 		@return ETrue if the request is serviced completely else EFalse.
   397 	*/
   430 	*/
   398 	TBool DoRecordInitL(const RMmfIpcMessage& aMessage);
   431 	TBool DoRecordInitL(const RMmfIpcMessage& aMessage);
       
   432 
       
   433 	/**
       
   434 		Method to service initialize DevSound to record request that has already completed,
       
   435 		but not finished due to a pre-emption clash during its commit cycle(s).
       
   436 		Leaves on failure.
       
   437 		@return void
       
   438 	*/
       
   439 	void DoAlreadyCompletedRecordInitL();
   399 
   440 
   400 	/**
   441 	/**
   401 		Method to service signal DevSound to playing current buffer request.
   442 		Method to service signal DevSound to playing current buffer request.
   402 		Leaves on failure.
   443 		Leaves on failure.
   403 		@since 
   444 		@since 
   448 		@return ETrue if the request is serviced completely else EFalse.
   489 		@return ETrue if the request is serviced completely else EFalse.
   449 	*/
   490 	*/
   450 	TBool DoPlayToneL(const RMmfIpcMessage& aMessage);
   491 	TBool DoPlayToneL(const RMmfIpcMessage& aMessage);
   451 
   492 
   452 	/**
   493 	/**
       
   494 		Method to service signal DevSound to play simple tone operation
       
   495 		request that has already completed, but not finished due to a
       
   496 		pre-emption clash during its commit cycle(s).
       
   497 		Leaves on failure.
       
   498 		@return void
       
   499 	*/
       
   500 	void DoAlreadyCompletedPlayToneL();
       
   501 
       
   502 	/**
   453 		Method to service signal DevSound to play dual tone  operation
   503 		Method to service signal DevSound to play dual tone  operation
   454 		request.
   504 		request.
   455 		Leaves on failure.
   505 		Leaves on failure.
   456 		@since 
   506 		@since 
   457 		@param const RMmfIpcMessage& aMessage A reference to message object
   507 		@param const RMmfIpcMessage& aMessage A reference to message object
   459 		@return ETrue if the request is serviced completely else EFalse.
   509 		@return ETrue if the request is serviced completely else EFalse.
   460 	*/
   510 	*/
   461 	TBool DoPlayDualToneL(const RMmfIpcMessage& aMessage);
   511 	TBool DoPlayDualToneL(const RMmfIpcMessage& aMessage);
   462 
   512 
   463 	/**
   513 	/**
       
   514 		Method to service signal DevSound to play dual tone operation
       
   515 		request that has already completed, but not finished due to a
       
   516 		pre-emption clash during its commit cycle(s).
       
   517 		Leaves on failure.
       
   518 		@return void
       
   519 	*/
       
   520 	void DoAlreadyCompletedPlayDualToneL();
       
   521 
       
   522 	/**
   464 		Method to service signal DevSound to play DTMFString operation
   523 		Method to service signal DevSound to play DTMFString operation
   465 		request.
   524 		request.
   466 		Leaves on failure.
   525 		Leaves on failure.
   467 		@since 
   526 		@since 
   468 		@param const RMmfIpcMessage& aMessage A reference to message object
   527 		@param const RMmfIpcMessage& aMessage A reference to message object
   470 		@return ETrue if the request is serviced completely else EFalse.
   529 		@return ETrue if the request is serviced completely else EFalse.
   471 	*/
   530 	*/
   472 	TBool DoPlayDTMFStringL(const RMmfIpcMessage& aMessage);
   531 	TBool DoPlayDTMFStringL(const RMmfIpcMessage& aMessage);
   473 
   532 
   474 	/**
   533 	/**
       
   534 		Method to service signal DevSound to play DTMFString operation
       
   535 		request that has already completed, but not finished due to a
       
   536 		pre-emption clash during its commit cycle(s).
       
   537 		Leaves on failure.
       
   538 		@return void
       
   539 	*/
       
   540 	void DoAlreadyCompletedPlayDTMFStringL();
       
   541 
       
   542 	/**
   475 		Method to service signal DevSound to play tone sequence operation
   543 		Method to service signal DevSound to play tone sequence operation
   476 		request.
   544 		request.
   477 		Leaves on failure.
   545 		Leaves on failure.
   478 		@since 
   546 		@since 
   479 		@param const RMmfIpcMessage& aMessage A reference to message object
   547 		@param const RMmfIpcMessage& aMessage A reference to message object
   481 		@return ETrue if the request is serviced completely else EFalse.
   549 		@return ETrue if the request is serviced completely else EFalse.
   482 	*/
   550 	*/
   483 	TBool DoPlayToneSequenceL(const RMmfIpcMessage& aMessage);
   551 	TBool DoPlayToneSequenceL(const RMmfIpcMessage& aMessage);
   484 
   552 
   485 	/**
   553 	/**
       
   554 		Method to service signal DevSound to play tone sequence operation
       
   555 		request that has already completed, but not finished due to a
       
   556 		pre-emption clash during its commit cycle(s).
       
   557 		Leaves on failure.
       
   558 		@return void
       
   559 	*/
       
   560 	void DoAlreadyCompletedPlayToneSequenceL();
       
   561 
       
   562 	/**
   486 		Method to service signal DevSound to play fixed sequence operation
   563 		Method to service signal DevSound to play fixed sequence operation
   487 		request.
   564 		request.
   488 		Leaves on failure.
   565 		Leaves on failure.
   489 		@since 
   566 		@since 
   490 		@param const RMmfIpcMessage& aMessage A reference to message object
   567 		@param const RMmfIpcMessage& aMessage A reference to message object
   491 			containing request attributes.
   568 			containing request attributes.
   492 		@return ETrue if the request is serviced completely else EFalse.
   569 		@return ETrue if the request is serviced completely else EFalse.
   493 	*/
   570 	*/
   494 	TBool DoPlayFixedSequenceL(const RMmfIpcMessage& aMessage);
   571 	TBool DoPlayFixedSequenceL(const RMmfIpcMessage& aMessage);
       
   572 
       
   573 	/**
       
   574 		Method to service signal DevSound to play fixed sequence operation
       
   575 		request that has already completed, but not finished due to a
       
   576 		pre-emption clash during its commit cycle(s).
       
   577 		Leaves on failure.
       
   578 		@return void
       
   579 	*/
       
   580 	void DoAlreadyCompletedPlayFixedSequenceL();
   495 
   581 
   496 	/**
   582 	/**
   497 		Method to service signal DevSound to initilize DTMF String operation
   583 		Method to service signal DevSound to initilize DTMF String operation
   498 		request.
   584 		request.
   499 		Leaves on failure.
   585 		Leaves on failure.
  1311 	 */
  1397 	 */
  1312 	void PreemptionFinishedCallbackReceived(TBool aCanStartNewOperation);
  1398 	void PreemptionFinishedCallbackReceived(TBool aCanStartNewOperation);
  1313 
  1399 
  1314 	// from MDevSoundAdaptationObserver
  1400 	// from MDevSoundAdaptationObserver
  1315 	TBool AdaptorControlsContext() const;
  1401 	TBool AdaptorControlsContext() const;
       
  1402 	void PreemptionClash();
       
  1403 	void PreemptionClashWithStateChange();
       
  1404     void NotifyError(TInt aError);
  1316 
  1405 
  1317 	/**
  1406 	/**
  1318 		MDevSoundAdaptationObserver callback.
  1407 		MDevSoundAdaptationObserver callback.
  1319 		Indicates that a low layer operation completion
  1408 		Indicates that a low layer operation completion
  1320 		@since 
  1409 		@since 
  1381 	Services the first request at the FIFO
  1470 	Services the first request at the FIFO
  1382 	*/
  1471 	*/
  1383 	void DoServiceRequestL(const RMmfIpcMessage& aMessage);
  1472 	void DoServiceRequestL(const RMmfIpcMessage& aMessage);
  1384 
  1473 
  1385 	/*
  1474 	/*
       
  1475 	Services the first request of queue for a pseudo asynchronous function that has already completed,
       
  1476 	but needs to be re-applied again due to pre-emption clash.
       
  1477 	*/
       
  1478 	void DoServiceAlreadyCompletedRequestL(const TInt aFunction);
       
  1479 
       
  1480 	/*
       
  1481 	Handles the first request of queue for a pseudo asynchronous function that has already completed,
       
  1482 	but needs to be re-applied again due to pre-emption clash.
       
  1483 	*/
       
  1484 	void HandleAlreadyCompletedRequest();
       
  1485 
       
  1486 	/*
  1386 	Services the first request at the FIFO
  1487 	Services the first request at the FIFO
  1387 	*/
  1488 	*/
  1388 	void DoServiceNextRequestL();
  1489 	void DoServiceNextRequestL();
  1389 
  1490 
  1390 	/*
  1491 	/*
  1448 	TBool DoCustomCommandL(const RMmfIpcMessage& aMessage);
  1549 	TBool DoCustomCommandL(const RMmfIpcMessage& aMessage);
  1449 	MMMFDevSoundCustomInterfaceDeMuxPlugin* InterfaceFromUid(TUid aUid);
  1550 	MMMFDevSoundCustomInterfaceDeMuxPlugin* InterfaceFromUid(TUid aUid);
  1450 	
  1551 	
  1451 	static TInt AsyncQueueStartCallback(TAny* aPtr);
  1552 	static TInt AsyncQueueStartCallback(TAny* aPtr);
  1452 	void AsyncQueueStartCallback();
  1553 	void AsyncQueueStartCallback();
       
  1554 
       
  1555 	void ResetNotifiedError();
       
  1556 	TInt NotifiedError() const;
       
  1557 
       
  1558 	TBool NeedToQueue() const;
  1453 
  1559 
  1454 protected:	// Data
  1560 protected:	// Data
  1455 	CMMFDevSoundAdaptation* iAdapter;
  1561 	CMMFDevSoundAdaptation* iAdapter;
  1456 
  1562 
  1457 private:	// Data
  1563 private:	// Data
  1500 	RChunk iChunk;
  1606 	RChunk iChunk;
  1501 	TBool iForceSendOfChunkHandle;
  1607 	TBool iForceSendOfChunkHandle;
  1502 	
  1608 	
  1503 	CActiveSchedulerWait*		iClosingWait;
  1609 	CActiveSchedulerWait*		iClosingWait;
  1504 	CAsyncCallBack*				iAsyncQueueStart;
  1610 	CAsyncCallBack*				iAsyncQueueStart;
       
  1611 
       
  1612 	TInt iRedoFunction;
       
  1613 	TMMFDevSoundProxySettingsPckg iCachedClientData;
       
  1614 	TInt iSeqNum;
       
  1615 	TBool iPreemptionClash;
       
  1616 	TInt iNotifiedError;
       
  1617 
  1505 	};
  1618 	};
  1506 
  1619 
  1507 #endif // MMFDEVSOUNDSESSION_H
  1620 #endif // MMFDEVSOUNDSESSION_H
  1508 
  1621 
  1509 // End of File
  1622 // End of File