First public contribution.
1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Name : logicalbuffersource.cpp
15 // Part of : ACL Logical Layer
20 #include "logicalbuffersource.h"
21 #include <a3f/audioprocessingunittypeuids.h>
22 #include <ecom/implementationproxy.h> // For making it ECom plugin
24 // Map the interface implementation UIDs to implementation factory functions
25 const TImplementationProxy ImplementationTable[] =
27 IMPLEMENTATION_PROXY_ENTRY(KMmfBufferSourceUid, CLogicalBufferSource::NewL),
30 // Exported proxy for instantiation method resolution.
31 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
33 aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
34 return ImplementationTable;
36 // ---------------------------------------------------------------------------
38 // ---------------------------------------------------------------------------
40 CLogicalBufferSource::CLogicalBufferSource(TAny* aParam) : CAudioProcessingUnit(aParam)
43 DP_CONTEXT(CLogicalBufferSource::CLogicalBufferSource *CD1*, CtxDevSound, DPLOCAL);
48 // ---------------------------------------------------------------------------
50 // ---------------------------------------------------------------------------
52 CLogicalBufferSource* CLogicalBufferSource::NewL(TAny* aParameters)
54 DP_STATIC_CONTEXT(CLogicalBufferSource::NewL *CD0*, CtxDevSound, DPLOCAL);
56 CLogicalBufferSource* self = new(ELeave)CLogicalBufferSource(aParameters);
57 CleanupStack::PushL(self);
59 CleanupStack::Pop(self);
60 DP0_RET(self, "0x%x");
63 // ---------------------------------------------------------------------------
64 // Second phase constructor
65 // ---------------------------------------------------------------------------
67 void CLogicalBufferSource::ConstructL()
69 DP_CONTEXT(CLogicalBufferSource::ConstructL *CD1*, CtxDevSound, DPLOCAL);
74 // ---------------------------------------------------------------------------
76 // ---------------------------------------------------------------------------
78 CLogicalBufferSource::~CLogicalBufferSource()
80 DP_CONTEXT(CLogicalBufferSource::~CLogicalBufferSource *CD1*, CtxDevSound, DPLOCAL);
85 // from MMMFBufferSource
86 // ---------------------------------------------------------------------------
87 // CLogicalBufferSource::SetDataSupplier
88 // ---------------------------------------------------------------------------
90 TInt CLogicalBufferSource::SetDataSupplier(MMMFAudioDataSupplier& aSupplier)
92 DP_CONTEXT(CLogicalBufferSource::SetDataSupplier *CD1*, CtxDevSound, DPLOCAL);
95 iSupplier = &aSupplier;
99 // ---------------------------------------------------------------------------
100 // CLogicalBufferSource::BufferFilled
101 // ---------------------------------------------------------------------------
103 TInt CLogicalBufferSource::BufferFilled(CMMFBuffer* aBuffer)
105 DP_CONTEXT(CLogicalBufferSource::BufferFilled *CD1*, CtxDevSound, DPLOCAL);
108 err = iAdaptationBufferSource->BufferFilled(aBuffer);
112 // ---------------------------------------------------------------------------
113 // CLogicalBufferSource::BuffersDiscarded
114 // ---------------------------------------------------------------------------
116 TInt CLogicalBufferSource::BuffersDiscarded()
118 DP_CONTEXT(CLogicalBufferSource::BuffersDiscarded *CD1*, CtxDevSound, DPLOCAL);
121 err = iAdaptationBufferSource->BuffersDiscarded();
125 // ---------------------------------------------------------------------------
126 // CLogicalBufferSource::IsTypeOf
127 // ---------------------------------------------------------------------------
129 TBool CLogicalBufferSource::IsTypeOf(TUid aTypeId) const
131 DP_CONTEXT(CLogicalBufferSource::IsTypeOf *CD1*, CtxDevSound, DPLOCAL);
133 TBool result = EFalse;
134 if (iType == aTypeId)
138 DP0_RET(result, "%d");
141 // ---------------------------------------------------------------------------
142 // CLogicalBufferSource::Interface
143 // ---------------------------------------------------------------------------
145 TAny* CLogicalBufferSource::Interface(TUid aType)
147 DP_CONTEXT(CLogicalBufferSource::Interface *CD1*, CtxDevSound, DPLOCAL);
149 TAny* interface = NULL;
150 if(aType==KUidMmfBufferSource)
152 interface = static_cast<MMMFBufferSource*>(this);
154 DP0_RET(interface, "%d");
157 // From MMMFAudioDataSupplier
158 // ---------------------------------------------------------------------------
159 // CLogicalBufferSource::BufferToBeFilled
160 // ---------------------------------------------------------------------------
162 void CLogicalBufferSource::BufferToBeFilled(MMMFBufferSource* /*aSource*/, CMMFBuffer* aBuffer)
164 iSupplier->BufferToBeFilled(this, aBuffer);
167 // ---------------------------------------------------------------------------
168 // CLogicalBufferSource::DiscardBuffers
169 // ---------------------------------------------------------------------------
171 void CLogicalBufferSource::DiscardBuffers(MMMFBufferSource* /*aSource*/)
173 iSupplier->DiscardBuffers(this);