Update contrib.
2 * Copyright (c) 2002-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: Audio input base implementation
21 #include <AudioInput.h>
22 #include <mmf/server/sounddevice.h>
23 #include "AudioInputProxy.h"
24 #include "AudioInputMessageTypes.h"
25 #include <CustomInterfaceUtility.h>
26 #include <CustomCommandUtility.h>
27 #include <mdaaudioinputstream.h>
28 #include <videorecorder.h>
31 #define DEBPRN0 RDebug::Printf( "%s", __PRETTY_FUNCTION__);
32 #define DEBPRN1(str) RDebug::Printf( "%s %s", __PRETTY_FUNCTION__, str );
38 // Two-phased constructor.
39 EXPORT_C CAudioInput* CAudioInput::NewL(CMdaAudioRecorderUtility& aUtility)
42 CAudioInputProxy* audioInput;
43 CCustomInterfaceUtility* customInterface;
45 //customInterface = CCustomInterfaceUtility::NewL(aUtility,ECCRecording);
46 customInterface = CCustomInterfaceUtility::NewL(aUtility,ETrue);
47 CleanupStack::PushL(customInterface);
49 // The ownership of customInterface is taken by the audioInput
50 audioInput = (CAudioInputProxy*)customInterface->CustomInterface(KUidAudioInput);
52 if (audioInput == NULL)
54 DEBPRN1("No Adaptation Support - leaving");
55 User::Leave(KErrNotSupported);
57 CleanupStack::Pop(customInterface);
61 EXPORT_C CAudioInput* CAudioInput::NewL(CMMFDevSound& aDevSound)
64 CAudioInputProxy* audioInput = NULL;
65 audioInput = (CAudioInputProxy*)aDevSound.CustomInterface(KUidAudioInput);
66 if (audioInput == NULL)
68 DEBPRN1("No Adaptation Support - leaving");
69 User::Leave(KErrNotSupported);
74 // Two-phased constructor.
75 EXPORT_C CAudioInput* CAudioInput::NewL(MCustomCommand& aUtility)
78 CAudioInputProxy* audioInput;
79 CCustomInterfaceUtility* customInterface;
81 customInterface = CCustomInterfaceUtility::NewL(aUtility);
82 CleanupStack::PushL(customInterface);
84 audioInput = (CAudioInputProxy*)customInterface->CustomInterface(KUidAudioInput);
85 if (audioInput == NULL)
87 DEBPRN1("No Adaptation Support - leaving");
88 User::Leave(KErrNotSupported);
91 CleanupStack::Pop(customInterface);
95 // Two-phased constructor.
96 EXPORT_C CAudioInput* CAudioInput::NewL(MCustomInterface& aUtility)
99 CAudioInput* audioInput = (CAudioInputProxy*)aUtility.CustomInterface(KUidAudioInput);
103 DEBPRN1("No Adaptation Support - leaving");
104 User::Leave(KErrNotSupported);
110 EXPORT_C CAudioInput* CAudioInput::NewL(CMdaAudioInputStream& aUtility)
113 CAudioInputProxy* audioInput = NULL;
114 audioInput = (CAudioInputProxy*)aUtility.CustomInterface(KUidAudioInput);
115 if (audioInput == NULL)
117 DEBPRN1("No Adaptation Support - leaving");
118 User::Leave(KErrNotSupported);
123 EXPORT_C CAudioInput* CAudioInput::NewL(CVideoRecorderUtility& aUtility)
126 CAudioInputProxy* audioInput;
127 CCustomInterfaceUtility* customInterface;
129 customInterface = CCustomInterfaceUtility::NewL(aUtility);
130 CleanupStack::PushL(customInterface);
132 // The ownership of customInterface is taken by the audioInput
133 audioInput = (CAudioInputProxy*)customInterface->CustomInterface(KUidAudioInput);
134 if (audioInput == NULL)
136 DEBPRN1("No Adaptation Support - leaving");
137 User::Leave(KErrNotSupported);
140 CleanupStack::Pop(customInterface);