src/3rdparty/phonon/mmf/effectparameter.cpp
changeset 7 f7bc934e204c
equal deleted inserted replaced
3:41300fa6a67c 7:f7bc934e204c
       
     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 "effectparameter.h"
       
    20 
       
    21 QT_BEGIN_NAMESPACE
       
    22 
       
    23 using namespace Phonon;
       
    24 using namespace Phonon::MMF;
       
    25 
       
    26 /*! \class MMF::EffectParameter
       
    27   \internal
       
    28 */
       
    29 
       
    30 MMF::EffectParameter::EffectParameter()
       
    31     :   m_hasInternalRange(false)
       
    32 {
       
    33 
       
    34 }
       
    35 
       
    36 MMF::EffectParameter::EffectParameter(
       
    37             int parameterId, const QString &name, Hints hints,
       
    38             const QVariant &defaultValue, const QVariant &min,
       
    39             const QVariant &max, const QVariantList &values,
       
    40             const QString &description)
       
    41     :   Phonon::EffectParameter(parameterId, name, hints, defaultValue,
       
    42             min, max, values, description)
       
    43     ,   m_hasInternalRange(false)
       
    44 {
       
    45 
       
    46 }
       
    47 
       
    48 void MMF::EffectParameter::setInternalRange(qint32 min, qint32 max)
       
    49 {
       
    50     Q_ASSERT_X(max >= min, Q_FUNC_INFO, "Invalid range");
       
    51     m_internalRange = QPair<qint32, qint32>(min, max);
       
    52     m_hasInternalRange = true;
       
    53 }
       
    54 
       
    55 qint32 MMF::EffectParameter::toInternalValue(qreal external) const
       
    56 {
       
    57     Q_ASSERT_X(m_hasInternalRange, Q_FUNC_INFO, "Does not have internal range");
       
    58     const qint32 range = m_internalRange.second - m_internalRange.first;
       
    59     return m_internalRange.first + ((1.0 + external) / 2) * range;
       
    60 }
       
    61 
       
    62 qreal MMF::EffectParameter::toExternalValue
       
    63     (qint32 value, qint32 min, qint32 max)
       
    64 {
       
    65     Q_ASSERT_X(max >= min, Q_FUNC_INFO, "Invalid range");
       
    66     const qint32 range = max - min;
       
    67     return range == 0 ? 0.0 : ((2.0 * value - min) / range) - 1.0;
       
    68 }
       
    69 
       
    70 QT_END_NAMESPACE
       
    71