mirror of
https://github.com/TomHarte/CLK.git
synced 2026-03-13 19:16:40 +00:00
Starts moving towards a Deflectable-based system of runtime options.
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
#include "../CRTMachine.hpp"
|
||||
#include "../JoystickMachine.hpp"
|
||||
#include "../KeyboardMachine.hpp"
|
||||
#include "../../Configurable/Configurable.hpp"
|
||||
|
||||
#include "../../ClockReceiver/ForceInline.hpp"
|
||||
#include "../../ClockReceiver/JustInTime.hpp"
|
||||
@@ -37,10 +38,14 @@ constexpr int sn76489_divider = 2;
|
||||
namespace Sega {
|
||||
namespace MasterSystem {
|
||||
|
||||
std::vector<std::unique_ptr<Configurable::Option>> get_options() {
|
||||
return Configurable::standard_options(
|
||||
static_cast<Configurable::StandardOptions>(Configurable::DisplayRGB | Configurable::DisplayCompositeColour)
|
||||
);
|
||||
//std::vector<std::unique_ptr<Configurable::Option>> get_options() {
|
||||
// return Configurable::standard_options(
|
||||
// static_cast<Configurable::StandardOptions>(Configurable::DisplayRGB | Configurable::DisplayCompositeColour)
|
||||
// );
|
||||
//}
|
||||
|
||||
std::unique_ptr<Reflection::Struct> get_options() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
class Joystick: public Inputs::ConcreteJoystick {
|
||||
@@ -373,28 +378,34 @@ class ConcreteMachine:
|
||||
}
|
||||
|
||||
// MARK: - Configuration options.
|
||||
std::vector<std::unique_ptr<Configurable::Option>> get_options() final {
|
||||
return Sega::MasterSystem::get_options();
|
||||
std::unique_ptr<Reflection::Struct> get_options(OptionsType type) final {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void set_selections(const Configurable::SelectionSet &selections_by_option) final {
|
||||
Configurable::Display display;
|
||||
if(Configurable::get_display(selections_by_option, display)) {
|
||||
set_video_signal_configurable(display);
|
||||
}
|
||||
}
|
||||
|
||||
Configurable::SelectionSet get_accurate_selections() final {
|
||||
Configurable::SelectionSet selection_set;
|
||||
Configurable::append_display_selection(selection_set, Configurable::Display::CompositeColour);
|
||||
return selection_set;
|
||||
}
|
||||
|
||||
Configurable::SelectionSet get_user_friendly_selections() final {
|
||||
Configurable::SelectionSet selection_set;
|
||||
Configurable::append_display_selection(selection_set, Configurable::Display::RGB);
|
||||
return selection_set;
|
||||
void set_options(const std::unique_ptr<Reflection::Struct> &options) final {
|
||||
}
|
||||
// std::vector<std::unique_ptr<Configurable::Option>> get_options() final {
|
||||
// return Sega::MasterSystem::get_options();
|
||||
// }
|
||||
//
|
||||
// void set_selections(const Configurable::SelectionSet &selections_by_option) final {
|
||||
// Configurable::Display display;
|
||||
// if(Configurable::get_display(selections_by_option, display)) {
|
||||
// set_video_signal_configurable(display);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// Configurable::SelectionSet get_accurate_selections() final {
|
||||
// Configurable::SelectionSet selection_set;
|
||||
// Configurable::append_display_selection(selection_set, Configurable::Display::CompositeColour);
|
||||
// return selection_set;
|
||||
// }
|
||||
//
|
||||
// Configurable::SelectionSet get_user_friendly_selections() final {
|
||||
// Configurable::SelectionSet selection_set;
|
||||
// Configurable::append_display_selection(selection_set, Configurable::Display::RGB);
|
||||
// return selection_set;
|
||||
// }
|
||||
|
||||
private:
|
||||
static TI::TMS::Personality tms_personality_for_model(Analyser::Static::Sega::Target::Model model) {
|
||||
|
||||
Reference in New Issue
Block a user