From f41e5eac2e544b54d0d303b7ad943339f5d8ca59 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 22 Jan 2017 22:10:43 -0500 Subject: [PATCH 1/4] SI_Device: Move protected interface below public interface --- Source/Core/Core/HW/SI/SI_Device.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/HW/SI/SI_Device.h b/Source/Core/Core/HW/SI/SI_Device.h index 74e6be167d..1debdbf482 100644 --- a/Source/Core/Core/HW/SI/SI_Device.h +++ b/Source/Core/Core/HW/SI/SI_Device.h @@ -72,10 +72,6 @@ enum SIDevices : int class ISIDevice { -protected: - int m_iDeviceNumber; - SIDevices m_deviceType; - public: // Constructor ISIDevice(SIDevices deviceType, int _iDeviceNumber) @@ -99,6 +95,10 @@ public: virtual void DoState(PointerWrap& p) {} int GetDeviceNumber() const { return m_iDeviceNumber; } SIDevices GetDeviceType() const { return m_deviceType; } + +protected: + int m_iDeviceNumber; + SIDevices m_deviceType; }; bool SIDevice_IsGCController(SIDevices type); From fb8f19f5538c068187efa05df758e5f08636c833 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 22 Jan 2017 22:11:39 -0500 Subject: [PATCH 2/4] SI_Device: Amend variable naming --- Source/Core/Core/HW/SI/SI_Device.cpp | 9 ++++----- Source/Core/Core/HW/SI/SI_Device.h | 18 +++++++++--------- Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp | 6 +++--- .../Core/Core/HW/SI/SI_DeviceGCController.cpp | 16 ++++++++-------- .../Core/HW/SI/SI_DeviceGCSteeringWheel.cpp | 4 ++-- Source/Core/Core/HW/SI/SI_DeviceKeyboard.cpp | 2 +- 6 files changed, 27 insertions(+), 28 deletions(-) diff --git a/Source/Core/Core/HW/SI/SI_Device.cpp b/Source/Core/Core/HW/SI/SI_Device.cpp index 498930630a..03ee5836f4 100644 --- a/Source/Core/Core/HW/SI/SI_Device.cpp +++ b/Source/Core/Core/HW/SI/SI_Device.cpp @@ -18,18 +18,17 @@ #include "Core/HW/SI/SI_DeviceKeyboard.h" #include "Core/HW/SI/SI_DeviceNull.h" -int ISIDevice::RunBuffer(u8* _pBuffer, int _iLength) +int ISIDevice::RunBuffer(u8* buffer, int length) { #ifdef _DEBUG - DEBUG_LOG(SERIALINTERFACE, "Send Data Device(%i) - Length(%i) ", ISIDevice::m_iDeviceNumber, - _iLength); + DEBUG_LOG(SERIALINTERFACE, "Send Data Device(%i) - Length(%i) ", m_device_number, length); std::string temp; int num = 0; - while (num < _iLength) + while (num < length) { - temp += StringFromFormat("0x%02x ", _pBuffer[num ^ 3]); + temp += StringFromFormat("0x%02x ", buffer[num ^ 3]); num++; if ((num % 8) == 0) diff --git a/Source/Core/Core/HW/SI/SI_Device.h b/Source/Core/Core/HW/SI/SI_Device.h index 1debdbf482..388892bfe0 100644 --- a/Source/Core/Core/HW/SI/SI_Device.h +++ b/Source/Core/Core/HW/SI/SI_Device.h @@ -74,31 +74,31 @@ class ISIDevice { public: // Constructor - ISIDevice(SIDevices deviceType, int _iDeviceNumber) - : m_iDeviceNumber(_iDeviceNumber), m_deviceType(deviceType) + ISIDevice(SIDevices device_type, int device_number) + : m_device_number(device_number), m_device_type(device_type) { } // Destructor virtual ~ISIDevice() {} // Run the SI Buffer - virtual int RunBuffer(u8* _pBuffer, int _iLength); + virtual int RunBuffer(u8* buffer, int length); virtual int TransferInterval(); // Return true on new data - virtual bool GetData(u32& _Hi, u32& _Low) = 0; + virtual bool GetData(u32& hi, u32& low) = 0; // Send a command directly (no detour per buffer) - virtual void SendCommand(u32 _Cmd, u8 _Poll) = 0; + virtual void SendCommand(u32 command, u8 poll) = 0; // Savestate support virtual void DoState(PointerWrap& p) {} - int GetDeviceNumber() const { return m_iDeviceNumber; } - SIDevices GetDeviceType() const { return m_deviceType; } + int GetDeviceNumber() const { return m_device_number; } + SIDevices GetDeviceType() const { return m_device_type; } protected: - int m_iDeviceNumber; - SIDevices m_deviceType; + int m_device_number; + SIDevices m_device_type; }; bool SIDevice_IsGCController(SIDevices type); diff --git a/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp b/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp index 97d52d8d6e..e4ec446d7d 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp @@ -19,7 +19,7 @@ CSIDevice_GCAdapter::CSIDevice_GCAdapter(SIDevices device, int _iDeviceNumber) : CSIDevice_GCController(device, _iDeviceNumber) { // get the correct pad number that should rumble locally when using netplay - const int numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber); + const int numPAD = NetPlay_InGamePadToLocalPad(m_device_number); if (numPAD < 4) m_simulate_konga = SConfig::GetInstance().m_AdapterKonga[numPAD]; } @@ -32,7 +32,7 @@ GCPadStatus CSIDevice_GCAdapter::GetPadStatus() // the remote controllers receive their status there as well if (!NetPlay::IsNetPlayRunning()) { - pad_status = GCAdapter::Input(m_iDeviceNumber); + pad_status = GCAdapter::Input(m_device_number); } HandleMoviePadStatus(&pad_status); @@ -50,7 +50,7 @@ int CSIDevice_GCAdapter::RunBuffer(u8* buffer, int length) // This returns an error value if there is no controller plugged // into this port on the hardware gc adapter, exposing it to the game. - if (!GCAdapter::DeviceConnected(ISIDevice::m_iDeviceNumber)) + if (!GCAdapter::DeviceConnected(m_device_number)) { TSIDevices device = SI_NONE; memcpy(buffer, &device, sizeof(device)); diff --git a/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp b/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp index edb743baf4..40f1dad790 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp @@ -117,25 +117,25 @@ int CSIDevice_GCController::RunBuffer(u8* _pBuffer, int _iLength) void CSIDevice_GCController::HandleMoviePadStatus(GCPadStatus* PadStatus) { - Movie::CallGCInputManip(PadStatus, ISIDevice::m_iDeviceNumber); + Movie::CallGCInputManip(PadStatus, m_device_number); Movie::SetPolledDevice(); - if (NetPlay_GetInput(ISIDevice::m_iDeviceNumber, PadStatus)) + if (NetPlay_GetInput(m_device_number, PadStatus)) { } else if (Movie::IsPlayingInput()) { - Movie::PlayController(PadStatus, ISIDevice::m_iDeviceNumber); + Movie::PlayController(PadStatus, m_device_number); Movie::InputUpdate(); } else if (Movie::IsRecordingInput()) { - Movie::RecordInput(PadStatus, ISIDevice::m_iDeviceNumber); + Movie::RecordInput(PadStatus, m_device_number); Movie::InputUpdate(); } else { - Movie::CheckPadStatus(PadStatus, ISIDevice::m_iDeviceNumber); + Movie::CheckPadStatus(PadStatus, m_device_number); } } @@ -147,7 +147,7 @@ GCPadStatus CSIDevice_GCController::GetPadStatus() // the remote controllers receive their status there as well if (!NetPlay::IsNetPlayRunning()) { - pad_status = Pad::GetStatus(m_iDeviceNumber); + pad_status = Pad::GetStatus(m_device_number); } HandleMoviePadStatus(&pad_status); @@ -290,7 +290,7 @@ void CSIDevice_GCController::SendCommand(u32 _Cmd, u8 _Poll) unsigned int uStrength = command.Parameter2; // get the correct pad number that should rumble locally when using netplay - const int numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber); + const int numPAD = NetPlay_InGamePadToLocalPad(m_device_number); if (numPAD < 4) { @@ -303,7 +303,7 @@ void CSIDevice_GCController::SendCommand(u32 _Cmd, u8 _Poll) if (!_Poll) { m_Mode = command.Parameter2; - INFO_LOG(SERIALINTERFACE, "PAD %i set to mode %i", ISIDevice::m_iDeviceNumber, m_Mode); + INFO_LOG(SERIALINTERFACE, "PAD %i set to mode %i", m_device_number, m_Mode); } } break; diff --git a/Source/Core/Core/HW/SI/SI_DeviceGCSteeringWheel.cpp b/Source/Core/Core/HW/SI/SI_DeviceGCSteeringWheel.cpp index 11dd2d2143..c5dbd15699 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceGCSteeringWheel.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceGCSteeringWheel.cpp @@ -83,7 +83,7 @@ void CSIDevice_GCSteeringWheel::SendCommand(u32 _Cmd, u8 _Poll) unsigned int uType = command.Parameter2; // 06 = motor on, 04 = motor off // get the correct pad number that should rumble locally when using netplay - const int numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber); + const int numPAD = NetPlay_InGamePadToLocalPad(m_device_number); if (numPAD < 4) { @@ -102,7 +102,7 @@ void CSIDevice_GCSteeringWheel::SendCommand(u32 _Cmd, u8 _Poll) if (!_Poll) { m_Mode = command.Parameter2; - INFO_LOG(SERIALINTERFACE, "PAD %i set to mode %i", ISIDevice::m_iDeviceNumber, m_Mode); + INFO_LOG(SERIALINTERFACE, "PAD %i set to mode %i", m_device_number, m_Mode); } } else diff --git a/Source/Core/Core/HW/SI/SI_DeviceKeyboard.cpp b/Source/Core/Core/HW/SI/SI_DeviceKeyboard.cpp index a3d0c827c1..0d76a9178a 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceKeyboard.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceKeyboard.cpp @@ -57,7 +57,7 @@ int CSIDevice_Keyboard::RunBuffer(u8* _pBuffer, int _iLength) KeyboardStatus CSIDevice_Keyboard::GetKeyboardStatus() const { - return Keyboard::GetStatus(m_iDeviceNumber); + return Keyboard::GetStatus(m_device_number); } bool CSIDevice_Keyboard::GetData(u32& _Hi, u32& _Low) From 0adb0dfeef7562d8337ce0ba16760b9d42c5f938 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 22 Jan 2017 22:25:24 -0500 Subject: [PATCH 3/4] SI_Device: Move implementation details into the cpp file Any changes to the base class' default behavior now won't require all SI device source files to be recompiled. --- Source/Core/Core/HW/SI/SI_Device.cpp | 21 +++++++++++++++++++++ Source/Core/Core/HW/SI/SI_Device.h | 16 ++++++---------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/Source/Core/Core/HW/SI/SI_Device.cpp b/Source/Core/Core/HW/SI/SI_Device.cpp index 03ee5836f4..da18ac595c 100644 --- a/Source/Core/Core/HW/SI/SI_Device.cpp +++ b/Source/Core/Core/HW/SI/SI_Device.cpp @@ -18,6 +18,23 @@ #include "Core/HW/SI/SI_DeviceKeyboard.h" #include "Core/HW/SI/SI_DeviceNull.h" +ISIDevice::ISIDevice(SIDevices device_type, int device_number) + : m_device_number(device_number), m_device_type(device_type) +{ +} + +ISIDevice::~ISIDevice() = default; + +int ISIDevice::GetDeviceNumber() const +{ + return m_device_number; +} + +SIDevices ISIDevice::GetDeviceType() const +{ + return m_device_type; +} + int ISIDevice::RunBuffer(u8* buffer, int length) { #ifdef _DEBUG @@ -48,6 +65,10 @@ int ISIDevice::TransferInterval() return 0; } +void ISIDevice::DoState(PointerWrap& p) +{ +} + // Check if a device class is inheriting from CSIDevice_GCController // The goal of this function is to avoid special casing a long list of // device types when there is no "real" input device, e.g. when playing diff --git a/Source/Core/Core/HW/SI/SI_Device.h b/Source/Core/Core/HW/SI/SI_Device.h index 388892bfe0..6702c33969 100644 --- a/Source/Core/Core/HW/SI/SI_Device.h +++ b/Source/Core/Core/HW/SI/SI_Device.h @@ -73,14 +73,12 @@ enum SIDevices : int class ISIDevice { public: - // Constructor - ISIDevice(SIDevices device_type, int device_number) - : m_device_number(device_number), m_device_type(device_type) - { - } + ISIDevice(SIDevices device_type, int device_number); + virtual ~ISIDevice(); + + int GetDeviceNumber() const; + SIDevices GetDeviceType() const; - // Destructor - virtual ~ISIDevice() {} // Run the SI Buffer virtual int RunBuffer(u8* buffer, int length); virtual int TransferInterval(); @@ -92,9 +90,7 @@ public: virtual void SendCommand(u32 command, u8 poll) = 0; // Savestate support - virtual void DoState(PointerWrap& p) {} - int GetDeviceNumber() const { return m_device_number; } - SIDevices GetDeviceType() const { return m_device_type; } + virtual void DoState(PointerWrap& p); protected: int m_device_number; From fbcf86870da1aa816ff9bea83f312aa8f303454c Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 22 Jan 2017 22:26:32 -0500 Subject: [PATCH 4/4] SI_Device: Remove const specifiers from SIDevice_Create declaration's parameters These are only relevant on the definition of the function. --- Source/Core/Core/HW/SI/SI_Device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/SI/SI_Device.h b/Source/Core/Core/HW/SI/SI_Device.h index 6702c33969..5547e7eabc 100644 --- a/Source/Core/Core/HW/SI/SI_Device.h +++ b/Source/Core/Core/HW/SI/SI_Device.h @@ -99,4 +99,4 @@ protected: bool SIDevice_IsGCController(SIDevices type); -std::unique_ptr SIDevice_Create(const SIDevices device, const int port_number); +std::unique_ptr SIDevice_Create(SIDevices device, int port_number);