20#include "gui/l10n/strings.h"
21#include "util/container/array/resizeable_array.h"
22#include "util/containers.h"
23#include "util/d_string.h"
29namespace deluge::gui::menu_item::runtime_feature {
37enum RuntimeFeatureStateToggle : uint32_t { Off = 0, On = 1 };
40enum RuntimeFeatureStateSyncScalingAction : uint32_t { SyncScaling = 0, Fill = 1 };
42enum RuntimeFeatureStateEmulatedDisplay : uint32_t { Hardware = 0, Toggle = 1, OnBoot = 2 };
45enum RuntimeFeatureSettingType : uint32_t {
51 AltGoldenKnobDelayParams,
54 HighlightIncomingNotes,
60 EnableKeyboardViewSidebarMenuExit,
61 EnableLaunchEventPlayhead,
63 AlternativePlaybackStartBehaviour,
64 EnableGridViewLoopPads,
65 AlternativeTapTempoBehaviour,
67 TrimFromStartOfAudioClip,
73 std::string_view displayName;
79 deluge::l10n::String displayName;
80 std::string_view xmlName;
83 deluge::vector<RuntimeFeatureSettingOption> options;
90class RuntimeFeatureSettings {
92 RuntimeFeatureSettings();
95 inline uint32_t get(RuntimeFeatureSettingType type) {
return settings[type].value; };
96 inline bool isOn(RuntimeFeatureSettingType type) {
return get(type) == RuntimeFeatureStateToggle::On; }
103 inline void set(RuntimeFeatureSettingType type, uint32_t value) { settings[type].value = value; }
105 inline const char* getStartupSong() {
return startupSong.get(); }
107 void readSettingsFromFile();
108 void writeSettingsToFile();
111 std::array<RuntimeFeatureSetting, RuntimeFeatureSettingType::MaxElement> settings = {};
115 ResizeableArray unknownSettings;
118 friend class deluge::gui::menu_item::runtime_feature::Setting;
119 friend class deluge::gui::menu_item::runtime_feature::Settings;
120 friend class deluge::gui::menu_item::runtime_feature::DevSysexSetting;
Definition storage_manager.h:185
Encapsulating class.
Definition runtime_feature_settings.h:90
void set(RuntimeFeatureSettingType type, uint32_t value)
Definition runtime_feature_settings.h:103
Definition storage_manager.h:119
Definition for selectable options.
Definition runtime_feature_settings.h:72
Every setting keeps its metadata and value in here.
Definition runtime_feature_settings.h:78