os/mm/devsoundextensions/effects/StereoWidening/StereoWideningProxy/Src/StereoWideningEventObserver.cpp
Update contrib.
2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Implementation of the active event observer.
26 #include "StereoWideningEventObserver.h"
29 // ============================ MEMBER FUNCTIONS ===============================
31 // -----------------------------------------------------------------------------
32 // CStereoWideningEventObserver::CStereoWideningEventObserver
33 // C++ default constructor can NOT contain any code, that
35 // -----------------------------------------------------------------------------
37 CStereoWideningEventObserver::CStereoWideningEventObserver()
38 : CActive(CActive::EPriorityStandard),
43 // -----------------------------------------------------------------------------
44 // CStereoWideningEventObserver::ConstructL
45 // Symbian 2nd phase constructor can leave.
46 // -----------------------------------------------------------------------------
48 void CStereoWideningEventObserver::ConstructL(
49 TMMFMessageDestinationPckg aMessageHandler,
50 MCustomCommand& aCustomCommand,
51 MStereoWideningCallback& aCallback )
53 CActiveScheduler::Add(this);
54 iMessageHandler = aMessageHandler;
55 iCustomCommand = &aCustomCommand;
56 iCallback = &aCallback;
59 // -----------------------------------------------------------------------------
60 // CStereoWideningEventObserver::NewL
61 // Two-phased constructor.
62 // -----------------------------------------------------------------------------
64 CStereoWideningEventObserver* CStereoWideningEventObserver::NewL(
65 TMMFMessageDestinationPckg aMessageHandler,
66 MCustomCommand& aCustomCommand,
67 MStereoWideningCallback& aCallback )
69 CStereoWideningEventObserver* self = new(ELeave) CStereoWideningEventObserver();
70 CleanupStack::PushL(self);
71 self->ConstructL(aMessageHandler, aCustomCommand, aCallback);
72 CleanupStack::Pop(self);
77 // -----------------------------------------------------------------------------
78 // CStereoWideningEventObserver::~CStereoWideningEventObserver
80 // -----------------------------------------------------------------------------
82 CStereoWideningEventObserver::~CStereoWideningEventObserver()
84 // We should not have to cancel the outstanding request because the message
85 // handler will complete our request with KErrCancel in its destructor.
89 // -----------------------------------------------------------------------------
90 // CStereoWideningEventObserver::Start
91 // Kickoff the event observer by issuing the first observation message.
92 // -----------------------------------------------------------------------------
94 void CStereoWideningEventObserver::Start()
96 if( !iStopped && !IsActive() )
98 iCustomCommand->CustomCommandAsync(iMessageHandler, (TInt)EAswefObserve, KNullDesC8, KNullDesC8, iDataPckgFrom, iStatus);
104 // -----------------------------------------------------------------------------
105 // CStereoWideningEventObserver::Stop
106 // -----------------------------------------------------------------------------
108 void CStereoWideningEventObserver::Stop()
113 // -----------------------------------------------------------------------------
114 // CStereoWideningEventObserver::RunL
115 // Invoke by the active scheduler when a request completes, In this case, our
116 // observation message has completed.
117 // The proxy is notified. Afterwards, reissue the request to continue observation.
118 // -----------------------------------------------------------------------------
120 void CStereoWideningEventObserver::RunL()
123 RDebug::Print(_L("CStereoWideningEventObserver::RunL()\n"));
126 if( iStatus == KErrNone )
128 iCallback->StereoWideningEvent(iDataPckgFrom);
137 // -----------------------------------------------------------------------------
138 // CStereoWideningEventObserver::DoCancel
139 // Cancels the current and any on going requests/tasks.
140 // -----------------------------------------------------------------------------
142 void CStereoWideningEventObserver::DoCancel()
145 RDebug::Print(_L("CStereoWideningEventObserver::DoCancel()\n"));