// // Macintosh.hpp // Clock Signal // // Created by Thomas Harte on 03/05/2019. // Copyright © 2019 Thomas Harte. All rights reserved. // #pragma once #include "../../../Configurable/Configurable.hpp" #include "../../../Configurable/StandardOptions.hpp" #include "../../../Analyser/Static/StaticAnalyser.hpp" #include "../../ROMMachine.hpp" namespace Apple::Macintosh { struct Machine { virtual ~Machine() = default; /// Creates and returns a Macintosh. static std::unique_ptr Macintosh(const Analyser::Static::Target *, const ROMMachine::ROMFetcher &); class Options: public Reflection::StructImpl, public Configurable::QuickbootOption { friend Configurable::QuickbootOption; public: Options(Configurable::OptionsType type) : Configurable::QuickbootOption(type == Configurable::OptionsType::UserFriendly) {} private: Options() : Options(Configurable::OptionsType::UserFriendly) {} friend Reflection::StructImpl; void declare_fields() { declare_quickboot_option(); } }; }; }