sl@0: /* sl@0: * Copyright (c) 2007-2008 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: #ifndef BUFFERSINK_H sl@0: #define BUFFERSINK_H sl@0: sl@0: #include sl@0: #include sl@0: sl@0: #include "minputport.h" sl@0: sl@0: #include sl@0: #include sl@0: sl@0: sl@0: ///// sl@0: // This is the implementation of CAudioSink API. sl@0: // sl@0: // @see CAudioComponent sl@0: /// sl@0: NONSHARABLE_CLASS(CBufferSink) : public CBase, sl@0: public MInputPort, sl@0: public MMMFBufferSink sl@0: { sl@0: public: sl@0: sl@0: ///// sl@0: // Create a new instance. sl@0: // sl@0: // @return CBufferSink* a pointer to the created instance. sl@0: /// sl@0: IMPORT_C static CBufferSink* NewL(); sl@0: sl@0: ///// sl@0: // Destructor. sl@0: // sl@0: // Deletes all objects and releases all resource owned by this instance. sl@0: /// sl@0: virtual ~CBufferSink(); sl@0: sl@0: // from class MInputPort sl@0: TInt GetInputPort(MInputPort*& aInputPort); sl@0: virtual TInt EmptyBuffer(CMMFBuffer* aBuffer, MOutputPort* aSupplier); sl@0: virtual TInt BufferFilled(CMMFBuffer* aBuffer); sl@0: virtual TInt SetOutput(MOutputPort* aOutput); sl@0: virtual TInt RemoveOutput(MOutputPort* aOutput); sl@0: sl@0: // from class MMFBufferSink sl@0: virtual TInt SetDataConsumer(MMMFAudioDataConsumer& aConsumer); sl@0: virtual TInt BufferEmptied(CMMFBuffer* aBuffer); sl@0: virtual TInt BuffersDiscarded(); sl@0: sl@0: private: sl@0: sl@0: void ConstructL(); sl@0: sl@0: CBufferSink(); sl@0: sl@0: MMMFAudioDataConsumer* iConsumer; sl@0: sl@0: MOutputPort* iOutput; sl@0: sl@0: CMMFBuffer* iBuffer; sl@0: }; sl@0: sl@0: #endif // BUFFERSINK_H