--- a/devsoundextensions/audiorouting/Output/AudioOutputProxy/src/AudioOutputProxy.cpp Tue Feb 02 01:56:55 2010 +0200
+++ b/devsoundextensions/audiorouting/Output/AudioOutputProxy/src/AudioOutputProxy.cpp Fri Apr 16 16:34:49 2010 +0300
@@ -43,6 +43,7 @@
iOutput = ENoPreference;
iDefaultOutput = ENoPreference;
iSecureOutput = EFalse;
+ iRegistered = EFalse;
}
// Two-phased constructor.
@@ -140,14 +141,22 @@
//
void CAudioOutputProxy::RegisterObserverL(MAudioOutputObserver& aObserver)
{
- iRegistered = ETrue;
- iObserver = &aObserver;
- delete iAsyncSender;
- iAsyncSender = NULL;
+ if(iRegistered)
+ {
+ iObserver = &aObserver;
+ iAsyncSender->SetObserver(aObserver);
+ }
+ else
+ {
+ iRegistered = ETrue;
+ iObserver = &aObserver;
+ delete iAsyncSender;
+ iAsyncSender = NULL;
- iAsyncSender = CAudioOutputProxyAO::NewL(this,aObserver,iCustomCommand);
- iAsyncSender->SetRegisterFlag(ETrue);
- iAsyncSender->SendAsyncMessage(iMessageHandler,EAofRegisterObserver);
+ iAsyncSender = CAudioOutputProxyAO::NewL(this,aObserver,iCustomCommand);
+ iAsyncSender->SetRegisterFlag(ETrue);
+ iAsyncSender->SendAsyncMessage(iMessageHandler,EAofRegisterObserver);
+ }
}
// ---------------------------------------------------------