// ImGui panel that drives the input-forwarding pipeline: pick a target process, // inject coop_hook.dll, and stream pad state to it over shared memory. #pragma once #include #include #include #include "coop/protocol.hpp" #include "imgui.h" #include "inject/process_list.hpp" #include "ipc/ipc_server.hpp" namespace coop { class InjectionPanel { public: InjectionPanel(); void draw(); // Forward the latest pad snapshot to the injected hook (if connected). void publish(const std::array& pads) { server_.publish(pads); } private: void refresh_processes(); void inject_selected(); std::vector processes_; char filter_[128] = {}; unsigned long selected_pid_ = 0; std::wstring selected_name_; IpcServer server_; std::string status_; ImVec4 status_color_; }; } // namespace coop