mmmw_plat/voip_audio_services_api/tsrc/VoIPAudioServicesTestClass/src/VoIPAudioServicesTestClassBlocksCallbacks.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmmw_plat/voip_audio_services_api/tsrc/VoIPAudioServicesTestClass/src/VoIPAudioServicesTestClassBlocksCallbacks.cpp Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,300 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: voip audio service -
+*
+*/
+
+
+
+// INCLUDE FILES
+#include "VoIPAudioServicesTestClass.h"
+#include "debug.h"
+
+
+
+
+
+/************************************************************************************************************/
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::FillBuffer
+//
+// Callback from MVoIPDownlinkObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::FillBuffer(const CVoIPAudioDownlinkStream& /*aSrc*/,
+ CVoIPDataBuffer* aBuffer)
+{
+
+ iLog->Log(_L("CVoIPAudioServicesTestClass::FillBuffer"));
+ ProcessEvent(EFillBuffer, KErrNone);
+
+ // In JB mode we will only receive FillBuffer callback once after
+ // ConfigureJB. We will simply reuse same buffer to send data to VAS.
+ aBuffer->GetPayloadPtr(iPlayBufPtr);
+ iPlayBufReady = ETrue; // always ready in JB mode
+
+#ifndef __JITTER_BUFFER_TEST__
+ // In JB mode, DoLoopback is only called when from EmptyBuffer
+ if (iDnLinkStatus == EStreaming)
+ {
+ DoLoopback();
+ }
+#endif //__JITTER_BUFFER_TEST__
+}
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::Event
+//
+// Callback from MVoIPDownlinkObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::Event(const CVoIPAudioDownlinkStream& /*aSrc*/,
+ TInt aEventType,
+ TInt aError)
+{
+ switch (aEventType)
+ {
+ case MVoIPDownlinkObserver::KOpenComplete:
+ {
+ if (aError == KErrNone)
+ {
+ // Now we can configure decoder and audio device
+ iVoIPDnlink->GetMaxVolume(iMaxVolume);
+ iVoIPDnlink->SetVolume(iMaxVolume / 2);
+ // ConfigureDecoder();
+
+#ifdef __JITTER_BUFFER_TEST__
+ if (iDnLinkCodec != EPCM16)
+ {
+ ConfigureJB(); // will trigger FillBuffer callback
+ }
+#endif //__JITTER_BUFFER_TEST__
+
+ iDnLinkStatus = EReady;
+ iLog->Log(_L("MVoIPDownlinkObserver::KOpenComplete: aError = %d"), aError);
+ ProcessEvent(EOpenDownlinkComplete, aError);
+ }
+
+ iLog->Log(_L("DNL Initialized: aError = %d"), aError);
+ break;
+ }
+ case MVoIPDownlinkObserver::KDownlinkClosed:
+ {
+ iDnLinkStatus = ENotReady;
+ iLog->Log(_L("MVoIPDownlinkObserver::KDownlinkClosed: aError = %d"), aError);
+ ProcessEvent(EDownlinkClosed, aError);
+ break;
+ }
+ case MVoIPDownlinkObserver::KDownlinkError:
+ {
+ iDnLinkStatus = EReady;
+ iLog->Log(_L("DNL Error: aError = %d"), aError);
+ break;
+ }
+/* case KVoIPOpenDTMFComplete:
+ {
+ DisplayText(_L("DTMF (DNL) Open"), aError);
+ break;
+ }*/
+/*
+ case KVoIP_TEMP1:
+ {
+ DisplayText(_L("DTMF PLR Ready"), aError);
+ break;
+ }
+ case KVoIP_TEMP2:
+ {
+ DisplayText(_L("DTMF PLR Ready"), aError);
+ break;
+ }
+*/
+ default:
+ break;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::EmptyBuffer
+//
+// Callback from MVoIPUplinkObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::EmptyBuffer(const CVoIPAudioUplinkStream& /*aSrc*/,
+ CVoIPDataBuffer* aBuffer)
+{
+ iLog->Log(_L("CVoIPAudioServicesTestClass::EmptyBuffer"));
+ ProcessEvent(EEmptyBuffer, KErrNone);
+
+ aBuffer->GetPayloadPtr(iRecBufPtr);
+ iRecBufReady = ETrue;
+
+ if (iUpLinkStatus == EStreaming)
+ {
+ DoLoopback();
+ // iVoIPUplink->BufferEmptied(aBuffer);
+ // iUpLinkStatus = EReady;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::Event
+//
+// Callback from MVoIPUplinkObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::Event(const CVoIPAudioUplinkStream& /*aSrc*/,
+ TInt aEventType,
+ TInt aError)
+{
+ switch (aEventType)
+ {
+ case MVoIPUplinkObserver::KOpenComplete:
+ {
+ if (aError == KErrNone)
+ {
+ // Now we can configure encoder and audio device
+ iVoIPUplink->GetMaxGain(iMaxGain);
+ iVoIPUplink->SetGain(iMaxGain);
+
+ iUpLinkStatus = EReady;
+ iLog->Log(_L("MVoIPUplinkObserver::KOpenComplete: aError = %d"), aError);
+ ProcessEvent(EOpenUplinkComplete, aError);
+ }
+
+ iLog->Log(_L("UPL Initialized: aError = %d"), aError);
+ break;
+ }
+ case MVoIPUplinkObserver::KUplinkClosed:
+ {
+ iUpLinkStatus = ENotReady;
+ iLog->Log(_L("MVoIPUplinkObserver::KUplinkClosed: aError = %d"), aError);
+ ProcessEvent(EUplinkClosed, aError);
+ break;
+ }
+ case MVoIPUplinkObserver::KUplinkError:
+ {
+ iUpLinkStatus = EReady;
+ iLog->Log(_L("UPL Error: aError = %d"), aError);
+ break;
+ }
+
+// TODO: Move to MDTMFToneObserver::Event handler
+/* case KVoIP_TEMP1:
+ {
+ DisplayText(_L("DTMF PLR Ready"), aError);
+ break;
+ }
+ case KVoIP_TEMP2:
+ {
+ DisplayText(_L("DTMF PLR Ready"), aError);
+ break;
+ }
+*/
+ default:
+ break;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::Event
+//
+// Callback from MVoIPFormatObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::Event(const CVoIPFormatIntfc& /*aSrc*/, TInt aEventType)
+{
+ switch (aEventType)
+ {
+ case MVoIPFormatObserver::KSilenceBegin:
+ case MVoIPFormatObserver::KSilenceUpdate:
+ case MVoIPFormatObserver::KSilenceEnd:
+ case MVoIPFormatObserver::KObserverEventMax:
+ default:
+ break;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::Event
+//
+// Callback from MDTMFToneObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::Event(const CDTMFTonePlayer& /*aSrc*/,
+ TInt aEventType,
+ TInt aError)
+{
+ switch (aEventType)
+ {
+ case MDTMFToneObserver::KOpenCompleteDNL:
+ iLog->Log(_L("MDTMFToneObserver:KOpenCompleteDNL:DTMF DNL-PLR Ready: aError = %d"), aError);
+ ProcessEvent(EOpenCompleteDNL, aError);
+ break;
+ case MDTMFToneObserver::KOpenCompleteUPL:
+ iLog->Log(_L("MDTMFToneObserver:KOpenCompleteUPL:DTMF UPL-PLR Ready: aError = %d"), aError);
+ ProcessEvent(EOpenCompleteUPL, aError);
+ break;
+ default:
+ break;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::Event
+//
+// Callback from MRingToneObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::Event(const CRingTonePlayer& /*aSrc*/,
+ TInt aEventType,
+ TInt aError)
+{
+ switch (aEventType)
+ {
+ case MRingToneObserver::KOpenComplete:
+ ProcessEvent(EOpenComplete, aError);
+ iLog->Log(_L("RT PLR Ready: error = %d"), aError);
+ break;
+ case MRingToneObserver::KPlaybackComplete:
+ ProcessEvent(EPlaybackComplete, aError);
+ iLog->Log(_L("RT Play Complete: error = %d"), aError);
+ break;
+ default:
+ break;
+ }
+}
+
+#ifdef __JITTER_BUFFER_TEST__
+// ----------------------------------------------------------------------------
+// CVoIPAudioServicesTestClass::Event
+//
+// Callback from MVoIPJitterBufferObserver
+// ----------------------------------------------------------------------------
+//
+void CVoIPAudioServicesTestClass::Event(const CVoIPJitterBufferIntfc& /*aSrc*/,
+ TInt aEventType)
+{
+ switch (aEventType)
+ {
+ // Reserved for future use
+ case MVoIPJitterBufferObserver::KJBReserved1:
+ case MVoIPJitterBufferObserver::KJBReserved2:
+ default:
+ break;
+ }
+}
+
+#endif //__JITTER_BUFFER_TEST__
+