diff -r 40261b775718 -r efebd1779a59 devsoundextensions/audiorouting/Output/AudioOutputProxy/src/AudioOutputProxyAO.cpp --- a/devsoundextensions/audiorouting/Output/AudioOutputProxy/src/AudioOutputProxyAO.cpp Tue Feb 02 01:56:55 2010 +0200 +++ b/devsoundextensions/audiorouting/Output/AudioOutputProxy/src/AudioOutputProxyAO.cpp Fri Apr 16 16:34:49 2010 +0300 @@ -17,6 +17,7 @@ #include "AudioOutput.h" +#include "AudioOutputMessageTypes.h" #include #include "AudioOutputProxyAO.h" #include @@ -46,7 +47,7 @@ CActive(CActive::EPriorityStandard), iAudioOutputProxy(aOutputProxy), iCustomCommandUtility(aUtility), - iObserver(aObserver) + iObserver(&aObserver) { } @@ -70,7 +71,7 @@ { iCustomCommandUtility->CustomCommandAsync( *iDestination,iFunction,KNullDesC8,KNullDesC8,iCallbackData,iStatus ); SetActive(); - iObserver.DefaultAudioOutputChanged(*iAudioOutputProxy,iCallbackData()); + iObserver->DefaultAudioOutputChanged(*iAudioOutputProxy,iCallbackData()); } } @@ -82,6 +83,10 @@ // void CAudioOutputProxyAO::DoCancel() { + if ( iRegistered != EFalse ) + { + iCustomCommandUtility->CustomCommandSync( *iDestination, EAofUnregisterObserver, KNullDesC8, KNullDesC8); + } } // --------------------------------------------------------- @@ -110,3 +115,13 @@ { iRegistered = aFlag; } +// --------------------------------------------------------- +// CAudioOutputProxyAO::SetObserver +// ?implementation_description +// (other items were commented in a header). +// --------------------------------------------------------- +// +void CAudioOutputProxyAO::SetObserver(MAudioOutputObserver& aObserver) + { + iObserver = &aObserver; + }