26 #include <a3f/devsoundadaptationinfo.h> |
26 #include <a3f/devsoundadaptationinfo.h> |
27 #include <a3f/a3ffourcclookup.h> |
27 #include <a3f/a3ffourcclookup.h> |
28 #include <a3f/audiocontextfactory.h> |
28 #include <a3f/audiocontextfactory.h> |
29 #include <a3f/maudioprocessingunit.h> |
29 #include <a3f/maudioprocessingunit.h> |
30 #include <a3f/maudiocontext.h> |
30 #include <a3f/maudiocontext.h> |
|
31 #include <a3f/mcontexteffectiveclient.h> |
31 #include <a3f/maudiostream.h> |
32 #include <a3f/maudiostream.h> |
32 #include <a3f/maudiocodec.h> |
33 #include <a3f/maudiocodec.h> |
33 #include <a3f/maudiogaincontrol.h> |
34 #include <a3f/maudiogaincontrol.h> |
34 #include <a3f/mbuffersource.h> |
35 #include <a3f/mbuffersource.h> |
35 #include <a3f/mbuffersink.h> |
36 #include <a3f/mbuffersink.h> |
493 { |
494 { |
494 DP_CONTEXT(CDevAudio::CancelInitialize *CD1*, CtxDevSound, DPLOCAL); |
495 DP_CONTEXT(CDevAudio::CancelInitialize *CD1*, CtxDevSound, DPLOCAL); |
495 DP_IN(); |
496 DP_IN(); |
496 TInt err(KErrNone); |
497 TInt err(KErrNone); |
497 |
498 |
498 if( iActiveState != EDevSoundAdaptorInitialised_Initialised) |
|
499 { |
|
500 DP0_RET(KErrNotReady, "%d"); |
|
501 } |
|
502 |
|
503 // Redo partial cancelling of initialization after pre-emption clash event in |
499 // Redo partial cancelling of initialization after pre-emption clash event in |
504 // EDevSoundAdaptorRemovingProcessingUnits state. |
500 // EDevSoundAdaptorRemovingProcessingUnits state. |
505 if (iActiveState == EDevSoundAdaptorUnitialised_Uninitialised && |
501 if (iActiveState == EDevSoundAdaptorUnitialised_Uninitialised && |
506 iPreviousState == EDevSoundAdaptorRemovingProcessingUnits) |
502 iPreviousState == EDevSoundAdaptorRemovingProcessingUnits) |
507 { |
503 { |
508 err = iCurrentAudioControl->RemoveProcessingUnits(); |
504 err = iCurrentAudioControl->RemoveProcessingUnits(); |
509 DP0_RET(err, "%d"); |
505 DP0_RET(err, "%d"); |
510 } |
506 } |
511 |
507 else if(iActiveState != EDevSoundAdaptorInitialised_Initialised) |
|
508 { |
|
509 DP0_RET(KErrNotReady, "%d"); |
|
510 } |
|
511 |
512 err = iCurrentAudioControl->Uninitialize(); |
512 err = iCurrentAudioControl->Uninitialize(); |
513 |
513 |
514 DP0_RET(err, "%d"); |
514 DP0_RET(err, "%d"); |
515 } |
515 } |
516 |
516 |
555 // |
555 // |
556 TBool CDevAudio::IsPrioritySet() |
556 TBool CDevAudio::IsPrioritySet() |
557 { |
557 { |
558 return iPriorityFlag; |
558 return iPriorityFlag; |
559 } |
559 } |
|
560 |
560 // ----------------------------------------------------------------------------- |
561 // ----------------------------------------------------------------------------- |
561 // CDevAudio::SetClientConfig |
562 // CDevAudio::SetClientConfig |
562 // ----------------------------------------------------------------------------- |
563 // ----------------------------------------------------------------------------- |
563 // |
564 // |
564 TInt CDevAudio::SetClientConfig(const TMMFClientConfig& aClientConfig) |
565 TInt CDevAudio::SetClientConfig(const TProcessId& aProcessId) |
565 { |
566 { |
566 DP_CONTEXT(CDevAudio::SetClientConfig *CD1*, CtxDevSound, DPLOCAL); |
567 DP_CONTEXT(CDevAudio::SetClientConfig *CD1*, CtxDevSound, DPLOCAL); |
567 DP_IN(); |
568 DP_IN(); |
568 // TODO: Check if the TClientContextSettings atributte go back since |
569 // TODO: Check if the TClientContextSettings atributte go back since |
569 // if not there is no way to send the vendor id |
570 // if not there is no way to send the vendor id |
570 TClientContextSettings context; |
571 TClientContextSettings context; |
571 context.iProcessId = aClientConfig.iProcessId; |
572 context.iProcessId = aProcessId; |
572 TInt err = iAudioContext->SetClientSettings(context); |
573 TInt err = iAudioContext->SetClientSettings(context); |
573 if (err != KErrNone) |
574 if (err != KErrNone) |
574 { |
575 { |
575 DP1(DLERR, "Error %d setting client context!",err); |
576 DP1(DLERR, "Error %d setting client context!",err); |
576 } |
577 } |
|
578 DP0_RET(err, "%d"); |
|
579 } |
|
580 |
|
581 TInt CDevAudio::SetClientConfig(const TProcessId& aActualProcessId, const TProcessId& aProcessId) |
|
582 { |
|
583 DP_CONTEXT(CDevAudio::SetClientConfig *CD1*, CtxDevSound, DPLOCAL); |
|
584 DP_IN(); |
|
585 |
|
586 MContextSetEffectiveClient* setEffectiveClient |
|
587 = static_cast<MContextSetEffectiveClient*>(iAudioContext->Interface(KSetClientInfoUid)); |
|
588 |
|
589 TInt err; |
|
590 |
|
591 if (!setEffectiveClient) |
|
592 { |
|
593 DP0(DLINFO, "MContextSetEffectiveClient not supported, revert to old behaviour of just passing actual client info"); |
|
594 err = SetClientConfig(aActualProcessId); |
|
595 } |
|
596 else |
|
597 { |
|
598 TClientContextSettings context; |
|
599 context.iProcessId = aProcessId; |
|
600 err = iAudioContext->SetClientSettings(context); |
|
601 if (err != KErrNone) |
|
602 { |
|
603 DP1(DLERR, "Error %d setting client context!",err); |
|
604 } |
|
605 if (!err) |
|
606 { |
|
607 err = setEffectiveClient->SetEffectiveClientInfo(aActualProcessId); |
|
608 if (err != KErrNone) |
|
609 { |
|
610 DP1(DLERR, "Error %d setting effective client context!",err); |
|
611 } |
|
612 } |
|
613 } |
|
614 |
577 DP0_RET(err, "%d"); |
615 DP0_RET(err, "%d"); |
578 } |
616 } |
579 |
617 |
580 |
618 |
581 void CDevAudio::ContextEvent(TUid /*aEvent*/, TInt /*aError*/) |
619 void CDevAudio::ContextEvent(TUid /*aEvent*/, TInt /*aError*/) |