diff -r 000000000000 -r 40261b775718 mmhais/refacladapt/src/audiosink/buffersink.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmhais/refacladapt/src/audiosink/buffersink.h Tue Feb 02 01:56:55 2010 +0200 @@ -0,0 +1,81 @@ +/* +* Copyright (c) 2007-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: +* +*/ + + +#ifndef BUFFERSINK_H +#define BUFFERSINK_H + +#include +#include + +#include "minputport.h" + +#include +#include + + +///// +// This is the implementation of CAudioSink API. +// +// @see CAudioComponent +/// +NONSHARABLE_CLASS(CBufferSink) : public CBase, + public MInputPort, + public MMMFBufferSink + { +public: + + ///// + // Create a new instance. + // + // @return CBufferSink* a pointer to the created instance. + /// + IMPORT_C static CBufferSink* NewL(); + + ///// + // Destructor. + // + // Deletes all objects and releases all resource owned by this instance. + /// + virtual ~CBufferSink(); + + // from class MInputPort + TInt GetInputPort(MInputPort*& aInputPort); + virtual TInt EmptyBuffer(CMMFBuffer* aBuffer, MOutputPort* aSupplier); + virtual TInt BufferFilled(CMMFBuffer* aBuffer); + virtual TInt SetOutput(MOutputPort* aOutput); + virtual TInt RemoveOutput(MOutputPort* aOutput); + + // from class MMFBufferSink + virtual TInt SetDataConsumer(MMMFAudioDataConsumer& aConsumer); + virtual TInt BufferEmptied(CMMFBuffer* aBuffer); + virtual TInt BuffersDiscarded(); + +private: + + void ConstructL(); + + CBufferSink(); + + MMMFAudioDataConsumer* iConsumer; + + MOutputPort* iOutput; + + CMMFBuffer* iBuffer; + }; + +#endif // BUFFERSINK_H