First public contribution.
2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Name : logicalbuffersource.h
16 * Part of : ACL Logical Layer
22 #ifndef LOGICALBUFFERSOURCE_H
23 #define LOGICALBUFFERSOURCE_H
27 #include <a3f/a3f_trace_utils.h>
28 #include <a3f/mbuffersource.h>
29 #include <a3f/maudiodatasupplier.h>
31 #include "audioprocessingunit.h"
33 #include <a3f/maudioprocessingunitobserver.h>
36 class MLogicalSettingObserver;
41 NONSHARABLE_CLASS(CLogicalBufferSource) : public CAudioProcessingUnit,
42 public MMMFBufferSource,
43 public MMMFAudioDataSupplier
45 friend class CAudioContext;
46 friend class CLogicalAudioStream;
52 Deletes all objects and releases all resource owned by this instance.
54 virtual ~CLogicalBufferSource();
56 // from MMMFBufferSource
57 virtual TInt SetDataSupplier(MMMFAudioDataSupplier& aSupplier);
58 virtual TInt BufferFilled(CMMFBuffer* aBuffer);
59 virtual TInt BuffersDiscarded();
61 // from CAudioProcessingUnit
62 virtual TBool IsTypeOf(TUid aTypeId) const;
63 virtual TAny* Interface(TUid aType);
65 // from MMMFDataSupplier
66 virtual void BufferToBeFilled(MMMFBufferSource* aSource, CMMFBuffer* aBuffer);
67 virtual void DiscardBuffers(MMMFBufferSource* aSource);
70 Create a new instance.
72 @return CBufferSource* a pointer to the created instance.
74 static CLogicalBufferSource* NewL(TAny* aParameters);
79 CLogicalBufferSource(TAny* aParameters);
82 // The adaptation buffer source
83 MMMFBufferSource* iAdaptationBufferSource;
86 // The client which provides data
87 MMMFAudioDataSupplier* iSupplier;
90 #endif // LOGICALBUFFERSOURCE_H