|
1 /* This file is part of the KDE project. |
|
2 |
|
3 Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4 |
|
5 This library is free software: you can redistribute it and/or modify |
|
6 it under the terms of the GNU Lesser General Public License as published by |
|
7 the Free Software Foundation, either version 2.1 or 3 of the License. |
|
8 |
|
9 This library is distributed in the hope that it will be useful, |
|
10 but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 GNU Lesser General Public License for more details. |
|
13 |
|
14 You should have received a copy of the GNU Lesser General Public License |
|
15 along with this library. If not, see <http://www.gnu.org/licenses/>. |
|
16 |
|
17 */ |
|
18 |
|
19 #include <StereoWideningBase.h> |
|
20 #include "stereowidening.h" |
|
21 |
|
22 QT_BEGIN_NAMESPACE |
|
23 |
|
24 using namespace Phonon; |
|
25 using namespace Phonon::MMF; |
|
26 |
|
27 // Define functions which depend on concrete native effect class name |
|
28 PHONON_MMF_DEFINE_EFFECT_FUNCTIONS(StereoWidening) |
|
29 |
|
30 /*! \class MMF::StereoWidening |
|
31 \internal |
|
32 */ |
|
33 |
|
34 StereoWidening::StereoWidening(QObject *parent, const QList<EffectParameter>& parameters) |
|
35 : AbstractAudioEffect::AbstractAudioEffect(parent, parameters) |
|
36 { |
|
37 |
|
38 } |
|
39 |
|
40 int StereoWidening::parameterChanged(const EffectParameter ¶m, |
|
41 const QVariant &value) |
|
42 { |
|
43 Q_ASSERT_X(param.id() == ParameterBase, Q_FUNC_INFO, "Invalid parameter ID"); |
|
44 |
|
45 const qreal externalLevel = value.toReal(); |
|
46 const int internalLevel = param.toInternalValue(externalLevel); |
|
47 |
|
48 TRAPD(err, concreteEffect()->SetStereoWideningLevelL(internalLevel)); |
|
49 |
|
50 return err; |
|
51 } |
|
52 |
|
53 //----------------------------------------------------------------------------- |
|
54 // Static functions |
|
55 //----------------------------------------------------------------------------- |
|
56 |
|
57 const char* StereoWidening::description() |
|
58 { |
|
59 return "Stereo widening"; |
|
60 } |
|
61 |
|
62 bool StereoWidening::getParameters(CMdaAudioOutputStream *stream, |
|
63 QList<EffectParameter> ¶meters) |
|
64 { |
|
65 bool supported = false; |
|
66 |
|
67 QScopedPointer<CStereoWidening> effect; |
|
68 TRAPD(err, effect.reset(CStereoWidening::NewL(*stream))); |
|
69 |
|
70 if (KErrNone == err) { |
|
71 supported = true; |
|
72 |
|
73 const qreal defaultValue = |
|
74 Phonon::MMF::EffectParameter::toExternalValue |
|
75 (effect->StereoWideningLevel(), 0, 100); |
|
76 |
|
77 EffectParameter param( |
|
78 /* parameterId */ ParameterBase, |
|
79 /* name */ tr("Level (%)"), |
|
80 /* hints */ EffectParameter::IntegerHint, |
|
81 /* defaultValue */ QVariant(defaultValue), |
|
82 /* minimumValue */ QVariant(qreal(-1.0)), |
|
83 /* maximumValue */ QVariant(qreal(+1.0))); |
|
84 |
|
85 param.setInternalRange(0, 100); |
|
86 parameters.append(param); |
|
87 } |
|
88 |
|
89 return supported; |
|
90 } |
|
91 |
|
92 QT_END_NAMESPACE |
|
93 |