os/mm/devsoundextensions/effects/SrcLocation/SourceLocationEffect/Src/SourceLocationBase.cpp
First public contribution.
2 * Copyright (c) 2006 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.
14 * Description: Implementation of the listenerlocation effect class
27 #include <SourceLocationBase.h>
28 #include <CustomInterfaceUtility.h>
29 #include "SourceLocationProxy.h"
30 #include <DrmAudioSamplePlayer.h>
31 #include <mdaaudioinputstream.h>
32 #include <mdaaudiooutputstream.h>
33 #include <mdaaudiotoneplayer.h>
34 #include <mmf/server/sounddevice.h>
35 #include <videoplayer.h>
38 #define DEBPRN0 RDebug::Printf( "%s", __PRETTY_FUNCTION__);
39 #define DEBPRN1(str) RDebug::Printf( "%s %s", __PRETTY_FUNCTION__, str );
45 // ============================ MEMBER FUNCTIONS ===============================
47 // -----------------------------------------------------------------------------
48 // CSourceLocation::CSourceLocation
49 // C++ default constructor can NOT contain any code, that
51 // -----------------------------------------------------------------------------
53 EXPORT_C CSourceLocation::CSourceLocation()
58 EXPORT_C CSourceLocation::~CSourceLocation()
63 // -----------------------------------------------------------------------------
64 // CSourceLocation::NewL
65 // Static function for creating an instance of the SourceLocation object.
66 // -----------------------------------------------------------------------------
68 EXPORT_C CSourceLocation* CSourceLocation::NewL(
69 CMdaAudioInputStream& aUtility )
73 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)aUtility.CustomInterface(KUidSourceLocationEffect);
75 if (sourceLocationProxy == NULL)
77 DEBPRN1("No Adaptation Support - leaving");
78 User::Leave(KErrNotSupported);
81 return sourceLocationProxy;
84 // -----------------------------------------------------------------------------
85 // CSourceLocation::NewL
86 // Static function for creating an instance of the SourceLocation object.
87 // -----------------------------------------------------------------------------
89 EXPORT_C CSourceLocation* CSourceLocation::NewL(
90 CMdaAudioOutputStream& aUtility )
94 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)aUtility.CustomInterface(KUidSourceLocationEffect);
96 if (sourceLocationProxy == NULL)
98 DEBPRN1("No Adaptation Support - leaving");
99 User::Leave(KErrNotSupported);
102 return sourceLocationProxy;
105 // -----------------------------------------------------------------------------
106 // CSourceLocation::NewL
107 // Static function for creating an instance of the SourceLocation object.
108 // -----------------------------------------------------------------------------
110 EXPORT_C CSourceLocation* CSourceLocation::NewL(
111 CMdaAudioConvertUtility& aUtility )
115 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility);
116 CleanupStack::PushL(customInterface);
118 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
120 if ( !sourceLocationProxy )
122 DEBPRN1("No Adaptation Support - leaving");
123 User::Leave(KErrNotSupported);
126 CleanupStack::Pop(customInterface);
128 return sourceLocationProxy;
131 // -----------------------------------------------------------------------------
132 // CSourceLocation::NewL
133 // Static function for creating an instance of the SourceLocation object.
134 // -----------------------------------------------------------------------------
136 EXPORT_C CSourceLocation* CSourceLocation::NewL(
137 CMdaAudioPlayerUtility& aUtility )
141 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility);
142 CleanupStack::PushL(customInterface);
144 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
146 if ( !sourceLocationProxy )
148 DEBPRN1("No Adaptation Support - leaving");
149 User::Leave(KErrNotSupported);
152 CleanupStack::Pop(customInterface);
154 return sourceLocationProxy;
157 // -----------------------------------------------------------------------------
158 // CSourceLocation::NewL
159 // Static function for creating an instance of the SourceLocation object.
160 // -----------------------------------------------------------------------------
162 EXPORT_C CSourceLocation* CSourceLocation::NewL(
163 CMdaAudioRecorderUtility& aUtility,
164 TBool aRecordStream )
168 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility, aRecordStream);
169 CleanupStack::PushL(customInterface);
171 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
173 if ( !sourceLocationProxy )
175 DEBPRN1("No Adaptation Support - leaving");
176 User::Leave(KErrNotSupported);
179 CleanupStack::Pop(customInterface);
181 return sourceLocationProxy;
184 // -----------------------------------------------------------------------------
185 // CSourceLocation::NewL
186 // Static function for creating an instance of the SourceLocation object.
187 // -----------------------------------------------------------------------------
189 EXPORT_C CSourceLocation* CSourceLocation::NewL(
190 CMdaAudioToneUtility& aUtility)
194 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)aUtility.CustomInterface(KUidSourceLocationEffect);
196 if (sourceLocationProxy == NULL)
198 DEBPRN1("No Adaptation Support - leaving");
199 User::Leave(KErrNotSupported);
202 return sourceLocationProxy;
205 // -----------------------------------------------------------------------------
206 // CSourceLocation::NewL
207 // Static function for creating an instance of the SourceLocation object.
208 // -----------------------------------------------------------------------------
210 EXPORT_C CSourceLocation* CSourceLocation::NewL(
211 CMMFDevSound& aDevSound )
215 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)aDevSound.CustomInterface(KUidSourceLocationEffect);
217 if (sourceLocationProxy == NULL)
219 DEBPRN1("No Adaptation Support - leaving");
220 User::Leave(KErrNotSupported);
223 return sourceLocationProxy;
226 // -----------------------------------------------------------------------------
227 // CSourceLocation::NewL
228 // Static function for creating an instance of the SourceLocation object.
229 // -----------------------------------------------------------------------------
231 EXPORT_C CSourceLocation* CSourceLocation::NewL(
232 CCustomCommandUtility* aUtility )
236 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility);
237 CleanupStack::PushL(customInterface);
239 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
241 if ( !sourceLocationProxy )
243 DEBPRN1("No Adaptation Support - leaving");
244 User::Leave(KErrNotSupported);
247 CleanupStack::Pop(customInterface);
249 return sourceLocationProxy;
252 // -----------------------------------------------------------------------------
253 // CSourceLocation::NewL
254 // Static function for creating an instance of the SourceLocation object.
255 // -----------------------------------------------------------------------------
257 EXPORT_C CSourceLocation* CSourceLocation::NewL(
258 MCustomInterface& aCustomInterface )
262 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)aCustomInterface.CustomInterface(KUidSourceLocationEffect);
264 if ( !sourceLocationProxy )
266 DEBPRN1("No Adaptation Support - leaving");
267 User::Leave(KErrNotSupported);
270 return sourceLocationProxy;
273 // -----------------------------------------------------------------------------
274 // CSourceLocation::NewL
275 // Static function for creating an instance of the SourceLocation object.
276 // -----------------------------------------------------------------------------
278 EXPORT_C CSourceLocation* CSourceLocation::NewL(
279 CMidiClientUtility& aUtility )
283 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility);
284 CleanupStack::PushL(customInterface);
286 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
288 if ( !sourceLocationProxy )
290 DEBPRN1("No Adaptation Support - leaving");
291 User::Leave(KErrNotSupported);
294 CleanupStack::Pop(customInterface);
296 return sourceLocationProxy;
299 // -----------------------------------------------------------------------------
300 // CSourceLocation::NewL
301 // Static function for creating an instance of the SourceLocation object.
302 // -----------------------------------------------------------------------------
304 EXPORT_C CSourceLocation* CSourceLocation::NewL(
305 CDrmPlayerUtility& aUtility )
309 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility);
310 CleanupStack::PushL(customInterface);
312 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
314 if ( !sourceLocationProxy )
316 DEBPRN1("No Adaptation Support - leaving");
317 User::Leave(KErrNotSupported);
320 CleanupStack::Pop(customInterface);
322 return sourceLocationProxy;
325 // -----------------------------------------------------------------------------
326 // CSourceLocation::NewL
327 // Static function for creating an instance of the SourceLocation object.
328 // -----------------------------------------------------------------------------
330 EXPORT_C CSourceLocation* CSourceLocation::NewL(
331 CVideoPlayerUtility& aUtility )
335 CCustomInterfaceUtility* customInterface = CCustomInterfaceUtility::NewL(aUtility);
336 CleanupStack::PushL(customInterface);
338 CSourceLocationProxy* sourceLocationProxy = (CSourceLocationProxy*)customInterface->CustomInterface(KUidSourceLocationEffect);
340 if ( !sourceLocationProxy )
342 DEBPRN1("No Adaptation Support - leaving");
343 User::Leave(KErrNotSupported);
346 CleanupStack::Pop(customInterface);
348 return sourceLocationProxy;
351 // -----------------------------------------------------------------------------
352 // CSourceLocation::Uid
353 // -----------------------------------------------------------------------------
355 EXPORT_C TUid CSourceLocation::Uid() const
357 return KUidSourceLocationEffect;
361 // ========================== OTHER EXPORTED FUNCTIONS =========================