From 2ec7d0b5fda0fe6cbafcc235e3d8cc91b0dc81e0 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 28 Nov 2022 09:19:01 -0500 Subject: common/input: Add helpers functions for creating input and output devices Avoids the redundancy of needing to explictly specify the common namespace and the type. --- src/input_common/main.cpp | 102 +++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 59 deletions(-) (limited to 'src/input_common/main.cpp') diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index 76df133f3..baeed2e02 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp @@ -33,129 +33,113 @@ struct InputSubsystem::Impl { keyboard->SetMappingCallback(mapping_callback); keyboard_factory = std::make_shared(keyboard); keyboard_output_factory = std::make_shared(keyboard); - Common::Input::RegisterFactory(keyboard->GetEngineName(), - keyboard_factory); - Common::Input::RegisterFactory(keyboard->GetEngineName(), - keyboard_output_factory); + Common::Input::RegisterInputFactory(keyboard->GetEngineName(), keyboard_factory); + Common::Input::RegisterOutputFactory(keyboard->GetEngineName(), keyboard_output_factory); mouse = std::make_shared("mouse"); mouse->SetMappingCallback(mapping_callback); mouse_factory = std::make_shared(mouse); mouse_output_factory = std::make_shared(mouse); - Common::Input::RegisterFactory(mouse->GetEngineName(), - mouse_factory); - Common::Input::RegisterFactory(mouse->GetEngineName(), - mouse_output_factory); + Common::Input::RegisterInputFactory(mouse->GetEngineName(), mouse_factory); + Common::Input::RegisterOutputFactory(mouse->GetEngineName(), mouse_output_factory); touch_screen = std::make_shared("touch"); touch_screen_factory = std::make_shared(touch_screen); - Common::Input::RegisterFactory(touch_screen->GetEngineName(), - touch_screen_factory); + Common::Input::RegisterInputFactory(touch_screen->GetEngineName(), touch_screen_factory); gcadapter = std::make_shared("gcpad"); gcadapter->SetMappingCallback(mapping_callback); gcadapter_input_factory = std::make_shared(gcadapter); gcadapter_output_factory = std::make_shared(gcadapter); - Common::Input::RegisterFactory(gcadapter->GetEngineName(), - gcadapter_input_factory); - Common::Input::RegisterFactory(gcadapter->GetEngineName(), - gcadapter_output_factory); + Common::Input::RegisterInputFactory(gcadapter->GetEngineName(), gcadapter_input_factory); + Common::Input::RegisterOutputFactory(gcadapter->GetEngineName(), gcadapter_output_factory); udp_client = std::make_shared("cemuhookudp"); udp_client->SetMappingCallback(mapping_callback); udp_client_input_factory = std::make_shared(udp_client); udp_client_output_factory = std::make_shared(udp_client); - Common::Input::RegisterFactory(udp_client->GetEngineName(), - udp_client_input_factory); - Common::Input::RegisterFactory(udp_client->GetEngineName(), - udp_client_output_factory); + Common::Input::RegisterInputFactory(udp_client->GetEngineName(), udp_client_input_factory); + Common::Input::RegisterOutputFactory(udp_client->GetEngineName(), + udp_client_output_factory); tas_input = std::make_shared("tas"); tas_input->SetMappingCallback(mapping_callback); tas_input_factory = std::make_shared(tas_input); tas_output_factory = std::make_shared(tas_input); - Common::Input::RegisterFactory(tas_input->GetEngineName(), - tas_input_factory); - Common::Input::RegisterFactory(tas_input->GetEngineName(), - tas_output_factory); + Common::Input::RegisterInputFactory(tas_input->GetEngineName(), tas_input_factory); + Common::Input::RegisterOutputFactory(tas_input->GetEngineName(), tas_output_factory); camera = std::make_shared("camera"); camera->SetMappingCallback(mapping_callback); camera_input_factory = std::make_shared(camera); camera_output_factory = std::make_shared(camera); - Common::Input::RegisterFactory(camera->GetEngineName(), - camera_input_factory); - Common::Input::RegisterFactory(camera->GetEngineName(), - camera_output_factory); + Common::Input::RegisterInputFactory(camera->GetEngineName(), camera_input_factory); + Common::Input::RegisterOutputFactory(camera->GetEngineName(), camera_output_factory); virtual_amiibo = std::make_shared("virtual_amiibo"); virtual_amiibo->SetMappingCallback(mapping_callback); virtual_amiibo_input_factory = std::make_shared(virtual_amiibo); virtual_amiibo_output_factory = std::make_shared(virtual_amiibo); - Common::Input::RegisterFactory(virtual_amiibo->GetEngineName(), - virtual_amiibo_input_factory); - Common::Input::RegisterFactory(virtual_amiibo->GetEngineName(), - virtual_amiibo_output_factory); + Common::Input::RegisterInputFactory(virtual_amiibo->GetEngineName(), + virtual_amiibo_input_factory); + Common::Input::RegisterOutputFactory(virtual_amiibo->GetEngineName(), + virtual_amiibo_output_factory); #ifdef HAVE_SDL2 sdl = std::make_shared("sdl"); sdl->SetMappingCallback(mapping_callback); sdl_input_factory = std::make_shared(sdl); sdl_output_factory = std::make_shared(sdl); - Common::Input::RegisterFactory(sdl->GetEngineName(), - sdl_input_factory); - Common::Input::RegisterFactory(sdl->GetEngineName(), - sdl_output_factory); + Common::Input::RegisterInputFactory(sdl->GetEngineName(), sdl_input_factory); + Common::Input::RegisterOutputFactory(sdl->GetEngineName(), sdl_output_factory); #endif - Common::Input::RegisterFactory( - "touch_from_button", std::make_shared()); - Common::Input::RegisterFactory( - "analog_from_button", std::make_shared()); + Common::Input::RegisterInputFactory("touch_from_button", + std::make_shared()); + Common::Input::RegisterInputFactory("analog_from_button", + std::make_shared()); } void Shutdown() { - Common::Input::UnregisterFactory(keyboard->GetEngineName()); - Common::Input::UnregisterFactory(keyboard->GetEngineName()); + Common::Input::UnregisterInputFactory(keyboard->GetEngineName()); + Common::Input::UnregisterOutputFactory(keyboard->GetEngineName()); keyboard.reset(); - Common::Input::UnregisterFactory(mouse->GetEngineName()); - Common::Input::UnregisterFactory(mouse->GetEngineName()); + Common::Input::UnregisterInputFactory(mouse->GetEngineName()); + Common::Input::UnregisterOutputFactory(mouse->GetEngineName()); mouse.reset(); - Common::Input::UnregisterFactory(touch_screen->GetEngineName()); + Common::Input::UnregisterInputFactory(touch_screen->GetEngineName()); touch_screen.reset(); - Common::Input::UnregisterFactory(gcadapter->GetEngineName()); - Common::Input::UnregisterFactory(gcadapter->GetEngineName()); + Common::Input::UnregisterInputFactory(gcadapter->GetEngineName()); + Common::Input::UnregisterOutputFactory(gcadapter->GetEngineName()); gcadapter.reset(); - Common::Input::UnregisterFactory(udp_client->GetEngineName()); - Common::Input::UnregisterFactory(udp_client->GetEngineName()); + Common::Input::UnregisterInputFactory(udp_client->GetEngineName()); + Common::Input::UnregisterOutputFactory(udp_client->GetEngineName()); udp_client.reset(); - Common::Input::UnregisterFactory(tas_input->GetEngineName()); - Common::Input::UnregisterFactory(tas_input->GetEngineName()); + Common::Input::UnregisterInputFactory(tas_input->GetEngineName()); + Common::Input::UnregisterOutputFactory(tas_input->GetEngineName()); tas_input.reset(); - Common::Input::UnregisterFactory(camera->GetEngineName()); - Common::Input::UnregisterFactory(camera->GetEngineName()); + Common::Input::UnregisterInputFactory(camera->GetEngineName()); + Common::Input::UnregisterOutputFactory(camera->GetEngineName()); camera.reset(); - Common::Input::UnregisterFactory( - virtual_amiibo->GetEngineName()); - Common::Input::UnregisterFactory( - virtual_amiibo->GetEngineName()); + Common::Input::UnregisterInputFactory(virtual_amiibo->GetEngineName()); + Common::Input::UnregisterOutputFactory(virtual_amiibo->GetEngineName()); virtual_amiibo.reset(); #ifdef HAVE_SDL2 - Common::Input::UnregisterFactory(sdl->GetEngineName()); - Common::Input::UnregisterFactory(sdl->GetEngineName()); + Common::Input::UnregisterInputFactory(sdl->GetEngineName()); + Common::Input::UnregisterOutputFactory(sdl->GetEngineName()); sdl.reset(); #endif - Common::Input::UnregisterFactory("touch_from_button"); - Common::Input::UnregisterFactory("analog_from_button"); + Common::Input::UnregisterInputFactory("touch_from_button"); + Common::Input::UnregisterInputFactory("analog_from_button"); } [[nodiscard]] std::vector GetInputDevices() const { -- cgit v1.2.3