Пример #1
0
/// Set **internal** parameter value from float.  The new value must
/// be in the range from 0.0 to 1.0.
///
/// @param newValue new value (between 0.0 and 1.0)
///
void PluginParameterContinuous::setFloat(float newValue)
{
    // confine new value to internal parameter range
    if (newValue < 0.0f)
    {
        newValue = 0.0f;
    }
    else if (newValue > 1.0f)
    {
        newValue = 1.0f;
    }

    // value has changed
    if (newValue != value)
    {
        // update internal parameter value
        value = newValue;

        // update real parameter value
        realValue = toRealFloat(value);

        // mark parameter as changed
        setChangeFlag();
    }
}
Пример #2
0
/// Create a parameter for storing a string.  **Note: several
/// functions must not be used -- see below!**
///
/// @param newValue intial value
///
ParString::ParString(const String &newValue)
{
    // initialise value
    setText(newValue);

    // mark parameter as changed
    setChangeFlag();
}
Пример #3
0
/// Set parameter value from string.
///
/// @param newValue new parameter value
///
void ParString::setText(const String &newValue)
{
    // mark parameter as changed if necessary
    if (textValue.compare(newValue) != 0)
    {
        setChangeFlag();
    }

    // update value
    textValue = newValue;
}
Пример #4
0
/// Set **internal** parameter value from float.  The new value must
/// be in the range from 0.0 to 1.0.
///
/// @param newValue new value (between 0.0 and 1.0)
///
void ParSwitch::setFloat(float newValue)
{
    // calculate internal value
    float newRealValue = toRealFloat(newValue);

    // value has changed
    if (newRealValue != realValue_)
    {
        // update real parameter value
        realValue_ = newRealValue;

        // update internal parameter value
        value_ = toInternalFloat(realValue_);

        // mark parameter as changed
        setChangeFlag();
    }
}
Пример #5
0
/// Create a stepped parameter that can be filled with arbitrary
/// preset values.  **Internal** values simply range from 0.0 to 1.0.
///
ParSwitch::ParSwitch()
{
    // initialise values (invalid because parameter contains no
    // values)
    value_ = -1.0f;
    realValue_ = -1.0f;

    // initialise default values (invalid because parameter contains
    // no values)
    defaultValue_ = -1.0f;
    defaultRealValue_ = -1.0f;

    // internal spacing between values (invalid because parameter
    // contains no values)
    stepSize = -1.0f;

    // mark parameter as changed
    setChangeFlag();
}
Пример #6
0
/// Add a preset value and a corresponding string representation.
/// **This function must be called at least twice for the parameter to
/// work as expected.**
///
/// @param newRealValue new real value
///
/// @param newLabel string representation
///
void ParSwitch::addPreset(const float newRealValue, const String &newLabel)
{
    // store real value in array
    arrRealValues.add(newRealValue);

    // store label in array
    arrLabels.add(newLabel);

    // this is the first preset value we have added
    if (arrRealValues.size() == 1)
    {
        // update default value and value
        setDefaultRealFloat(newRealValue, true);

        // mark parameter as changed
        setChangeFlag();
    }
    // prevent division by zero
    else
    {
        // update step size
        stepSize = 1.0f / (arrLabels.size() - 1.0f);
    }
}