sl@0: //buffersink.cpp sl@0: sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: sl@0: sl@0: #include "buffersink.h" sl@0: #include "moutputport.h" sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // Constructor sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: CBufferSink::CBufferSink() sl@0: { sl@0: TRACE_CREATE(); sl@0: DP_CONTEXT(CBufferSink::CBufferSink *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: DP_OUT(); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // Factory method sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CBufferSink* CBufferSink::NewL() sl@0: { sl@0: DP_STATIC_CONTEXT(CBufferSink::NewL *CD0*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: CBufferSink* self = new(ELeave)CBufferSink(); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: CleanupStack::Pop(self); sl@0: DP0_RET(self, "0x%x"); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // Second phase constructor sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: void CBufferSink::ConstructL() sl@0: { sl@0: DP_CONTEXT(CBufferSink::ConstructL *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: DP_OUT(); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // Destructor sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: CBufferSink::~CBufferSink() sl@0: { sl@0: DP_CONTEXT(CBufferSink::~CBufferSink *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: DP_OUT(); sl@0: } sl@0: sl@0: // from class MInputPort sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::GetInputPort sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::GetInputPort(MInputPort*& aInput) sl@0: { sl@0: DP_CONTEXT(CBufferSource::GetInputPort *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: aInput = this; sl@0: DP0_RET(KErrNone, "%d"); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::EmptyBuffer sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::EmptyBuffer(CMMFBuffer* aBuffer, MOutputPort* aSupplier) sl@0: { sl@0: DP_CONTEXT(CBufferSink::EmptyBuffer *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: TInt err = KErrNone; sl@0: if (aSupplier == iOutput) sl@0: { sl@0: iConsumer->BufferToBeEmptied(static_cast(this), aBuffer); sl@0: } sl@0: else sl@0: { sl@0: err = KErrNotSupported; sl@0: } sl@0: DP0_RET(err, "%d"); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::BufferFilled sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::BufferFilled(CMMFBuffer* /*aBuffer*/) sl@0: { sl@0: DP_CONTEXT(CBufferSink::BufferFilled *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: DP0_RET(KErrNone, "%d"); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::SetOutput sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::SetOutput(MOutputPort* aOutput) sl@0: { sl@0: DP_CONTEXT(CBufferSink::SetOutput *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: iOutput = aOutput; sl@0: DP0_RET(KErrNone, "%d"); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::RemoveOutput sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::RemoveOutput(MOutputPort* /*aOutput*/) sl@0: { sl@0: DP_CONTEXT(CBufferSink::RemoveOutput *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: iOutput=NULL; sl@0: DP0_RET(KErrNone, "%d"); sl@0: } sl@0: sl@0: // from MMMFBufferSink sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::SetDataConsumer sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::SetDataConsumer(MMMFAudioDataConsumer& aConsumer) sl@0: { sl@0: DP_CONTEXT(CBufferSink::SetDataConsumer *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: iConsumer = &aConsumer; sl@0: DP0_RET(KErrNone, "%d"); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::BufferEmptied sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::BufferEmptied(CMMFBuffer* aBuffer) sl@0: { sl@0: DP_CONTEXT(CBufferSink::BufferFilled *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: // Check if need a switch sl@0: iBuffer = aBuffer; sl@0: DP_OUT(); sl@0: return(iOutput->BufferEmptied(aBuffer)); sl@0: } sl@0: sl@0: // --------------------------------------------------------------------------- sl@0: // CBufferSink::BuffersDiscarded sl@0: // --------------------------------------------------------------------------- sl@0: // sl@0: TInt CBufferSink::BuffersDiscarded() sl@0: { sl@0: DP_CONTEXT(CBufferSink::BuffersDiscarded *CD1*, CtxDevSound, DPLOCAL); sl@0: DP_IN(); sl@0: // Check what we are suppose to do sl@0: if(iBuffer) sl@0: { sl@0: iBuffer = NULL; sl@0: } sl@0: DP0_RET(KErrNone, "%d"); sl@0: } sl@0: sl@0: // end of file