diff --git a/rpcs3/Emu/Io/Keyboard.cpp b/rpcs3/Emu/Io/Keyboard.cpp index e20e90e313..b14ca37530 100644 --- a/rpcs3/Emu/Io/Keyboard.cpp +++ b/rpcs3/Emu/Io/Keyboard.cpp @@ -15,14 +15,20 @@ KeyboardManager::~KeyboardManager() void KeyboardManager::Init(const u32 max_connect) { - if(m_inited) return; + if(m_inited) + return; + // NOTE: Change these to std::make_unique assignments when C++14 comes out. switch(Ini.KeyboardHandlerMode.GetValue()) { - case 1: m_keyboard_handler = new WindowsKeyboardHandler(); break; + case 1: + m_keyboard_handler.reset(new WindowsKeyboardHandler()); + break; default: - case 0: m_keyboard_handler = new NullKeyboardHandler(); break; + case 0: + m_keyboard_handler.reset(new NullKeyboardHandler()); + break; } m_keyboard_handler->Init(max_connect); diff --git a/rpcs3/Emu/Io/Keyboard.h b/rpcs3/Emu/Io/Keyboard.h index 310c1fb33a..1674b185de 100644 --- a/rpcs3/Emu/Io/Keyboard.h +++ b/rpcs3/Emu/Io/Keyboard.h @@ -1,12 +1,13 @@ #pragma once +#include #include #include "KeyboardHandler.h" class KeyboardManager //: public wxWindow { bool m_inited; - KeyboardHandlerBase* m_keyboard_handler; + std::unique_ptr m_keyboard_handler; public: KeyboardManager(); diff --git a/rpcs3/Emu/Io/KeyboardHandler.h b/rpcs3/Emu/Io/KeyboardHandler.h index d10828bb8e..9eff36490b 100644 --- a/rpcs3/Emu/Io/KeyboardHandler.h +++ b/rpcs3/Emu/Io/KeyboardHandler.h @@ -257,10 +257,6 @@ struct Keyboard , m_config() { } - - ~Keyboard() - { - } }; class KeyboardHandlerBase @@ -287,10 +283,10 @@ public: if (pressed) { - + // Meta Keys if (code == 308 || code == 307 || code == 306 || code == 393 || code == 396 || code == 394) - { // Meta Keys + { data.mkey |= button.m_outKeyCode; } else @@ -316,9 +312,10 @@ public: if (!pressed) { + // Meta Keys if (code == 308 || code == 307 || code == 306 || code == 393 || code == 396 || code == 394) - { // Meta Keys + { data.mkey &= ~button.m_outKeyCode; } } diff --git a/rpcs3/Emu/Io/Mouse.cpp b/rpcs3/Emu/Io/Mouse.cpp index 7ad1dd0631..80d8cb4b97 100644 --- a/rpcs3/Emu/Io/Mouse.cpp +++ b/rpcs3/Emu/Io/Mouse.cpp @@ -15,14 +15,20 @@ MouseManager::~MouseManager() void MouseManager::Init(const u32 max_connect) { - if(m_inited) return; + if(m_inited) + return; + // NOTE: Change these to std::make_unique assignments when C++14 is available. switch(Ini.MouseHandlerMode.GetValue()) { - case 1: m_mouse_handler = new WindowsMouseHandler(); break; + case 1: + m_mouse_handler.reset(new WindowsMouseHandler()); + break; default: - case 0: m_mouse_handler = new NullMouseHandler(); break; + case 0: + m_mouse_handler.reset(new NullMouseHandler()); + break; } m_mouse_handler->Init(max_connect); diff --git a/rpcs3/Emu/Io/Mouse.h b/rpcs3/Emu/Io/Mouse.h index 39572d2c0a..aa3c546117 100644 --- a/rpcs3/Emu/Io/Mouse.h +++ b/rpcs3/Emu/Io/Mouse.h @@ -1,12 +1,13 @@ #pragma once +#include #include #include "MouseHandler.h" class MouseManager //: public wxWindow { bool m_inited; - MouseHandlerBase* m_mouse_handler; + std::unique_ptr m_mouse_handler; public: MouseManager(); diff --git a/rpcs3/Emu/Io/Pad.cpp b/rpcs3/Emu/Io/Pad.cpp index 73f2d216ed..1dde2828c3 100644 --- a/rpcs3/Emu/Io/Pad.cpp +++ b/rpcs3/Emu/Io/Pad.cpp @@ -15,14 +15,20 @@ PadManager::~PadManager() void PadManager::Init(const u32 max_connect) { - if(m_inited) return; + if(m_inited) + return; + // NOTE: Change these to std::make_unique assignments when C++14 is available. switch(Ini.PadHandlerMode.GetValue()) { - case 1: m_pad_handler = new WindowsPadHandler(); break; + case 1: + m_pad_handler.reset(new WindowsPadHandler()); + break; default: - case 0: m_pad_handler = new NullPadHandler(); break; + case 0: + m_pad_handler.reset(new NullPadHandler()); + break; } m_pad_handler->Init(max_connect); diff --git a/rpcs3/Emu/Io/Pad.h b/rpcs3/Emu/Io/Pad.h index 34d889cc08..27b049cea4 100644 --- a/rpcs3/Emu/Io/Pad.h +++ b/rpcs3/Emu/Io/Pad.h @@ -1,12 +1,13 @@ #pragma once +#include #include #include "PadHandler.h" class PadManager //: public wxWindow { bool m_inited; - PadHandlerBase* m_pad_handler; + std::unique_ptr m_pad_handler; public: PadManager(); diff --git a/rpcs3/Emu/Io/PadHandler.h b/rpcs3/Emu/Io/PadHandler.h index ffc946a803..d07c6026b7 100644 --- a/rpcs3/Emu/Io/PadHandler.h +++ b/rpcs3/Emu/Io/PadHandler.h @@ -186,10 +186,6 @@ struct Pad , m_sensor_g(0) { } - - ~Pad() - { - } }; struct PadInfo diff --git a/rpcs3/Emu/Io/Windows/WindowsKeyboardHandler.h b/rpcs3/Emu/Io/Windows/WindowsKeyboardHandler.h index 7180659b9d..dbdfdbb72d 100644 --- a/rpcs3/Emu/Io/Windows/WindowsKeyboardHandler.h +++ b/rpcs3/Emu/Io/Windows/WindowsKeyboardHandler.h @@ -30,7 +30,7 @@ public: LoadSettings(); memset(&m_info, 0, sizeof(KbInfo)); m_info.max_connect = max_connect; - m_info.now_connect = std::min(m_keyboards.size(), (size_t)max_connect); + m_info.now_connect = std::min(m_keyboards.size(), max_connect); m_info.info = 0; // Ownership of keyboard data: 0=Application, 1=System m_info.status[0] = CELL_KB_STATUS_CONNECTED; // (TODO: Support for more keyboards) } diff --git a/rpcs3/Emu/SysCalls/lv2/SC_Pad.cpp b/rpcs3/Emu/SysCalls/lv2/SC_Pad.cpp index 8fd9e4570b..1111dd0445 100644 --- a/rpcs3/Emu/SysCalls/lv2/SC_Pad.cpp +++ b/rpcs3/Emu/SysCalls/lv2/SC_Pad.cpp @@ -86,25 +86,24 @@ int cellPadGetData(u32 port_no, u32 data_addr) u16 d1 = 0; u16 d2 = 0; - std::vector