From d5d6e3993cd67238ff245446e69e2f200c3fd0e5 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Mon, 4 Sep 2023 16:17:55 +1000 Subject: Support changing max volume, persisted to nvs --- src/drivers/include/wm8523.hpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/drivers/include/wm8523.hpp') diff --git a/src/drivers/include/wm8523.hpp b/src/drivers/include/wm8523.hpp index 6dc2e56e..b13cf34b 100644 --- a/src/drivers/include/wm8523.hpp +++ b/src/drivers/include/wm8523.hpp @@ -5,12 +5,32 @@ */ #pragma once +#include #include #include namespace drivers { namespace wm8523 { +extern const uint16_t kAbsoluteMaxVolume; + +extern const uint16_t kAbsoluteMinVolume; + +extern const uint16_t kMaxVolumeBeforeClipping; + +extern const uint16_t kLineLevelReferenceVolume; + +extern const uint16_t kDefaultVolume; +extern const uint16_t kDefaultMaxVolume; + +constexpr auto VolumeToDb(uint16_t vol) -> int_fast8_t { + return (vol - kLineLevelReferenceVolume) / 4; +} + +constexpr auto DbToVolume(int_fast8_t db) -> uint16_t { + return (db * 4) + kLineLevelReferenceVolume; +} + enum class Register : uint8_t { kReset = 0, kRevision = 1, -- cgit v1.2.3