From 79553ab1fa3d707612e80dd03bf95ca65fa0c411 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Tue, 4 Feb 2025 23:11:08 +0100 Subject: refactor file browser --- app/mac/impl/input-device-serial-controller.hh | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/mac/impl/input-device-serial-controller.hh (limited to 'app/mac/impl/input-device-serial-controller.hh') diff --git a/app/mac/impl/input-device-serial-controller.hh b/app/mac/impl/input-device-serial-controller.hh new file mode 100644 index 0000000..2022ed2 --- /dev/null +++ b/app/mac/impl/input-device-serial-controller.hh @@ -0,0 +1,29 @@ +#pragma once + +#include "nes/app/input/input-device-controller.hh" + +namespace nes::app::mac +{ + /// Input device for an NES controller plugged in via serial port. + class input_device_serial_controller final : public input_device_controller + { + char const* path_; + int fd_{ -1 }; + sys::button_mask current_{}; + index index_{ index::unused }; + + public: + explicit input_device_serial_controller(char const* path); + ~input_device_serial_controller() override; + + auto is_reliable() const -> bool override; + auto get_name() const -> std::string_view override { return path_; } + auto get_index() const -> index override { return index_; } + auto set_index(index const v) -> void override { index_ = v; } + auto read_buttons() -> sys::button_mask override; + + private: + auto set_up() -> bool; + auto close() -> void; + }; +} // namespace nes::app:mac \ No newline at end of file -- cgit v1.3.1