os/mm/devsound/sounddevbt/PlatSec/src/SoundDevice/MmfBtDevSoundCallbackHandler.cpp
Update contrib.
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #include "MmfBtDevSoundCallbackHandler.h"
21 CMMFBufferToBeFilledHandler* CMMFBufferToBeFilledHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
23 CMMFBufferToBeFilledHandler* self = new(ELeave) CMMFBufferToBeFilledHandler(aDevSoundProxy, aDevSoundObserver);
24 CleanupStack::PushL(self);
30 CMMFBufferToBeFilledHandler::CMMFBufferToBeFilledHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
31 CActive(EPriorityLow), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
33 CActiveScheduler::Add(this);
36 void CMMFBufferToBeFilledHandler::ConstructL()
40 CMMFBufferToBeFilledHandler::~CMMFBufferToBeFilledHandler()
45 void CMMFBufferToBeFilledHandler::ReceiveEvents()
47 _LIT(KBTBFPanic, "CMMFBufferToBeFilledHandler");
48 __ASSERT_ALWAYS(!IsActive(), User::Panic(KBTBFPanic, 1));
50 iDevSoundProxy->ReceiveBufferToBeFilledEvent(iSetPckg, iStatus);
54 void CMMFBufferToBeFilledHandler::CancelReceiveEvents()
59 void CMMFBufferToBeFilledHandler::RunL()
61 TMMFDevSoundProxyHwBuf aSet;
62 aSet.iBufferType = iSetPckg().iBufferType;
63 aSet.iRequestSize = iSetPckg().iRequestSize;
64 aSet.iBufferSize = iSetPckg().iBufferSize;
65 aSet.iLastBuffer = iSetPckg().iLastBuffer;
68 CMMFDataBuffer* buffer = CMMFDescriptorBuffer::NewL(aSet.iBufferSize);
69 CleanupStack::PushL(buffer);
70 buffer->SetRequestSizeL(aSet.iRequestSize);
71 CleanupStack::Pop(buffer);
72 buffer->SetLastBuffer(aSet.iLastBuffer);
73 iDevSoundProxy->SetBuffer(buffer);//DevSoundProxy takes the owenership of "buffer"
76 iDevSoundObserver.BufferToBeFilled(buffer);
79 void CMMFBufferToBeFilledHandler::DoCancel()
81 iDevSoundProxy->CancelReceiveBufferToBeFilledEvent();
84 TInt CMMFBufferToBeFilledHandler::RunError(TInt aError)
86 // report error to client - client should make decesion what to do with the error.
87 iDevSoundObserver.PlayError(aError);
97 CMMFBufferToBeEmptiedHandler* CMMFBufferToBeEmptiedHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
99 CMMFBufferToBeEmptiedHandler* self = new(ELeave) CMMFBufferToBeEmptiedHandler(aDevSoundProxy, aDevSoundObserver);
100 CleanupStack::PushL(self);
106 CMMFBufferToBeEmptiedHandler::CMMFBufferToBeEmptiedHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
107 CActive(EPriorityLow), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
109 CActiveScheduler::Add(this);
112 void CMMFBufferToBeEmptiedHandler::ConstructL()
116 CMMFBufferToBeEmptiedHandler::~CMMFBufferToBeEmptiedHandler()
122 void CMMFBufferToBeEmptiedHandler::ReceiveEvents()
124 _LIT(KBTBEPanic, "CMMFBufferToBeEmptiedHandler");
125 __ASSERT_ALWAYS(!IsActive(), User::Panic(KBTBEPanic, 1));
127 iDevSoundProxy->ReceiveBufferToBeEmptiedEvent(iSetPckg, iStatus);
131 void CMMFBufferToBeEmptiedHandler::CancelReceiveEvents()
136 void CMMFBufferToBeEmptiedHandler::RunL()
138 TMMFDevSoundProxyHwBuf aSet;
139 aSet.iBufferType = iSetPckg().iBufferType;
140 aSet.iRequestSize = iSetPckg().iRequestSize;
141 aSet.iBufferSize = iSetPckg().iBufferSize;
142 aSet.iLastBuffer = iSetPckg().iLastBuffer;
149 iBuffer = CMMFDescriptorBuffer::NewL(aSet.iBufferSize);
150 iBuffer->SetRequestSizeL(aSet.iRequestSize);
151 iBuffer->SetLastBuffer(aSet.iLastBuffer);
152 User::LeaveIfError(iDevSoundProxy->GetRecordedBufferL(*iBuffer));
154 iDevSoundObserver.BufferToBeEmptied(iBuffer);
158 void CMMFBufferToBeEmptiedHandler::DoCancel()
160 iDevSoundProxy->CancelReceiveBufferToBeEmptiedEvent();
163 TInt CMMFBufferToBeEmptiedHandler::RunError(TInt aError)
165 // report error to client - client should make decesion what to do with the error.
166 iDevSoundObserver.RecordError(aError);
175 CMMFPlayErrorHandler* CMMFPlayErrorHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
177 CMMFPlayErrorHandler* self = new(ELeave) CMMFPlayErrorHandler(aDevSoundProxy, aDevSoundObserver);
178 CleanupStack::PushL(self);
184 CMMFPlayErrorHandler::CMMFPlayErrorHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
185 CActive(EPriorityStandard+1), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
187 CActiveScheduler::Add(this);
190 void CMMFPlayErrorHandler::ConstructL()
194 CMMFPlayErrorHandler::~CMMFPlayErrorHandler()
199 void CMMFPlayErrorHandler::ReceiveEvents()
201 _LIT(KPEPanic, "CMMFPlayErrorHandler");
202 __ASSERT_ALWAYS(!IsActive(), User::Panic(KPEPanic, 1));
204 iDevSoundProxy->ReceivePlayErrorEvent(iSetPckg, iStatus);
208 void CMMFPlayErrorHandler::CancelReceiveEvents()
213 void CMMFPlayErrorHandler::RunL()
215 iDevSoundObserver.PlayError(iStatus.Int());
220 void CMMFPlayErrorHandler::DoCancel()
222 iDevSoundProxy->CancelReceivePlayErrorEvent();
225 TInt CMMFPlayErrorHandler::RunError(TInt /*aError*/)
233 CMMFRecordErrorHandler* CMMFRecordErrorHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
235 CMMFRecordErrorHandler* self = new(ELeave) CMMFRecordErrorHandler(aDevSoundProxy, aDevSoundObserver);
236 CleanupStack::PushL(self);
242 CMMFRecordErrorHandler::CMMFRecordErrorHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
243 CActive(EPriorityLow), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
245 CActiveScheduler::Add(this);
248 void CMMFRecordErrorHandler::ConstructL()
252 CMMFRecordErrorHandler::~CMMFRecordErrorHandler()
257 void CMMFRecordErrorHandler::ReceiveEvents()
259 _LIT(KREPanic, "CMMFRecordErrorHandler");
260 __ASSERT_ALWAYS(!IsActive(), User::Panic(KREPanic, 1));
262 iDevSoundProxy->ReceiveRecordErrorEvent(iSetPckg, iStatus);
266 void CMMFRecordErrorHandler::CancelReceiveEvents()
271 void CMMFRecordErrorHandler::RunL()
273 iDevSoundObserver.RecordError(iStatus.Int());
278 void CMMFRecordErrorHandler::DoCancel()
280 iDevSoundProxy->CancelReceiveRecordErrorEvent();
283 TInt CMMFRecordErrorHandler::RunError(TInt /*aError*/)
293 CMMFToneFinishedHandler* CMMFToneFinishedHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
295 CMMFToneFinishedHandler* self = new(ELeave) CMMFToneFinishedHandler(aDevSoundProxy, aDevSoundObserver);
296 CleanupStack::PushL(self);
302 CMMFToneFinishedHandler::CMMFToneFinishedHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
303 CActive(EPriorityLow), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
305 CActiveScheduler::Add(this);
308 void CMMFToneFinishedHandler::ConstructL()
312 CMMFToneFinishedHandler::~CMMFToneFinishedHandler()
317 void CMMFToneFinishedHandler::ReceiveEvents()
319 _LIT(KTFPanic, "CMMFToneFinishedHandler");
320 __ASSERT_ALWAYS(!IsActive(), User::Panic(KTFPanic, 1));
322 iDevSoundProxy->ReceiveToneFinishedEvent(iSetPckg, iStatus);
326 void CMMFToneFinishedHandler::CancelReceiveEvents()
331 void CMMFToneFinishedHandler::RunL()
333 iDevSoundObserver.ToneFinished(iStatus.Int());
337 void CMMFToneFinishedHandler::DoCancel()
339 iDevSoundProxy->CancelReceiveToneFinishedEvent();
342 TInt CMMFToneFinishedHandler::RunError(TInt /*aError*/)
348 //InitializeComplete//
352 CMMFInitializeCompleteHandler* CMMFInitializeCompleteHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
354 CMMFInitializeCompleteHandler* self = new(ELeave) CMMFInitializeCompleteHandler(aDevSoundProxy, aDevSoundObserver);
355 CleanupStack::PushL(self);
361 CMMFInitializeCompleteHandler::CMMFInitializeCompleteHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
362 CActive(EPriorityLow), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
364 CActiveScheduler::Add(this);
367 void CMMFInitializeCompleteHandler::ConstructL()
371 CMMFInitializeCompleteHandler::~CMMFInitializeCompleteHandler()
376 void CMMFInitializeCompleteHandler::ReceiveEvents()
378 _LIT(KICPanic, "CMMFInitializeCompleteHandler");
379 __ASSERT_ALWAYS(!IsActive(), User::Panic(KICPanic, 1));
381 iDevSoundProxy->ReceiveInitializeCompleteEvent(iSetPckg, iStatus);
385 void CMMFInitializeCompleteHandler::CancelReceiveEvents()
390 void CMMFInitializeCompleteHandler::RunL()
392 iDevSoundObserver.InitializeComplete(iStatus.Int());
397 void CMMFInitializeCompleteHandler::DoCancel()
399 iDevSoundProxy->CancelReceiveInitializeCompleteEvent();
402 TInt CMMFInitializeCompleteHandler::RunError(TInt /*aError*/)
408 //SendEventToClient//
412 CMMFSendEventToClientHandler* CMMFSendEventToClientHandler::NewL(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver)
414 CMMFSendEventToClientHandler* self = new(ELeave) CMMFSendEventToClientHandler(aDevSoundProxy, aDevSoundObserver);
415 CleanupStack::PushL(self);
421 CMMFSendEventToClientHandler::CMMFSendEventToClientHandler(RMMFDevSoundProxy* aDevSoundProxy, MDevSoundObserver& aDevSoundObserver) :
422 CActive(EPriorityLow), iDevSoundProxy(aDevSoundProxy), iDevSoundObserver(aDevSoundObserver)
424 CActiveScheduler::Add(this);
427 void CMMFSendEventToClientHandler::ConstructL()
431 CMMFSendEventToClientHandler::~CMMFSendEventToClientHandler()
436 void CMMFSendEventToClientHandler::ReceiveEvents()
438 _LIT(KSETCPanic, "CMMFSendEventToClientHandler");
439 __ASSERT_ALWAYS(!IsActive(), User::Panic(KSETCPanic, 1));
441 iDevSoundProxy->ReceiveSendEventToClientEvent(iEventPckg, iStatus);
445 void CMMFSendEventToClientHandler::CancelReceiveEvents()
450 void CMMFSendEventToClientHandler::RunL()
452 iDevSoundObserver.SendEventToClient(iEventPckg());
457 void CMMFSendEventToClientHandler::DoCancel()
459 iDevSoundProxy->CancelReceiveSendEventToClientEvent();
462 TInt CMMFSendEventToClientHandler::RunError(TInt /*aError*/)