From 5959349f341a2380c0c3f41ec40a1e8e0d969d00 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Wed, 29 Jan 2025 14:49:20 +0100 Subject: refactor: move emulation logic into sys --- lib/nes/sys/controller.hh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 lib/nes/sys/controller.hh (limited to 'lib/nes/sys/controller.hh') diff --git a/lib/nes/sys/controller.hh b/lib/nes/sys/controller.hh new file mode 100644 index 0000000..441e236 --- /dev/null +++ b/lib/nes/sys/controller.hh @@ -0,0 +1,30 @@ +#pragma once + +#include "nes/sys/types/button-mask.hh" + +namespace nes +{ + class controller + { + button_mask pressed_; + unsigned index_{ 0 }; + bool strobing_{ false }; + + public: + explicit controller() = default; + + controller(controller const&) = delete; + controller(controller&&) = delete; + auto operator=(controller const&) -> controller& = delete; + auto operator=(controller&&) -> controller& = delete; + + auto get_pressed() const -> button_mask { return pressed_;} + auto ref_pressed() -> button_mask& { return pressed_; } + auto set_pressed(button_mask const value) -> void { pressed_ = value; } + + // IO register + + auto read() -> std::uint8_t; + auto write(std::uint8_t) -> void; + }; +} // namespace nes \ No newline at end of file -- cgit v1.3.1