#include "Resources.h"
#include "Params.h"
namespace serum
{
juce::String getLogoSvg()
{
return R"svg(
)svg";
}
juce::String getBackgroundSvg()
{
return R"svg(
)svg";
}
std::unique_ptr createLogoDrawable()
{
auto xml = juce::parseXML (getLogoSvg());
return xml != nullptr ? juce::Drawable::createFromSVG (*xml) : nullptr;
}
std::unique_ptr createBackgroundDrawable()
{
auto xml = juce::parseXML (getBackgroundSvg());
return xml != nullptr ? juce::Drawable::createFromSVG (*xml) : nullptr;
}
juce::String formatPercent (float v)
{
return juce::String (juce::roundToInt (v * 100.0f)) + " %";
}
juce::String formatHz (float v)
{
const float hz = maps::cutoffToHz (v);
if (hz >= 1000.0f)
return juce::String (hz / 1000.0f, 2) + " kHz";
return juce::String (juce::roundToInt (hz)) + " Hz";
}
juce::String formatSeconds (float v)
{
const float s = maps::toSeconds (v);
if (s < 1.0f)
return juce::String (juce::roundToInt (s * 1000.0f)) + " ms";
return juce::String (s, 2) + " s";
}
juce::String formatSemis (float v)
{
const int semi = (int) std::llround (v * 48.0f) - 24;
return juce::String (semi > 0 ? "+" : "") + juce::String (semi) + " st";
}
juce::String formatCents (float v)
{
const int ct = (int) std::llround (v * 200.0f) - 100;
return juce::String (ct > 0 ? "+" : "") + juce::String (ct) + " ct";
}
juce::String formatPan (float v)
{
const int p = (int) std::llround ((v - 0.5f) * 200.0f);
if (p == 0) return "C";
return (p < 0 ? "L" : "R") + juce::String (std::abs (p));
}
juce::String formatInt (float v, int maxValue)
{
return juce::String (juce::jlimit (0, maxValue, (int) std::llround (v * maxValue)));
}
} // namespace serum