27class Tracking final :
public Toggle,
public FormattedTitle {
30 Tracking(l10n::String title_format_str, uint8_t source_id)
31 :
Toggle(), FormattedTitle(title_format_str, source_id + 1), source_id_{source_id} {}
32 void readCurrentValue()
override { this->setValue(soundEditor.currentSound->sources[source_id_].isTracking); }
33 void writeCurrentValue()
override { soundEditor.currentSound->sources[source_id_].isTracking = this->getValue(); }
35 [[nodiscard]] std::string_view
getName()
const override {
return FormattedTitle::title(); }
36 [[nodiscard]] std::string_view
getTitle()
const override {
return FormattedTitle::title(); }
38 void getColumnLabel(
StringBuf& label)
override {
44 if (parent !=
nullptr && parent->renderingStyle() == Submenu::RenderingStyle::HORIZONTAL) {
51 void renderInHorizontalMenu(int32_t startX, int32_t width, int32_t startY, int32_t height)
override {
52 using namespace deluge::hid::display;
53 const auto& icon = getValue() ? OLED::oscTrackingEnabledIcon : OLED::oscTrackingDisabledIcon;
54 OLED::main.drawIconCentered(icon, startX, width, startY);