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 {
52 AltGoldenKnobDelayParams,
55 HighlightIncomingNotes,
61 EnableKeyboardViewSidebarMenuExit,
62 EnableLaunchEventPlayhead,
64 AlternativePlaybackStartBehaviour,
65 EnableGridViewLoopPads,
66 AlternativeTapTempoBehaviour,
68 TrimFromStartOfAudioClip,
74 std::string_view displayName;
80 deluge::l10n::String displayName;
81 std::string_view xmlName;
84 deluge::vector<RuntimeFeatureSettingOption> options;
91class RuntimeFeatureSettings {
93 RuntimeFeatureSettings();
96 inline uint32_t get(RuntimeFeatureSettingType type) {
return settings[type].value; };
97 inline bool isOn(RuntimeFeatureSettingType type) {
return get(type) == RuntimeFeatureStateToggle::On; }
104 inline void set(RuntimeFeatureSettingType type, uint32_t value) { settings[type].value = value; }
106 inline const char* getStartupSong() {
return startupSong.get(); }
108 void readSettingsFromFile();
109 void writeSettingsToFile();
112 std::array<RuntimeFeatureSetting, RuntimeFeatureSettingType::MaxElement> settings = {};
116 ResizeableArray unknownSettings;
119 friend class deluge::gui::menu_item::runtime_feature::Setting;
120 friend class deluge::gui::menu_item::runtime_feature::Settings;
121 friend class deluge::gui::menu_item::runtime_feature::DevSysexSetting;
Definition storage_manager.h:185
Encapsulating class.
Definition runtime_feature_settings.h:91
void set(RuntimeFeatureSettingType type, uint32_t value)
Definition runtime_feature_settings.h:104
Definition storage_manager.h:119
Definition for selectable options.
Definition runtime_feature_settings.h:73
Every setting keeps its metadata and value in here.
Definition runtime_feature_settings.h:79