2017-11-21 02:55:32 +00:00
|
|
|
//
|
|
|
|
// StandardOptions.hpp
|
|
|
|
// Clock Signal
|
|
|
|
//
|
|
|
|
// Created by Thomas Harte on 20/11/2017.
|
2018-05-13 19:19:52 +00:00
|
|
|
// Copyright 2017 Thomas Harte. All rights reserved.
|
2017-11-21 02:55:32 +00:00
|
|
|
//
|
|
|
|
|
2024-01-17 04:34:46 +00:00
|
|
|
#pragma once
|
2017-11-21 02:55:32 +00:00
|
|
|
|
2020-03-20 03:24:06 +00:00
|
|
|
#include "../Reflection/Enum.hpp"
|
2017-11-21 02:55:32 +00:00
|
|
|
|
|
|
|
namespace Configurable {
|
|
|
|
|
2020-03-16 03:48:53 +00:00
|
|
|
ReflectableEnum(Display,
|
2017-11-21 02:55:32 +00:00
|
|
|
RGB,
|
2018-04-01 02:14:34 +00:00
|
|
|
SVideo,
|
2018-11-29 01:53:33 +00:00
|
|
|
CompositeColour,
|
|
|
|
CompositeMonochrome
|
2020-03-16 03:48:53 +00:00
|
|
|
);
|
2019-09-19 23:41:43 +00:00
|
|
|
|
2020-03-18 03:52:55 +00:00
|
|
|
//===
|
|
|
|
// From here downward are a bunch of templates for individual option flags.
|
|
|
|
// Using them saves you marginally in syntax, but the primary gain is to
|
|
|
|
// ensure unified property naming.
|
|
|
|
//===
|
|
|
|
|
|
|
|
template <typename Owner> class DisplayOption {
|
2024-11-30 23:57:56 +00:00
|
|
|
public:
|
|
|
|
Configurable::Display output;
|
|
|
|
DisplayOption(Configurable::Display output) : output(output) {}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void declare_display_option() {
|
|
|
|
static_cast<Owner *>(this)->declare(&output, "output");
|
|
|
|
AnnounceEnumNS(Configurable, Display);
|
|
|
|
}
|
2020-03-18 03:52:55 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
template <typename Owner> class QuickloadOption {
|
2024-11-30 23:57:56 +00:00
|
|
|
public:
|
|
|
|
bool quickload;
|
|
|
|
QuickloadOption(bool quickload) : quickload(quickload) {}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void declare_quickload_option() {
|
|
|
|
static_cast<Owner *>(this)->declare(&quickload, "quickload");
|
|
|
|
}
|
2020-03-18 03:52:55 +00:00
|
|
|
};
|
|
|
|
|
2020-03-19 01:50:02 +00:00
|
|
|
template <typename Owner> class QuickbootOption {
|
2024-11-30 23:57:56 +00:00
|
|
|
public:
|
|
|
|
bool quickboot;
|
|
|
|
QuickbootOption(bool quickboot) : quickboot(quickboot) {}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void declare_quickboot_option() {
|
|
|
|
static_cast<Owner *>(this)->declare(&quickboot, "quickboot");
|
|
|
|
}
|
2020-03-19 01:50:02 +00:00
|
|
|
};
|
|
|
|
|
2017-11-21 02:55:32 +00:00
|
|
|
}
|