#include "Resources.h" #include "Params.h" namespace serum { juce::String getLogoSvg() { return R"svg( SerumAlt )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