diff foosdk/sdk/foobar2000/helpers/VolumeMap.cpp @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/foobar2000/helpers/VolumeMap.cpp	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,22 @@
+#include "StdAfx.h"
+#include "VolumeMap.h"
+
+static constexpr double powval = 2.0;
+static constexpr double silence = -100.0;
+
+double VolumeMap::SliderToDB2(double slider) {
+	double v = SliderToDB(slider);
+	v = floor(v * 2.0 + 0.5) * 0.5;
+	return v;
+}
+
+double VolumeMap::SliderToDB(double slider) {
+	if (slider > 0) {
+		return pfc::max_t<double>(silence,10.0 * log(slider) / log(powval));
+	} else {
+		return silence;
+	}
+}
+double VolumeMap::DBToSlider(double volumeDB) {
+	return pfc::clip_t<double>(pow(powval,volumeDB / 10.0), 0, 1);
+}