bluetoothengine/btsac/src/btsacStateSuspended.cpp
changeset 1 6a1fe72036e3
parent 0 f63038272f30
child 45 b0aebde9b1fb
equal deleted inserted replaced
0:f63038272f30 1:6a1fe72036e3
    81 
    81 
    82 // -----------------------------------------------------------------------------
    82 // -----------------------------------------------------------------------------
    83 // CBtsacSuspended::CancelActionL
    83 // CBtsacSuspended::CancelActionL
    84 // -----------------------------------------------------------------------------
    84 // -----------------------------------------------------------------------------
    85 //
    85 //
    86 void CBtsacSuspended::CancelActionL(TInt aError, TBTSACGavdpResetReason aGavdpReset)
    86 void CBtsacSuspended::CancelActionL(TInt aError)
    87 	{
    87 	{
    88 	TRACE_FUNC
    88 	TRACE_FUNC
    89 	Parent().CompletePendingRequests(KOpenAudioReq, aError);
    89 	Parent().CompletePendingRequests(KOpenAudioReq, aError);
    90 	Parent().ChangeStateL(CBtsacListening::NewL(Parent(), aGavdpReset, aError));
    90 	Parent().ChangeStateL(CBtsacListening::NewL(Parent(), EGavdpResetReasonGeneral, aError));
    91 	}
    91 	}
    92     
    92     
    93 // -----------------------------------------------------------------------------
    93 // -----------------------------------------------------------------------------
    94 // CBtsacSuspended::OpenAudioLinkL
    94 // CBtsacSuspended::OpenAudioLinkL
    95 // -----------------------------------------------------------------------------
    95 // -----------------------------------------------------------------------------
   115 // -----------------------------------------------------------------------------
   115 // -----------------------------------------------------------------------------
   116 //
   116 //
   117 void CBtsacSuspended::CancelOpenAudioL(const TBTDevAddr& /*aAddr*/)
   117 void CBtsacSuspended::CancelOpenAudioL(const TBTDevAddr& /*aAddr*/)
   118     {
   118     {
   119     TRACE_FUNC
   119     TRACE_FUNC
   120 	CancelActionL(KErrCancel, EGavdpResetReasonGeneral);
   120 	CancelActionL(KErrCancel);
   121     }
   121     }
   122     
   122     
   123 // -----------------------------------------------------------------------------
   123 // -----------------------------------------------------------------------------
   124 // CBtsacSuspended::DisconnectL
   124 // CBtsacSuspended::DisconnectL
   125 // -----------------------------------------------------------------------------
   125 // -----------------------------------------------------------------------------
   126 //
   126 //
   127 void CBtsacSuspended::DisconnectL()
   127 void CBtsacSuspended::DisconnectL()
   128 	{
   128 	{
   129 	TRACE_FUNC
   129 	TRACE_FUNC
   130 	Parent().CompletePendingRequests(KDisconnectReq, KErrNone);
   130 	Parent().CompletePendingRequests(KDisconnectReq, KErrNone);
   131 	CancelActionL(KErrCancel, EGavdpResetReasonGeneral);
   131 	CancelActionL(KErrCancel);
   132 	}
   132 	}
   133 	
   133 	
   134 // -----------------------------------------------------------------------------
   134 // -----------------------------------------------------------------------------
   135 // CBtsacSuspended::GAVDP_StartStreamsConfirm()
   135 // CBtsacSuspended::GAVDP_StartStreamsConfirm()
   136 // -----------------------------------------------------------------------------
   136 // -----------------------------------------------------------------------------
   144 		TInt err = Parent().AbortStream();
   144 		TInt err = Parent().AbortStream();
   145 		if(err)
   145 		if(err)
   146 			{
   146 			{
   147 			TRACE_INFO((_L("CBtsacSuspended::GAVDP_StartStreamsConfirm() Couldn't abort stream.")))
   147 			TRACE_INFO((_L("CBtsacSuspended::GAVDP_StartStreamsConfirm() Couldn't abort stream.")))
   148 			}
   148 			}
   149 		TRAP_IGNORE(CancelActionL(KErrCancel, EGavdpResetReasonGeneral));
   149 		TRAP_IGNORE(CancelActionL(KErrDisconnected));
   150 	 	}
   150 	 	}
   151 	 else
   151 	 else
   152 	 	{
   152 	 	{
   153 	 	Parent().CompletePendingRequests(KOpenAudioReq, KErrNone);
   153 	 	Parent().CompletePendingRequests(KOpenAudioReq, KErrNone);
   154 		TRAP_IGNORE(Parent().ChangeStateL(CBtsacStreaming::NewL(Parent(), EAudioOpenedByAFW, EFalse)));
   154 		TRAP_IGNORE(Parent().ChangeStateL(CBtsacStreaming::NewL(Parent(), EAudioOpenedByAFW, EFalse)));
   208 				// Complete pending request(s) in Aborting state
   208 				// Complete pending request(s) in Aborting state
   209 				Parent().ChangeStateL(CBtsacAborting::NewL(Parent()));
   209 				Parent().ChangeStateL(CBtsacAborting::NewL(Parent()));
   210 				}
   210 				}
   211 			else
   211 			else
   212 				{
   212 				{
   213 				CancelActionL(KErrDisconnected, EGavdpResetReasonGeneral);
   213 				CancelActionL(KErrDisconnected);
   214 				}
   214 				}
   215 			break;
   215 			break;
   216 			}
   216 			}
   217 		case (KErrAvdtpSignallingErrorBase - EAvdtpBadState): // -18094
   217 		case (KErrAvdtpSignallingErrorBase - EAvdtpBadState): // -18094
   218 			{
   218 			{
   224 					// Complete Audio request in Aborting state
   224 					// Complete Audio request in Aborting state
   225 					Parent().ChangeStateL(CBtsacAborting::NewL(Parent()));
   225 					Parent().ChangeStateL(CBtsacAborting::NewL(Parent()));
   226 					}
   226 					}
   227 				else
   227 				else
   228 					{
   228 					{
   229 					CancelActionL(KErrDisconnected, EGavdpResetReasonGeneral);
   229 					CancelActionL(KErrDisconnected);
   230 					}
   230 					}
   231 				}
   231 				}
   232 			else
   232 			else
   233 				{					
   233 				{					
   234 				// For some reason remote rejected our suspend command (which was initiated in streaming state).
   234 				// For some reason remote rejected our suspend command (which was initiated in streaming state).
   241 			}
   241 			}
   242 		case KErrHCILinkDisconnection: // -6305
   242 		case KErrHCILinkDisconnection: // -6305
   243 		case KErrDisconnected: // -36
   243 		case KErrDisconnected: // -36
   244 			{
   244 			{
   245 			TRACE_INFO((_L("CBtsacSuspended::HandleGavdpErrorL() Signalling disconnected.")))
   245 			TRACE_INFO((_L("CBtsacSuspended::HandleGavdpErrorL() Signalling disconnected.")))
   246 			CancelActionL(aError, EGavdpResetReasonNone);
   246 			CancelActionL(aError);
   247 			break;
   247 			break;
   248 			}
   248 			}
   249 		default:
   249 		default:
   250 			{
   250 			{
   251 			// Unknown error. For safety's sake let's disconnect a2dp link and inform btaudioman
   251 			// Unknown error. For safety's sake let's disconnect a2dp link and inform btaudioman
   252 			TRACE_INFO((_L("CBtsacSuspended::HandleGavdpErrorL() Unknown error, goes to listening")))
   252 			TRACE_INFO((_L("CBtsacSuspended::HandleGavdpErrorL() Unknown error, goes to listening")))
   253 			CancelActionL(KErrDisconnected, EGavdpResetReasonGeneral);
   253 			CancelActionL(KErrDisconnected);
   254 			break;
   254 			break;
   255 			}
   255 			}
   256 		}
   256 		}
   257 	}
   257 	}
   258 
   258