diff --git a/Source/Core/Core/HW/SI/SI_Device.cpp b/Source/Core/Core/HW/SI/SI_Device.cpp index 498930630a..da18ac595c 100644 --- a/Source/Core/Core/HW/SI/SI_Device.cpp +++ b/Source/Core/Core/HW/SI/SI_Device.cpp @@ -18,18 +18,34 @@ #include "Core/HW/SI/SI_DeviceKeyboard.h" #include "Core/HW/SI/SI_DeviceNull.h" -int ISIDevice::RunBuffer(u8* _pBuffer, int _iLength) +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 - 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) @@ -49,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 74e6be167d..5547e7eabc 100644 --- a/Source/Core/Core/HW/SI/SI_Device.h +++ b/Source/Core/Core/HW/SI/SI_Device.h @@ -72,35 +72,31 @@ enum SIDevices : int class ISIDevice { -protected: - int m_iDeviceNumber; - SIDevices m_deviceType; - public: - // Constructor - ISIDevice(SIDevices deviceType, int _iDeviceNumber) - : m_iDeviceNumber(_iDeviceNumber), m_deviceType(deviceType) - { - } + 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* _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; } + virtual void DoState(PointerWrap& p); + +protected: + int m_device_number; + SIDevices m_device_type; }; 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); 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)