#pragma once #include "Emu/Io/PadHandler.h" class virtual_pad_handler final : public PadHandlerBase { using on_connect_cb = std::function&)>; static on_connect_cb mOnConnect; public: virtual_pad_handler(); static void set_on_connect_cb(on_connect_cb cb) { mOnConnect = std::move(cb); } bool Init() override { return true; } void init_config(cfg_pad* cfg) override { if (!cfg) return; cfg->from_default(); } std::vector list_devices() override; connection get_next_button_press(const std::string& /*padId*/, const pad_callback& /*callback*/, const pad_fail_callback& /*fail_callback*/, gui_call_type /*call_type*/, const std::vector& /*buttons*/) override { return connection::connected; } bool bindPadToDevice(std::shared_ptr pad) override; void process() override {} };