bluetoothengine/btsac/src/btsacStateListening.cpp
changeset 1 6a1fe72036e3
parent 0 f63038272f30
child 45 b0aebde9b1fb
equal deleted inserted replaced
0:f63038272f30 1:6a1fe72036e3
   201 	// Local SEPs got registered, so start listening
   201 	// Local SEPs got registered, so start listening
   202 	TInt err = Parent().iGavdp->Listen();
   202 	TInt err = Parent().iGavdp->Listen();
   203 	if (err)
   203 	if (err)
   204 		{
   204 		{
   205 		TRACE_INFO((_L("CBtsacListening::GAVDP_ConfigurationConfirm() Listen returned error:%d."), err))
   205 		TRACE_INFO((_L("CBtsacListening::GAVDP_ConfigurationConfirm() Listen returned error:%d."), err))
   206 		ResetGavdp(EGavdpResetReasonGeneral);
   206 		ResetGavdp();
   207 		return;
   207 		return;
   208 		}
   208 		}
   209 	if(iInitializationProcedure == EInitProcedureWaitingConfConfirmed)
   209 	if(iInitializationProcedure == EInitProcedureWaitingConfConfirmed)
   210 		{
   210 		{
   211 		iInitializationProcedure = EInitProcedureDone;
   211 		iInitializationProcedure = EInitProcedureDone;
   267 				// We have unfinished gavdp error, force gavdp reset
   267 				// We have unfinished gavdp error, force gavdp reset
   268 				iGavdpResetReason = EGavdpResetReasonGeneral;
   268 				iGavdpResetReason = EGavdpResetReasonGeneral;
   269 				}
   269 				}
   270 			if(iGavdpResetReason != EGavdpResetReasonNone)
   270 			if(iGavdpResetReason != EGavdpResetReasonNone)
   271 				{
   271 				{
   272 				ResetGavdp(iGavdpResetReason);
   272 				ResetGavdp();
   273 				}
   273 				}
   274 			else
   274 			else
   275 				{
   275 				{
   276 				GoListen();
   276 				GoListen();
   277 				}				
   277 				}				
   278 			if(iDisconnectReason == KErrDisconnected || iDisconnectReason == KErrHCILinkDisconnection)
   278 			if((iDisconnectReason == KErrDisconnected || iDisconnectReason == KErrHCILinkDisconnection) &&
       
   279 			    iPendingRequests == KRequestNone)
   279 				{
   280 				{
   280 				if(remoteAddr != TBTDevAddr())
   281 				if(remoteAddr != TBTDevAddr())
   281 					{						
   282 					{						
   282 					Parent().DisconnectedFromRemote(remoteAddr, iDisconnectReason);
   283 					Parent().DisconnectedFromRemote(remoteAddr, iDisconnectReason);
   283 					}
   284 					}
   323 		}
   324 		}
   324 	if(err)
   325 	if(err)
   325 		{
   326 		{
   326 		// Shutdown failed, reset gavdp
   327 		// Shutdown failed, reset gavdp
   327 		TRACE_INFO((_L("CBtsacListening::GoListen(), error = %d."), err))
   328 		TRACE_INFO((_L("CBtsacListening::GoListen(), error = %d."), err))
   328 		ResetGavdp(EGavdpResetReasonGeneral);
   329 		ResetGavdp();
   329 		}		
   330 		}		
   330 	}
   331 	}
   331 
   332 
   332 // -----------------------------------------------------------------------------
   333 // -----------------------------------------------------------------------------
   333 // CBtsacListening::ResetGavdp
   334 // CBtsacListening::ResetGavdp
   334 // -----------------------------------------------------------------------------
   335 // -----------------------------------------------------------------------------
   335 //
   336 //
   336 TInt CBtsacListening::ResetGavdp(TBTSACGavdpResetReason aReason)
   337 TInt CBtsacListening::ResetGavdp()
   337 	{
   338 	{
   338 	TRACE_FUNC
   339 	TRACE_FUNC
   339 	Parent().iGavdp->Close();
   340 	Parent().iGavdp->Close();
   340 	if( Parent().iGavdp->Open() == KErrNone )
   341 	if( Parent().iGavdp->Open() == KErrNone )
   341 		{
   342 		{
   342 		iInitializationProcedure = EInitProcedureWaitingConfConfirmed;
   343 		iInitializationProcedure = EInitProcedureWaitingConfConfirmed;
   343 		if(aReason != EGavdpResetReasonCancelOpenAudio)
   344         if(iPendingRequests == KRequestNone)
   344 			{
   345             {
   345 			if(iPendingRequests == KRequestNone)
   346             TRACE_INFO((_L("CBtsacListening::ResetGavdp() Remote Addr reseted.")))
   346 				{
   347             Parent().SetRemoteAddr(TBTDevAddr());
   347 				TRACE_INFO((_L("CBtsacListening::ResetGavdp() Remote Addr reseted.")))
   348             }
   348 				Parent().SetRemoteAddr(TBTDevAddr());
       
   349 				}
       
   350 			}
       
   351 		return Parent().iGavdp->RegisterSEPs(*Parent().iLocalSEPs, Parent().iStreamer->GetCaps());
   349 		return Parent().iGavdp->RegisterSEPs(*Parent().iLocalSEPs, Parent().iStreamer->GetCaps());
   352 		}
   350 		}
   353 	else
   351 	else
   354 		{
   352 		{
   355 		TRACE_INFO((_L("CBtsacListening::ResetGavdp() Couldn't open gavdp.")))
   353 		TRACE_INFO((_L("CBtsacListening::ResetGavdp() Couldn't open gavdp.")))
   430 		default:
   428 		default:
   431 		// KErrAbort -39
   429 		// KErrAbort -39
   432 		// KErrDied -13
   430 		// KErrDied -13
   433 		// KErrInUse -14
   431 		// KErrInUse -14
   434 			{
   432 			{
   435 			ResetGavdp(EGavdpResetReasonGeneral);			
   433 			ResetGavdp();			
   436 			break;
   434 			break;
   437 			}
   435 			}
   438 		}
   436 		}
   439 	Parent().CompletePendingRequests(KCompleteAllReqs, aError);
   437 	Parent().CompletePendingRequests(KCompleteAllReqs, aError);
   440 	}
   438 	}