mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
Merge pull request #4722 from lioncash/si-device
SI_Device: Minor cleanup
This commit is contained in:
commit
836f43038a
@ -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
|
||||
|
@ -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<ISIDevice> SIDevice_Create(const SIDevices device, const int port_number);
|
||||
std::unique_ptr<ISIDevice> SIDevice_Create(SIDevices device, int port_number);
|
||||
|
@ -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));
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user