Browse Source

Add overloaded double precision functions to parameter ranges

pull/321/merge
falkTX 2 years ago
parent
commit
eff1c6f578
1 changed files with 52 additions and 2 deletions
  1. +52
    -2
      distrho/DistrhoPlugin.hpp

+ 52
- 2
distrho/DistrhoPlugin.hpp View File

@@ -362,7 +362,7 @@ struct ParameterRanges {
*/ */
float getNormalizedValue(const float& value) const noexcept float getNormalizedValue(const float& value) const noexcept
{ {
const float normValue((value - min) / (max - min));
const float normValue = (value - min) / (max - min);


if (normValue <= 0.0f) if (normValue <= 0.0f)
return 0.0f; return 0.0f;
@@ -371,6 +371,21 @@ struct ParameterRanges {
return normValue; return normValue;
} }


/**
Get a value normalized to 0.0<->1.0.
Overloaded function using double precision values.
*/
double getNormalizedValue(const double& value) const noexcept
{
const double normValue = (value - min) / (max - min);

if (normValue <= 0.0)
return 0.0;
if (normValue >= 1.0)
return 1.0;
return normValue;
}

/** /**
Get a value normalized to 0.0<->1.0, fixed within range. Get a value normalized to 0.0<->1.0, fixed within range.
*/ */
@@ -381,7 +396,7 @@ struct ParameterRanges {
if (value >= max) if (value >= max)
return 1.0f; return 1.0f;


const float normValue((value - min) / (max - min));
const float normValue = (value - min) / (max - min);


if (normValue <= 0.0f) if (normValue <= 0.0f)
return 0.0f; return 0.0f;
@@ -391,6 +406,27 @@ struct ParameterRanges {
return normValue; return normValue;
} }


/**
Get a value normalized to 0.0<->1.0, fixed within range.
Overloaded function using double precision values.
*/
double getFixedAndNormalizedValue(const double& value) const noexcept
{
if (value <= min)
return 0.0;
if (value >= max)
return 1.0;

const double normValue = (value - min) / (max - min);

if (normValue <= 0.0)
return 0.0;
if (normValue >= 1.0)
return 1.0;

return normValue;
}

/** /**
Get a proper value previously normalized to 0.0<->1.0. Get a proper value previously normalized to 0.0<->1.0.
*/ */
@@ -403,6 +439,20 @@ struct ParameterRanges {


return value * (max - min) + min; return value * (max - min) + min;
} }

/**
Get a proper value previously normalized to 0.0<->1.0.
Overloaded function using double precision values.
*/
double getUnnormalizedValue(const double& value) const noexcept
{
if (value <= 0.0)
return min;
if (value >= 1.0)
return max;

return value * (max - min) + min;
}
}; };


/** /**


Loading…
Cancel
Save