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."))) |