From 371f0a20cad4dfcb3237db6f72a7e35403950938 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 30 Jun 2023 20:48:40 +1000 Subject: Clean up gpios interface --- src/drivers/digital_pot.cpp | 85 --------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 src/drivers/digital_pot.cpp (limited to 'src/drivers/digital_pot.cpp') diff --git a/src/drivers/digital_pot.cpp b/src/drivers/digital_pot.cpp deleted file mode 100644 index b20d982d..00000000 --- a/src/drivers/digital_pot.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2023 jacqueline - * - * SPDX-License-Identifier: GPL-3.0-only - */ - -#include "digital_pot.hpp" - -#include - -namespace drivers { - -using GpioExpander::VOL_LEFT; -using GpioExpander::VOL_RIGHT; -using GpioExpander::VOL_UP_DOWN; -using GpioExpander::VOL_Z_CROSS; - -DigitalPot::DigitalPot(GpioExpander* gpios) : gpios_(gpios) { - gpios_->set_pin(VOL_Z_CROSS, true); // Active-low - gpios_->set_pin(VOL_UP_DOWN, true); - gpios_->set_pin(VOL_LEFT, false); - gpios_->set_pin(VOL_RIGHT, false); - gpios_->Write(); - - // Power-on reset sets attenuation to maximum anyway, but we want to be safe - // and not blow anyone's ears out. - for (int i = 0; i < 32; i++) { - gpios_->set_pin(VOL_LEFT, true); - gpios_->set_pin(VOL_RIGHT, true); - gpios_->Write(); - gpios_->set_pin(VOL_LEFT, false); - gpios_->set_pin(VOL_RIGHT, false); - gpios_->Write(); - } -} - -auto DigitalPot::SetRelative(int_fast8_t change) -> void { - if (change == 0) { - return; - } - - gpios_->set_pin(VOL_UP_DOWN, change > 0); - gpios_->Write(); - - for (int i = 0; i < std::abs(change); i++) { - gpios_->set_pin(VOL_LEFT, true); - gpios_->set_pin(VOL_RIGHT, true); - gpios_->Write(); - gpios_->set_pin(VOL_LEFT, false); - gpios_->set_pin(VOL_RIGHT, false); - gpios_->Write(); - } -} - -auto DigitalPot::SetRelative(Channel ch, int_fast8_t change) -> void { - if (change == 0) { - return; - } - - GpioExpander::Pin pin = (ch == Channel::kLeft) ? VOL_LEFT : VOL_RIGHT; - gpios_->set_pin(VOL_UP_DOWN, change > 0); - gpios_->Write(); - - for (int i = 0; i < std::abs(change); i++) { - gpios_->set_pin(pin, true); - gpios_->Write(); - gpios_->set_pin(pin, false); - gpios_->Write(); - } -} - -auto DigitalPot::SetZeroCrossDetect(bool enabled) -> void { - gpios_->set_pin(VOL_Z_CROSS, !enabled); // Active-low - gpios_->Write(); -} - -auto DigitalPot::GetMaxAttenuation() -> int_fast8_t { - return 31; -} - -auto DigitalPot::GetMinAttenuation() -> int_fast8_t { - return 0; -} - -} // namespace drivers -- cgit v1.2.3